diff options
60 files changed, 2018 insertions, 12 deletions
diff --git a/bluetooth/bt_channel_avoidance/aidl/Android.bp b/bluetooth/bt_channel_avoidance/aidl/Android.bp new file mode 100644 index 0000000..9895232 --- /dev/null +++ b/bluetooth/bt_channel_avoidance/aidl/Android.bp @@ -0,0 +1,30 @@ +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["Android-Apache-2.0"], +} + +aidl_interface { + name: "hardware.google.bluetooth.bt_channel_avoidance", + owner: "google", + vendor_available: true, + srcs: [ + "hardware/google/bluetooth/bt_channel_avoidance/IBTChannelAvoidance.aidl", + ], + stability: "vintf", + + backend: { + cpp: { + enabled: true, + }, + java: { + platform_apis: true, + }, + ndk: { + apex_available: [ + "//apex_available:platform", + "com.android.btservices", + ], + min_sdk_version: "33", + }, + }, +} diff --git a/bluetooth/bt_channel_avoidance/aidl/OWNERS b/bluetooth/bt_channel_avoidance/aidl/OWNERS new file mode 100644 index 0000000..e406ad5 --- /dev/null +++ b/bluetooth/bt_channel_avoidance/aidl/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 27441 +tiand@google.com diff --git a/bluetooth/bt_channel_avoidance/aidl/aidl_api/hardware.google.bluetooth.bt_channel_avoidance/current/hardware/google/bluetooth/bt_channel_avoidance/IBTChannelAvoidance.aidl b/bluetooth/bt_channel_avoidance/aidl/aidl_api/hardware.google.bluetooth.bt_channel_avoidance/current/hardware/google/bluetooth/bt_channel_avoidance/IBTChannelAvoidance.aidl new file mode 100644 index 0000000..afd2053 --- /dev/null +++ b/bluetooth/bt_channel_avoidance/aidl/aidl_api/hardware.google.bluetooth.bt_channel_avoidance/current/hardware/google/bluetooth/bt_channel_avoidance/IBTChannelAvoidance.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 is pixel only extension for Bluetooth HAL. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package hardware.google.bluetooth.bt_channel_avoidance; +@VintfStability +interface IBTChannelAvoidance { + oneway void setBluetoothChannelStatus(in byte[10] channelMap); +} diff --git a/bluetooth/bt_channel_avoidance/aidl/hardware/google/bluetooth/bt_channel_avoidance/IBTChannelAvoidance.aidl b/bluetooth/bt_channel_avoidance/aidl/hardware/google/bluetooth/bt_channel_avoidance/IBTChannelAvoidance.aidl new file mode 100644 index 0000000..425e315 --- /dev/null +++ b/bluetooth/bt_channel_avoidance/aidl/hardware/google/bluetooth/bt_channel_avoidance/IBTChannelAvoidance.aidl @@ -0,0 +1,36 @@ +/* + * 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 is pixel only extension for Bluetooth HAL. + */ +package hardware.google.bluetooth.bt_channel_avoidance; + +@VintfStability +interface IBTChannelAvoidance { + /** + * API to set Bluetooth channel map. + * + * This API must be invoked whenever the Bluetooth channel map needs to be + * changed because Bluetooth channels have conflict with wifi or cellular. + * + * @param channelMap The lower 79 bits of the 80-bit parameter represents + * the status of 79 channels. 0 means the channel is bad and 1 means + * unknown. The most significant bit (bit 79) is reserved for future + * use. + */ + oneway void setBluetoothChannelStatus(in byte[10] channelMap); +} diff --git a/bluetooth/bt_channel_avoidance/aidl/vts/Android.bp b/bluetooth/bt_channel_avoidance/aidl/vts/Android.bp new file mode 100644 index 0000000..be2a6f6 --- /dev/null +++ b/bluetooth/bt_channel_avoidance/aidl/vts/Android.bp @@ -0,0 +1,28 @@ +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["Android-Apache-2.0"], +} + +cc_test { + name: "VtsHalBTChannelAvoidanceTargetTest", + defaults: [ + "use_libaidlvintf_gtest_helper_static", + ], + srcs: ["VtsHalBTChannelAvoidanceTargetTest.cpp"], + shared_libs: [ + "libbase", + "libcutils", + "libbinder_ndk", + "liblog", + "libutils", + "//hardware/google/interfaces:hardware.google.bluetooth.bt_channel_avoidance-V1-ndk", + ], + static_libs: [ + "libbluetooth-types", + ], + test_config: "VtsHalBTChannelAvoidanceTargetTest.xml", + test_suites: [ + "general-tests", + "vts", + ], +} diff --git a/bluetooth/bt_channel_avoidance/aidl/vts/VtsHalBTChannelAvoidanceTargetTest.cpp b/bluetooth/bt_channel_avoidance/aidl/vts/VtsHalBTChannelAvoidanceTargetTest.cpp new file mode 100644 index 0000000..e6d8f14 --- /dev/null +++ b/bluetooth/bt_channel_avoidance/aidl/vts/VtsHalBTChannelAvoidanceTargetTest.cpp @@ -0,0 +1,76 @@ +/* + * 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. + */ +#include <aidl/Gtest.h> +#include <aidl/Vintf.h> +#include <aidl/hardware/google/bluetooth/bt_channel_avoidance/IBTChannelAvoidance.h> +#include <android/binder_auto_utils.h> +#include <android/binder_manager.h> +#include <android/binder_process.h> +#include <binder/IServiceManager.h> +#include <binder/ProcessState.h> + +using aidl::hardware::google::bluetooth::bt_channel_avoidance::IBTChannelAvoidance; +using ndk::ScopedAStatus; +using ndk::SpAIBinder; + +class BTChannelAvoidanceTest : public ::testing::TestWithParam<std::string> { +public: + virtual void SetUp() override; + virtual void TearDown() override; + + ndk::ScopedAStatus setBluetoothChannelStatus(const std::array<uint8_t, 10>& channel_map); + +private: + std::shared_ptr<IBTChannelAvoidance> bt_channel_avoidance_; +}; + +void BTChannelAvoidanceTest::SetUp() { + ALOGI("SetUp Bluetooth Channel Avoidance Test"); + bt_channel_avoidance_ = IBTChannelAvoidance::fromBinder( + ndk::SpAIBinder(AServiceManager_waitForService(GetParam().c_str()))); + ASSERT_NE(bt_channel_avoidance_, nullptr); +} + +void BTChannelAvoidanceTest::TearDown() { + ALOGI("TearDown Bluetooth Channel Avoidance Test"); + bt_channel_avoidance_ = nullptr; + ASSERT_EQ(bt_channel_avoidance_, nullptr); +} + +ndk::ScopedAStatus BTChannelAvoidanceTest::setBluetoothChannelStatus(const std::array<uint8_t, 10>& channel_map) { + return bt_channel_avoidance_->setBluetoothChannelStatus(channel_map); +} + +TEST_P(BTChannelAvoidanceTest, setBluetoothChannelStatus) { + std::array<uint8_t, 10> channel_map = {127, 255, 255, 255, 255, 255, 255, 0, 0, 15}; + ndk::ScopedAStatus status = setBluetoothChannelStatus(channel_map); + ASSERT_TRUE(status.isOk()); +} + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BTChannelAvoidanceTest); +INSTANTIATE_TEST_SUITE_P(PerInstance, BTChannelAvoidanceTest, + testing::ValuesIn(android::getAidlHalInstanceNames( + IBTChannelAvoidance::descriptor)), + android::PrintInstanceNameToString); + +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + ABinderProcess_startThreadPool(); + int status = RUN_ALL_TESTS(); + ALOGI("Test result = %d", status); + return status; +} + diff --git a/bluetooth/bt_channel_avoidance/aidl/vts/VtsHalBTChannelAvoidanceTargetTest.xml b/bluetooth/bt_channel_avoidance/aidl/vts/VtsHalBTChannelAvoidanceTargetTest.xml new file mode 100644 index 0000000..eb76734 --- /dev/null +++ b/bluetooth/bt_channel_avoidance/aidl/vts/VtsHalBTChannelAvoidanceTargetTest.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> +<configuration description="Runs VtsHalBTChannelAvoidanceTargetTest."> + <option name="test-suite-tag" value="apct" /> + <option name="test-suite-tag" value="apct-native" /> + + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"> + </target_preparer> + + <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> + <option name="run-command" value="settings put global ble_scan_always_enabled 0" /> + <option name="run-command" value="cmd bluetooth_manager disable" /> + <option name="run-command" value="cmd bluetooth_manager wait-for-state:STATE_OFF" /> + <option name="teardown-command" value="cmd bluetooth_manager enable" /> + <option name="teardown-command" value="cmd bluetooth_manager wait-for-state:STATE_ON" /> + <option name="teardown-command" value="settings put global ble_scan_always_enabled 1" /> + </target_preparer> + + <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> + <option name="cleanup" value="true" /> + <option name="push" value="VtsHalBTChannelAvoidanceTargetTest->/data/local/tmp/VtsHalBTChannelAvoidanceTargetTest" /> + </target_preparer> + + <test class="com.android.tradefed.testtype.GTest" > + <option name="native-test-device-path" value="/data/local/tmp" /> + <option name="module-name" value="VtsHalBTChannelAvoidanceTargetTest" /> + </test> +</configuration> diff --git a/bluetooth/ccc/aidl/Android.bp b/bluetooth/ccc/aidl/Android.bp index 9b623ff..affe46b 100644 --- a/bluetooth/ccc/aidl/Android.bp +++ b/bluetooth/ccc/aidl/Android.bp @@ -17,5 +17,12 @@ aidl_interface { java: { platform_apis: true, }, + ndk: { + apex_available: [ + "//apex_available:platform", + "com.android.btservices", + ], + min_sdk_version: "33", + }, }, } diff --git a/bluetooth/ccc/aidl/vts/Android.bp b/bluetooth/ccc/aidl/vts/Android.bp new file mode 100644 index 0000000..e348939 --- /dev/null +++ b/bluetooth/ccc/aidl/vts/Android.bp @@ -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. + */ + +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["Android-Apache-2.0"], +} + +cc_test { + name: "VtsHalBluetoothCccTargetTest", + defaults: [ + "use_libaidlvintf_gtest_helper_static", + ], + srcs: ["VtsHalBluetoothCccTargetTest.cpp"], + shared_libs: [ + "libbase", + "libcutils", + "libbinder_ndk", + "liblog", + "libutils", + ], + static_libs: [ + "//hardware/google/interfaces:hardware.google.bluetooth.ccc-V1-ndk", + "libbluetooth-types", + ], + test_config: "VtsHalBluetoothCccTargetTest.xml", + test_suites: [ + "general-tests", + "vts", + ], +} diff --git a/bluetooth/ccc/aidl/vts/OWNERS b/bluetooth/ccc/aidl/vts/OWNERS new file mode 100644 index 0000000..af657a8 --- /dev/null +++ b/bluetooth/ccc/aidl/vts/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 27441 +tedwang@google.com diff --git a/bluetooth/ccc/aidl/vts/VtsHalBluetoothCccTargetTest.cpp b/bluetooth/ccc/aidl/vts/VtsHalBluetoothCccTargetTest.cpp new file mode 100644 index 0000000..c39a2a6 --- /dev/null +++ b/bluetooth/ccc/aidl/vts/VtsHalBluetoothCccTargetTest.cpp @@ -0,0 +1,121 @@ +/* + * 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. + */ + +#include <aidl/Gtest.h> +#include <aidl/Vintf.h> +#include <aidl/hardware/google/bluetooth/ccc/BnBluetoothCccCallback.h> +#include <aidl/hardware/google/bluetooth/ccc/IBluetoothCcc.h> +#include <aidl/hardware/google/bluetooth/ccc/IBluetoothCccCallback.h> +#include <android-base/logging.h> +#include <android/binder_manager.h> +#include <android/binder_process.h> +#include <binder/IServiceManager.h> +#include <utils/Log.h> + +#include <vector> +#include <array> + +using ::aidl::hardware::google::bluetooth::ccc::IBluetoothCcc; +using ::aidl::hardware::google::bluetooth::ccc::IBluetoothCccCallback; +using ::aidl::hardware::google::bluetooth::ccc::Direction; +using ::aidl::hardware::google::bluetooth::ccc::LmpEventId; +using ::aidl::hardware::google::bluetooth::ccc::Timestamp; +using ::ndk::ScopedAStatus; + +class BluetoothCccTest : public ::testing::TestWithParam<std::string> { + public: + class BluetoothCccCallback + : public ::aidl::hardware::google::bluetooth::ccc::BnBluetoothCccCallback { + public: + BluetoothCccCallback() = default; + + ::ndk::ScopedAStatus onEventGenerated(const Timestamp& /* timestamp */, + const std::array<uint8_t, 6>& /* address */, + Direction /* direction */, + LmpEventId /* lmpEventId */, + char16_t /* eventCounter */) override { + return ::ndk::ScopedAStatus::ok(); + } + + ::ndk::ScopedAStatus onRegistered(bool) override { + return ::ndk::ScopedAStatus::ok(); + } + }; + + virtual void SetUp() override { + ALOGI("SetUp Ccc Test"); + bluetooth_ccc = IBluetoothCcc::fromBinder( + ndk::SpAIBinder(AServiceManager_waitForService(GetParam().c_str()))); + ASSERT_NE(bluetooth_ccc, nullptr); + + ccc_callback = ndk::SharedRefBase::make<BluetoothCccCallback>(); + ASSERT_NE(ccc_callback, nullptr); + } + + virtual void TearDown() override { + ALOGI("TearDown Ccc Test"); + bluetooth_ccc = nullptr; + ASSERT_EQ(bluetooth_ccc, nullptr); + } + + // test functions to call + ScopedAStatus registerForLmpEvents(std::array<uint8_t, 6>); + ScopedAStatus unregisterLmpEvents(std::array<uint8_t, 6>); + +private: + std::shared_ptr<IBluetoothCcc> bluetooth_ccc; + std::shared_ptr<BluetoothCccCallback> ccc_callback; +}; + + +ScopedAStatus BluetoothCccTest::registerForLmpEvents(std::array<uint8_t, 6> addr) { + std::vector<LmpEventId> events = {LmpEventId::CONNECT_IND, + LmpEventId::LL_PHY_UPDATE_IND}; + return bluetooth_ccc->registerForLmpEvents(ccc_callback, std::array<uint8_t, 6>(addr), events); +} + +ScopedAStatus BluetoothCccTest::unregisterLmpEvents(std::array<uint8_t, 6> addr) { + return bluetooth_ccc->unregisterLmpEvents(std::array<uint8_t, 6>(addr)); +} + +TEST_P(BluetoothCccTest, RegisterForLmpEvents) { + ALOGI("Run test RegisterForLmpEvents"); + ScopedAStatus status = registerForLmpEvents( + std::array<uint8_t, 6>{0x11, 0x22, 0x33, 0x44, 0x55, 0x66}); + ASSERT_TRUE(status.isOk()); +} + +TEST_P(BluetoothCccTest, UnregisterLmpEvents) { + std::array<uint8_t, 6> addr = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66}; + ScopedAStatus status = registerForLmpEvents(addr); + ASSERT_TRUE(status.isOk()); + status = unregisterLmpEvents(addr); + ASSERT_TRUE(status.isOk()); +} + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BluetoothCccTest); +INSTANTIATE_TEST_SUITE_P(PerInstance, BluetoothCccTest, + testing::ValuesIn(android::getAidlHalInstanceNames( + IBluetoothCcc::descriptor)), + android::PrintInstanceNameToString); + +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + ABinderProcess_startThreadPool(); + int status = RUN_ALL_TESTS(); + ALOGI("Test result = %d", status); + return status; +} diff --git a/bluetooth/ccc/aidl/vts/VtsHalBluetoothCccTargetTest.xml b/bluetooth/ccc/aidl/vts/VtsHalBluetoothCccTargetTest.xml new file mode 100644 index 0000000..1b86379 --- /dev/null +++ b/bluetooth/ccc/aidl/vts/VtsHalBluetoothCccTargetTest.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> +<configuration description="Runs VtsHalBluetoothCccTargetTest."> + <option name="test-suite-tag" value="apct" /> + <option name="test-suite-tag" value="apct-native" /> + + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"> + </target_preparer> + + <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> + <option name="cleanup" value="true" /> + <option name="push" value="VtsHalBluetoothCccTargetTest->/data/local/tmp/VtsHalBluetoothCccTargetTest" /> + </target_preparer> + + <test class="com.android.tradefed.testtype.GTest" > + <option name="native-test-device-path" value="/data/local/tmp" /> + <option name="module-name" value="VtsHalBluetoothCccTargetTest" /> + </test> +</configuration> diff --git a/bluetooth/ewp/aidl/Android.bp b/bluetooth/ewp/aidl/Android.bp new file mode 100644 index 0000000..faa79ff --- /dev/null +++ b/bluetooth/ewp/aidl/Android.bp @@ -0,0 +1,30 @@ +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["Android-Apache-2.0"], +} + +aidl_interface { + name: "hardware.google.bluetooth.ewp", + owner: "google", + vendor_available: true, + srcs: [ + "hardware/google/bluetooth/ewp/IBluetoothEwp.aidl", + ], + stability: "vintf", + + backend: { + cpp: { + enabled: true, + }, + java: { + platform_apis: true, + }, + ndk: { + apex_available: [ + "//apex_available:platform", + "com.android.btservices", + ], + min_sdk_version: "33", + }, + }, +} diff --git a/bluetooth/ewp/aidl/OWNERS b/bluetooth/ewp/aidl/OWNERS new file mode 100644 index 0000000..e406ad5 --- /dev/null +++ b/bluetooth/ewp/aidl/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 27441 +tiand@google.com diff --git a/bluetooth/ewp/aidl/aidl_api/hardware.google.bluetooth.ewp/current/hardware/google/bluetooth/ewp/IBluetoothEwp.aidl b/bluetooth/ewp/aidl/aidl_api/hardware.google.bluetooth.ewp/current/hardware/google/bluetooth/ewp/IBluetoothEwp.aidl new file mode 100644 index 0000000..4ec4bba --- /dev/null +++ b/bluetooth/ewp/aidl/aidl_api/hardware.google.bluetooth.ewp/current/hardware/google/bluetooth/ewp/IBluetoothEwp.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 is pixel only extension for Bluetooth HAL. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package hardware.google.bluetooth.ewp; +@VintfStability +interface IBluetoothEwp { + oneway void enableEwp(char eventMask); + oneway void disableEwp(); +} diff --git a/bluetooth/ewp/aidl/hardware/google/bluetooth/ewp/IBluetoothEwp.aidl b/bluetooth/ewp/aidl/hardware/google/bluetooth/ewp/IBluetoothEwp.aidl new file mode 100644 index 0000000..37297b8 --- /dev/null +++ b/bluetooth/ewp/aidl/hardware/google/bluetooth/ewp/IBluetoothEwp.aidl @@ -0,0 +1,35 @@ +/* + * 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 is pixel only extension for Bluetooth HAL. + */ +package hardware.google.bluetooth.ewp; + +@VintfStability +interface IBluetoothEwp { + /** + * API to enable Bluetooth Le Audio offload debugging mechanism. + * + * @param eventMask Mask to enable different dump data + */ + oneway void enableEwp(char eventMask); + + /** + * API to disable Bluetooth Le Audio offload debugging mechanism. + */ + oneway void disableEwp(); +} diff --git a/bluetooth/ewp/aidl/vts/Android.bp b/bluetooth/ewp/aidl/vts/Android.bp new file mode 100644 index 0000000..e77c527 --- /dev/null +++ b/bluetooth/ewp/aidl/vts/Android.bp @@ -0,0 +1,29 @@ +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["Android-Apache-2.0"], +} + +cc_test { + name: "VtsHalBluetoothEwpTargetTest", + defaults: [ + "use_libaidlvintf_gtest_helper_static", + ], + srcs: ["VtsHalBluetoothEwpTargetTest.cpp"], + shared_libs: [ + "libbase", + "libcutils", + "libbinder_ndk", + "liblog", + "libutils", + "//hardware/google/interfaces:hardware.google.bluetooth.ewp-V1-ndk", + ], + static_libs: [ + "libbluetooth-types", + ], + test_config: "VtsHalBluetoothEwpTargetTest.xml", + test_suites: [ + "general-tests", + "vts", + ], +} + diff --git a/bluetooth/ewp/aidl/vts/VtsHalBluetoothEwpTargetTest.cpp b/bluetooth/ewp/aidl/vts/VtsHalBluetoothEwpTargetTest.cpp new file mode 100644 index 0000000..34dd807 --- /dev/null +++ b/bluetooth/ewp/aidl/vts/VtsHalBluetoothEwpTargetTest.cpp @@ -0,0 +1,86 @@ +/* + * 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. + */ +#include <aidl/Gtest.h> +#include <aidl/Vintf.h> +#include <aidl/hardware/google/bluetooth/ewp/IBluetoothEwp.h> +#include <android/binder_auto_utils.h> +#include <android/binder_manager.h> +#include <android/binder_process.h> +#include <binder/IServiceManager.h> +#include <binder/ProcessState.h> + +using aidl::hardware::google::bluetooth::ewp::IBluetoothEwp; +using ndk::ScopedAStatus; +using ndk::SpAIBinder; + +class BluetoothEwpTest : public ::testing::TestWithParam<std::string> { +public: + virtual void SetUp() override; + virtual void TearDown() override; + + ndk::ScopedAStatus enableEwp(uint16_t event_mask); + ndk::ScopedAStatus disableEwp(); + +private: + std::shared_ptr<IBluetoothEwp> bluetooth_ewp_; +}; + +void BluetoothEwpTest::SetUp() { + ALOGI("SetUp Bluetooth Ewp Test"); + bluetooth_ewp_ = IBluetoothEwp::fromBinder( + ndk::SpAIBinder(AServiceManager_waitForService(GetParam().c_str()))); + ASSERT_NE(bluetooth_ewp_, nullptr); +} + +void BluetoothEwpTest::TearDown() { + ALOGI("TearDown Bluetooth Ewp Test"); + bluetooth_ewp_ = nullptr; + ASSERT_EQ(bluetooth_ewp_, nullptr); +} + +ndk::ScopedAStatus BluetoothEwpTest::enableEwp(uint16_t event_mask){ + return bluetooth_ewp_->enableEwp(event_mask); +} + +ndk::ScopedAStatus BluetoothEwpTest::disableEwp() { + return bluetooth_ewp_->disableEwp(); +} + +TEST_P(BluetoothEwpTest, enableEwp) { + uint16_t event_mask = 275; + ndk::ScopedAStatus status = enableEwp(event_mask); + ASSERT_TRUE(status.isOk()); +} + +TEST_P(BluetoothEwpTest, disableEwp) { + ndk::ScopedAStatus status = disableEwp(); + ASSERT_TRUE(status.isOk()); +} + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BluetoothEwpTest); +INSTANTIATE_TEST_SUITE_P(PerInstance, BluetoothEwpTest, + testing::ValuesIn(android::getAidlHalInstanceNames( + IBluetoothEwp::descriptor)), + android::PrintInstanceNameToString); + +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + ABinderProcess_startThreadPool(); + int status = RUN_ALL_TESTS(); + ALOGI("Test result = %d", status); + return status; +} + diff --git a/bluetooth/ewp/aidl/vts/VtsHalBluetoothEwpTargetTest.xml b/bluetooth/ewp/aidl/vts/VtsHalBluetoothEwpTargetTest.xml new file mode 100644 index 0000000..963d0d5 --- /dev/null +++ b/bluetooth/ewp/aidl/vts/VtsHalBluetoothEwpTargetTest.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> +<configuration description="Runs VtsHalBluetoothEwpTargetTest."> + <option name="test-suite-tag" value="apct" /> + <option name="test-suite-tag" value="apct-native" /> + + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"> + </target_preparer> + + <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> + <option name="run-command" value="settings put global ble_scan_always_enabled 0" /> + <option name="run-command" value="cmd bluetooth_manager disable" /> + <option name="run-command" value="cmd bluetooth_manager wait-for-state:STATE_OFF" /> + <option name="teardown-command" value="cmd bluetooth_manager enable" /> + <option name="teardown-command" value="cmd bluetooth_manager wait-for-state:STATE_ON" /> + <option name="teardown-command" value="settings put global ble_scan_always_enabled 1" /> + </target_preparer> + + <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> + <option name="cleanup" value="true" /> + <option name="push" value="VtsHalBluetoothEwpTargetTest->/data/local/tmp/VtsHalBluetoothEwpTargetTest" /> + </target_preparer> + + <test class="com.android.tradefed.testtype.GTest" > + <option name="native-test-device-path" value="/data/local/tmp" /> + <option name="module-name" value="VtsHalBluetoothEwpTargetTest" /> + </test> +</configuration> + diff --git a/bluetooth/ext/aidl/Android.bp b/bluetooth/ext/aidl/Android.bp new file mode 100644 index 0000000..00debbb --- /dev/null +++ b/bluetooth/ext/aidl/Android.bp @@ -0,0 +1,30 @@ +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["Android-Apache-2.0"], +} + +aidl_interface { + name: "hardware.google.bluetooth.ext", + owner: "google", + vendor_available: true, + srcs: [ + "hardware/google/bluetooth/ext/IBluetoothExt.aidl", + ], + stability: "vintf", + + backend: { + cpp: { + enabled: true, + }, + java: { + platform_apis: true, + }, + ndk: { + apex_available: [ + "//apex_available:platform", + "com.android.btservices", + ], + min_sdk_version: "33", + }, + }, +} diff --git a/bluetooth/ext/aidl/OWNERS b/bluetooth/ext/aidl/OWNERS new file mode 100644 index 0000000..e406ad5 --- /dev/null +++ b/bluetooth/ext/aidl/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 27441 +tiand@google.com diff --git a/bluetooth/ext/aidl/aidl_api/hardware.google.bluetooth.ext/current/hardware/google/bluetooth/ext/IBluetoothExt.aidl b/bluetooth/ext/aidl/aidl_api/hardware.google.bluetooth.ext/current/hardware/google/bluetooth/ext/IBluetoothExt.aidl new file mode 100644 index 0000000..839c726 --- /dev/null +++ b/bluetooth/ext/aidl/aidl_api/hardware.google.bluetooth.ext/current/hardware/google/bluetooth/ext/IBluetoothExt.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 is pixel only extension for Bluetooth HAL. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package hardware.google.bluetooth.ext; +@VintfStability +interface IBluetoothExt { + boolean setBluetoothCmdPacket(in char opcode, in byte[] params); +} diff --git a/bluetooth/ext/aidl/hardware/google/bluetooth/ext/IBluetoothExt.aidl b/bluetooth/ext/aidl/hardware/google/bluetooth/ext/IBluetoothExt.aidl new file mode 100644 index 0000000..4001489 --- /dev/null +++ b/bluetooth/ext/aidl/hardware/google/bluetooth/ext/IBluetoothExt.aidl @@ -0,0 +1,31 @@ +/* + * 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 is pixel only extension for Bluetooth HAL. + */ +package hardware.google.bluetooth.ext; + +@VintfStability +interface IBluetoothExt { + /** + * API to set Bluetooth HCI packet + * + * @param opcode : Bluetooth HCI command opcode to be send + * @param params : Bluetooth HCI command parameters for the opcode + */ + boolean setBluetoothCmdPacket(in char opcode, in byte[] params); +} diff --git a/bluetooth/ext/aidl/vts/Android.bp b/bluetooth/ext/aidl/vts/Android.bp new file mode 100644 index 0000000..983424f --- /dev/null +++ b/bluetooth/ext/aidl/vts/Android.bp @@ -0,0 +1,27 @@ +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["Android-Apache-2.0"], +} +cc_test { + name: "VtsHalBluetoothExtTargetTest", + defaults: [ + "use_libaidlvintf_gtest_helper_static", + ], + srcs: ["VtsHalBluetoothExtTargetTest.cpp"], + shared_libs: [ + "libbase", + "libcutils", + "libbinder_ndk", + "liblog", + "libutils", + "//hardware/google/interfaces:hardware.google.bluetooth.ext-V1-ndk", + ], + static_libs: [ + "libbluetooth-types", + ], + test_config: "VtsHalBluetoothExtTargetTest.xml", + test_suites: [ + "general-tests", + "vts", + ], +} diff --git a/bluetooth/ext/aidl/vts/VtsHalBluetoothExtTargetTest.cpp b/bluetooth/ext/aidl/vts/VtsHalBluetoothExtTargetTest.cpp new file mode 100644 index 0000000..55abbd8 --- /dev/null +++ b/bluetooth/ext/aidl/vts/VtsHalBluetoothExtTargetTest.cpp @@ -0,0 +1,83 @@ +/* + * 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. + */ +#include <aidl/Gtest.h> +#include <aidl/Vintf.h> +#include <aidl/hardware/google/bluetooth/ext/IBluetoothExt.h> +#include <android/binder_auto_utils.h> +#include <android/binder_manager.h> +#include <android/binder_process.h> +#include <binder/IServiceManager.h> +#include <binder/ProcessState.h> + +using aidl::hardware::google::bluetooth::ext::IBluetoothExt; +using ndk::ScopedAStatus; +using ndk::SpAIBinder; + +class BluetoothExtTest : public ::testing::TestWithParam<std::string> { +public: + virtual void SetUp() override; + virtual void TearDown() override; + + ndk::ScopedAStatus setBluetoothCmdPacket(uint16_t opcode, const std::vector<uint8_t>& params, bool* ret_ptr); + +private: + std::shared_ptr<IBluetoothExt> bluetooth_ext_; +}; + +void BluetoothExtTest::SetUp() { + ALOGI("SetUp Bluetooth Ext Test"); + bluetooth_ext_ = IBluetoothExt::fromBinder( + ndk::SpAIBinder(AServiceManager_waitForService(GetParam().c_str()))); + ASSERT_NE(bluetooth_ext_, nullptr); +} + +void BluetoothExtTest::TearDown() { + ALOGI("Tear Down Bluetooth Ext Test"); + bluetooth_ext_ = nullptr; + ASSERT_EQ(bluetooth_ext_, nullptr); +} + +ndk::ScopedAStatus BluetoothExtTest::setBluetoothCmdPacket(uint16_t opcode, const std::vector<uint8_t>& params, bool* ret_ptr) { + ndk::ScopedAStatus status = bluetooth_ext_->setBluetoothCmdPacket(opcode, params, ret_ptr); + if (!(*ret_ptr)) { + return ndk::ScopedAStatus::fromServiceSpecificError(STATUS_BAD_VALUE); + } + return status; +} + +TEST_P(BluetoothExtTest, setBluetoothCmdPacket) { + uint16_t opcode = 0xfe20; + std::vector<uint8_t> params = {0x20, 0xfe, 0x08, 0x14, 0x01, 0xff, 0x00, 0x10, 0x00, 0x01, 0x00}; + bool is_valid_packet = false; + ndk::ScopedAStatus status = setBluetoothCmdPacket(opcode, params, &is_valid_packet); + ASSERT_TRUE(is_valid_packet); + ASSERT_TRUE(status.isOk()); +} + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BluetoothExtTest); +INSTANTIATE_TEST_SUITE_P(PerInstance, BluetoothExtTest, + testing::ValuesIn(android::getAidlHalInstanceNames( + IBluetoothExt::descriptor)), + android::PrintInstanceNameToString); + +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + ABinderProcess_startThreadPool(); + int status = RUN_ALL_TESTS(); + ALOGI("Test result = %d", status); + return status; +} + diff --git a/bluetooth/ext/aidl/vts/VtsHalBluetoothExtTargetTest.xml b/bluetooth/ext/aidl/vts/VtsHalBluetoothExtTargetTest.xml new file mode 100644 index 0000000..4e8b3d9 --- /dev/null +++ b/bluetooth/ext/aidl/vts/VtsHalBluetoothExtTargetTest.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> +<configuration description="Runs VtsHalBluetoothExtTargetTest."> + <option name="test-suite-tag" value="apct" /> + <option name="test-suite-tag" value="apct-native" /> + + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"> + </target_preparer> + + <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> + <option name="run-command" value="settings put global ble_scan_always_enabled 0" /> + <option name="run-command" value="cmd bluetooth_manager disable" /> + <option name="run-command" value="cmd bluetooth_manager wait-for-state:STATE_OFF" /> + <option name="teardown-command" value="cmd bluetooth_manager enable" /> + <option name="teardown-command" value="cmd bluetooth_manager wait-for-state:STATE_ON" /> + <option name="teardown-command" value="settings put global ble_scan_always_enabled 1" /> + </target_preparer> + + <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> + <option name="cleanup" value="true" /> + <option name="push" value="VtsHalBluetoothExtTargetTest->/data/local/tmp/VtsHalBluetoothExtTargetTest" /> + </target_preparer> + + <test class="com.android.tradefed.testtype.GTest" > + <option name="native-test-device-path" value="/data/local/tmp" /> + <option name="module-name" value="VtsHalBluetoothExtTargetTest" /> + </test> +</configuration> diff --git a/bluetooth/sar/aidl/Android.bp b/bluetooth/sar/aidl/Android.bp index 557081e..66f7f12 100644 --- a/bluetooth/sar/aidl/Android.bp +++ b/bluetooth/sar/aidl/Android.bp @@ -17,5 +17,20 @@ aidl_interface { java: { platform_apis: true, }, + ndk: { + apex_available: [ + "//apex_available:platform", + "com.android.btservices", + ], + min_sdk_version: "33", + }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + } diff --git a/bluetooth/sar/aidl/OWNERS b/bluetooth/sar/aidl/OWNERS new file mode 100644 index 0000000..e406ad5 --- /dev/null +++ b/bluetooth/sar/aidl/OWNERS @@ -0,0 +1,2 @@ +# Bug component: 27441 +tiand@google.com diff --git a/bluetooth/sar/aidl/aidl_api/hardware.google.bluetooth.sar/1/.hash b/bluetooth/sar/aidl/aidl_api/hardware.google.bluetooth.sar/1/.hash new file mode 100644 index 0000000..76a0736 --- /dev/null +++ b/bluetooth/sar/aidl/aidl_api/hardware.google.bluetooth.sar/1/.hash @@ -0,0 +1 @@ +3c35bb863a7aef2b57076b4bc2fd28848df8edc0 diff --git a/bluetooth/sar/aidl/aidl_api/hardware.google.bluetooth.sar/1/hardware/google/bluetooth/sar/IBluetoothSar.aidl b/bluetooth/sar/aidl/aidl_api/hardware.google.bluetooth.sar/1/hardware/google/bluetooth/sar/IBluetoothSar.aidl new file mode 100644 index 0000000..4e32ff9 --- /dev/null +++ b/bluetooth/sar/aidl/aidl_api/hardware.google.bluetooth.sar/1/hardware/google/bluetooth/sar/IBluetoothSar.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package hardware.google.bluetooth.sar; +@VintfStability +interface IBluetoothSar { + oneway void setBluetoothTxPowerCap(in byte cap); + oneway void setBluetoothTechBasedTxPowerCap(in byte brCap, in byte edrCap, in byte bleCap); + oneway void setBluetoothModeBasedTxPowerCap(in byte[3] chain0Cap, in byte[3] chain1Cap, in byte[6] beamformingCap); + oneway void setBluetoothModeBasedTxPowerCapPlusHR(in byte[4] chain0Cap, in byte[4] chain1Cap, in byte[8] beamformingCap); + oneway void setBluetoothAreaCode(in byte[3] areaCode); +} diff --git a/bluetooth/sar/aidl/aidl_api/hardware.google.bluetooth.sar/current/hardware/google/bluetooth/sar/IBluetoothSar.aidl b/bluetooth/sar/aidl/aidl_api/hardware.google.bluetooth.sar/current/hardware/google/bluetooth/sar/IBluetoothSar.aidl index a7b2d7f..4e32ff9 100644 --- a/bluetooth/sar/aidl/aidl_api/hardware.google.bluetooth.sar/current/hardware/google/bluetooth/sar/IBluetoothSar.aidl +++ b/bluetooth/sar/aidl/aidl_api/hardware.google.bluetooth.sar/current/hardware/google/bluetooth/sar/IBluetoothSar.aidl @@ -38,5 +38,5 @@ interface IBluetoothSar { oneway void setBluetoothTechBasedTxPowerCap(in byte brCap, in byte edrCap, in byte bleCap); oneway void setBluetoothModeBasedTxPowerCap(in byte[3] chain0Cap, in byte[3] chain1Cap, in byte[6] beamformingCap); oneway void setBluetoothModeBasedTxPowerCapPlusHR(in byte[4] chain0Cap, in byte[4] chain1Cap, in byte[8] beamformingCap); - oneway void setBluetoothAreaCode(in int areaCode); + oneway void setBluetoothAreaCode(in byte[3] areaCode); } diff --git a/bluetooth/sar/aidl/hardware/google/bluetooth/sar/IBluetoothSar.aidl b/bluetooth/sar/aidl/hardware/google/bluetooth/sar/IBluetoothSar.aidl index 023f634..96b37fc 100644 --- a/bluetooth/sar/aidl/hardware/google/bluetooth/sar/IBluetoothSar.aidl +++ b/bluetooth/sar/aidl/hardware/google/bluetooth/sar/IBluetoothSar.aidl @@ -93,5 +93,5 @@ interface IBluetoothSar { * between 0-899. 900-999 may be user-assigned by vendor to add further names * of countries, territories, or regions. */ - oneway void setBluetoothAreaCode(in int areaCode); + oneway void setBluetoothAreaCode(in byte[3] areaCode); } diff --git a/bluetooth/sar/aidl/vts/Android.bp b/bluetooth/sar/aidl/vts/Android.bp new file mode 100644 index 0000000..ace79d3 --- /dev/null +++ b/bluetooth/sar/aidl/vts/Android.bp @@ -0,0 +1,28 @@ +package { + // See: http://go/android-license-faq + default_applicable_licenses: ["Android-Apache-2.0"], +} + +cc_test { + name: "VtsHalBluetoothSarTargetTest", + defaults: [ + "use_libaidlvintf_gtest_helper_static", + ], + srcs: ["VtsHalBluetoothSarTargetTest.cpp"], + shared_libs: [ + "libbase", + "libcutils", + "libbinder_ndk", + "liblog", + "libutils", + "//hardware/google/interfaces:hardware.google.bluetooth.sar-V1-ndk", + ], + static_libs: [ + "libbluetooth-types", + ], + test_config: "VtsHalBluetoothSarTargetTest.xml", + test_suites: [ + "general-tests", + "vts", + ], +} diff --git a/bluetooth/sar/aidl/vts/VtsHalBluetoothSarTargetTest.cpp b/bluetooth/sar/aidl/vts/VtsHalBluetoothSarTargetTest.cpp new file mode 100644 index 0000000..817c953 --- /dev/null +++ b/bluetooth/sar/aidl/vts/VtsHalBluetoothSarTargetTest.cpp @@ -0,0 +1,137 @@ +/* + * 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. + */ + +#include <aidl/Gtest.h> +#include <aidl/Vintf.h> +#include <aidl/hardware/google/bluetooth/sar/IBluetoothSar.h> +#include <android/binder_auto_utils.h> +#include <android/binder_manager.h> +#include <android/binder_process.h> +#include <binder/IServiceManager.h> +#include <binder/ProcessState.h> + +using aidl::hardware::google::bluetooth::sar::IBluetoothSar; +using ndk::ScopedAStatus; +using ndk::SpAIBinder; + +class BluetoothSarTest : public ::testing::TestWithParam<std::string> { +public: + virtual void SetUp() override; + virtual void TearDown() override; + + ndk::ScopedAStatus setAndCheckBluetoothTxPowerCap(int8_t cap); + ndk::ScopedAStatus setAndCheckBluetoothTechBasedTxPowerCap(int8_t br_cap, int8_t edr_cap, int8_t ble_cap); + ndk::ScopedAStatus setAndCheckBluetoothModeBasedTxPowerCap(const std::array<uint8_t, 3>& chain_0_cap, const std::array<uint8_t, 3>& chain_1_cap, const std::array<uint8_t, 6>& beamforming_cap); + ndk::ScopedAStatus setAndCheckBluetoothModeBasedTxPowerCapPlusHR(const std::array<uint8_t, 4>& chain_0_cap, const std::array<uint8_t, 4>& chain_1_cap, const std::array<uint8_t, 8>& beamforming_cap); + ndk::ScopedAStatus setAndCheckBluetoothAreaCode(const std::array<uint8_t, 3>& area_code); + +private: + std::shared_ptr<IBluetoothSar> bluetooth_sar_; +}; + +void BluetoothSarTest::SetUp() { + ALOGI("SetUp Bluetooth SAR Test"); + bluetooth_sar_ = IBluetoothSar::fromBinder( + ndk::SpAIBinder(AServiceManager_waitForService(GetParam().c_str()))); + ASSERT_NE(bluetooth_sar_, nullptr); +} + +void BluetoothSarTest::TearDown() { + ALOGI("TearDown Bluetooth SAR Test"); + bluetooth_sar_ = nullptr; + ASSERT_EQ(bluetooth_sar_, nullptr); +} + +ndk::ScopedAStatus BluetoothSarTest::setAndCheckBluetoothTxPowerCap(int8_t cap) { + return bluetooth_sar_->setBluetoothTxPowerCap(cap); +} + +ndk::ScopedAStatus BluetoothSarTest::setAndCheckBluetoothTechBasedTxPowerCap( + int8_t br_cap, int8_t edr_cap, int8_t ble_cap) { + return bluetooth_sar_->setBluetoothTechBasedTxPowerCap(br_cap, edr_cap, ble_cap); +} + +ndk::ScopedAStatus BluetoothSarTest::setAndCheckBluetoothModeBasedTxPowerCap( + const std::array<uint8_t, 3>& chain_0_cap, + const std::array<uint8_t, 3>& chain_1_cap, + const std::array<uint8_t, 6>& beamforming_cap) { + return bluetooth_sar_->setBluetoothModeBasedTxPowerCap(chain_0_cap, chain_1_cap, beamforming_cap); +} + + +ndk::ScopedAStatus BluetoothSarTest::setAndCheckBluetoothModeBasedTxPowerCapPlusHR( + const std::array<uint8_t, 4>& chain_0_cap, + const std::array<uint8_t, 4>& chain_1_cap, + const std::array<uint8_t, 8>& beamforming_cap){ + return bluetooth_sar_->setBluetoothModeBasedTxPowerCapPlusHR(chain_0_cap, chain_1_cap, beamforming_cap); +} + +TEST_P(BluetoothSarTest, setAndCheckBluetoothTxPowerCap) { + ndk::ScopedAStatus status = setAndCheckBluetoothTxPowerCap(40); + ASSERT_TRUE(status.isOk()); + // check invalid power cap (greater than 80) + status = setAndCheckBluetoothTxPowerCap(100); + ASSERT_FALSE(status.isOk()); +} + + +TEST_P(BluetoothSarTest, setAndCheckBluetoothTechBasedTxPowerCap) { + ndk::ScopedAStatus status = setAndCheckBluetoothTechBasedTxPowerCap(10, 20, 30); + ASSERT_TRUE(status.isOk()); + // check invalid power cap (greater than 80) + status = setAndCheckBluetoothTechBasedTxPowerCap(10, 120, 30); + ASSERT_FALSE(status.isOk()); +} + +TEST_P(BluetoothSarTest, setAndCheckBluetoothModeBasedTxPowerCap) { + std::array<uint8_t, 3> chain_0_cap = {10, 20, 30}; + std::array<uint8_t, 3> chain_1_cap = {15, 25, 35}; + std::array<uint8_t, 6> beamforming_cap = {10, 20, 30, 40, 50, 60}; + ndk::ScopedAStatus status = + setAndCheckBluetoothModeBasedTxPowerCap(chain_0_cap, chain_1_cap, beamforming_cap); + ASSERT_TRUE(status.isOk()); + // check invalid power cap (greater than 80) + std::array<uint8_t, 3> bad_cap = {15, 125, 35}; + status = setAndCheckBluetoothModeBasedTxPowerCap(chain_0_cap, bad_cap, beamforming_cap); + ASSERT_FALSE(status.isOk()); +} + +TEST_P(BluetoothSarTest, setAndCheckBluetoothModeBasedTxPowerCapPlusHR) { + std::array<uint8_t, 4> chain_0_cap = {10, 20, 30, 40}; + std::array<uint8_t, 4> chain_1_cap = {15, 25, 35, 45}; + std::array<uint8_t, 8> beamforming_cap = {10, 20, 30, 40, 50, 60, 70, 80}; + ndk::ScopedAStatus status = + setAndCheckBluetoothModeBasedTxPowerCapPlusHR(chain_0_cap, chain_1_cap, beamforming_cap); + ASSERT_TRUE(status.isOk()); + // check invalid power cap (greater than 80) + std::array<uint8_t, 4> bad_cap = {10, 20, 30, 200}; + status = setAndCheckBluetoothModeBasedTxPowerCapPlusHR(bad_cap, chain_1_cap, beamforming_cap); + ASSERT_FALSE(status.isOk()); +} + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BluetoothSarTest); +INSTANTIATE_TEST_SUITE_P(PerInstance, BluetoothSarTest, + testing::ValuesIn(android::getAidlHalInstanceNames( + IBluetoothSar::descriptor)), + android::PrintInstanceNameToString); + +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + ABinderProcess_startThreadPool(); + int status = RUN_ALL_TESTS(); + ALOGI("Test result = %d", status); + return status; +} diff --git a/bluetooth/sar/aidl/vts/VtsHalBluetoothSarTargetTest.xml b/bluetooth/sar/aidl/vts/VtsHalBluetoothSarTargetTest.xml new file mode 100644 index 0000000..cb14573 --- /dev/null +++ b/bluetooth/sar/aidl/vts/VtsHalBluetoothSarTargetTest.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> +<configuration description="Runs VtsHalBluetoothSarTargetTest."> + <option name="test-suite-tag" value="apct" /> + <option name="test-suite-tag" value="apct-native" /> + + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"> + </target_preparer> + + <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> + <option name="run-command" value="settings put global ble_scan_always_enabled 0" /> + <option name="run-command" value="cmd bluetooth_manager disable" /> + <option name="run-command" value="cmd bluetooth_manager wait-for-state:STATE_OFF" /> + <option name="teardown-command" value="cmd bluetooth_manager enable" /> + <option name="teardown-command" value="cmd bluetooth_manager wait-for-state:STATE_ON" /> + <option name="teardown-command" value="settings put global ble_scan_always_enabled 1" /> + </target_preparer> + + <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> + <option name="cleanup" value="true" /> + <option name="push" value="VtsHalBluetoothSarTargetTest->/data/local/tmp/VtsHalBluetoothSarTargetTest" /> + </target_preparer> + + <test class="com.android.tradefed.testtype.GTest" > + <option name="native-test-device-path" value="/data/local/tmp" /> + <option name="module-name" value="VtsHalBluetoothSarTargetTest" /> + </test> +</configuration> + diff --git a/display/Android.bp b/display/Android.bp index b146a54..31542e9 100644 --- a/display/Android.bp +++ b/display/Android.bp @@ -15,7 +15,7 @@ aidl_interface { imports: [ "android.hardware.common-V2", - "android.hardware.graphics.common-V4", + "android.hardware.graphics.common-V5", ], backend: { @@ -31,63 +31,70 @@ aidl_interface { version: "1", imports: [ "android.hardware.common-V2", - "android.hardware.graphics.common-V4", + "android.hardware.graphics.common-V5", ], }, { version: "2", imports: [ "android.hardware.common-V2", - "android.hardware.graphics.common-V4", + "android.hardware.graphics.common-V5", ], }, { version: "3", imports: [ "android.hardware.common-V2", - "android.hardware.graphics.common-V4", + "android.hardware.graphics.common-V5", ], }, { version: "4", imports: [ "android.hardware.common-V2", - "android.hardware.graphics.common-V4", + "android.hardware.graphics.common-V5", ], }, { version: "5", imports: [ "android.hardware.common-V2", - "android.hardware.graphics.common-V4", + "android.hardware.graphics.common-V5", ], }, { version: "6", imports: [ "android.hardware.common-V2", - "android.hardware.graphics.common-V4", + "android.hardware.graphics.common-V5", ], }, { version: "7", imports: [ "android.hardware.common-V2", - "android.hardware.graphics.common-V4", + "android.hardware.graphics.common-V5", ], }, { version: "8", imports: [ "android.hardware.common-V2", - "android.hardware.graphics.common-V4", + "android.hardware.graphics.common-V5", ], }, { version: "9", imports: [ "android.hardware.common-V2", - "android.hardware.graphics.common-V4", + "android.hardware.graphics.common-V5", + ], + }, + { + version: "10", + imports: [ + "android.hardware.common-V2", + "android.hardware.graphics.common-V5", ], }, diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/.hash b/display/aidl_api/com.google.hardware.pixel.display/10/.hash new file mode 100644 index 0000000..fd6bc86 --- /dev/null +++ b/display/aidl_api/com.google.hardware.pixel.display/10/.hash @@ -0,0 +1 @@ +baba07b678d5de541a70f3c4b7b3c03bd78d5d3a diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HbmState.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HbmState.aidl new file mode 100644 index 0000000..76af8b3 --- /dev/null +++ b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HbmState.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package com.google.hardware.pixel.display; +@Backing(type="byte") @VintfStability +enum HbmState { + OFF = 0, + HDR = 1, + SUNLIGHT = 2, +} diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramCapability.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramCapability.aidl new file mode 100644 index 0000000..bf4a34c --- /dev/null +++ b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramCapability.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package com.google.hardware.pixel.display; +@VintfStability +parcelable HistogramCapability { + boolean supportMultiChannel; + int channelCount; + int fullResolutionWidth; + int fullResolutionHeight; + com.google.hardware.pixel.display.HistogramSamplePos[] supportSamplePosList; + boolean supportBlockingRoi; +} diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramConfig.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramConfig.aidl new file mode 100644 index 0000000..a5fe1d4 --- /dev/null +++ b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramConfig.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package com.google.hardware.pixel.display; +@VintfStability +parcelable HistogramConfig { + android.hardware.graphics.common.Rect roi; + com.google.hardware.pixel.display.Weight weights; + com.google.hardware.pixel.display.HistogramSamplePos samplePos; + @nullable android.hardware.graphics.common.Rect blockingRoi; +} diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramErrorCode.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramErrorCode.aidl new file mode 100644 index 0000000..6c8bca7 --- /dev/null +++ b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramErrorCode.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package com.google.hardware.pixel.display; +@Backing(type="byte") @VintfStability +enum HistogramErrorCode { + NONE = 0, + BAD_ROI = 1, + BAD_WEIGHT = 2, + BAD_POSITION = 3, + BAD_PRIORITY = 4, + ENABLE_HIST_ERROR = 5, + DISABLE_HIST_ERROR = 6, + BAD_HIST_DATA = 7, + DRM_PLAYING = 8, + DISPLAY_POWEROFF = 9, + API_DEPRECATED = 10, + BAD_TOKEN = 11, + CONFIG_HIST_ERROR = 12, + NO_CHANNEL_AVAILABLE = 13, +} diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramPos.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramPos.aidl new file mode 100644 index 0000000..20b8160 --- /dev/null +++ b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramPos.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package com.google.hardware.pixel.display; +@Backing(type="byte") @VintfStability +enum HistogramPos { + POST = 0, + PRE = 1, +} diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramSamplePos.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramSamplePos.aidl new file mode 100644 index 0000000..0acc055 --- /dev/null +++ b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/HistogramSamplePos.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package com.google.hardware.pixel.display; +@Backing(type="byte") @VintfStability +enum HistogramSamplePos { + POST_POSTPROC = 0, + PRE_POSTPROC = 1, +} diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/IDisplay.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/IDisplay.aidl new file mode 100644 index 0000000..7a54c1c --- /dev/null +++ b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/IDisplay.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package com.google.hardware.pixel.display; +@VintfStability +interface IDisplay { + boolean isHbmSupported(); + void setHbmState(in com.google.hardware.pixel.display.HbmState state); + com.google.hardware.pixel.display.HbmState getHbmState(); + boolean isLbeSupported(); + void setLbeState(in com.google.hardware.pixel.display.LbeState state); + void setLbeAmbientLight(in int ambientLux); + com.google.hardware.pixel.display.LbeState getLbeState(); + boolean isLhbmSupported(); + void setLhbmState(in boolean enabled); + boolean getLhbmState(); + int setCompensationImageHandle(in android.hardware.common.NativeHandle native_handle, in String imageName); + int setMinIdleRefreshRate(in int fps); + int setRefreshRateThrottle(in int delayMs); + com.google.hardware.pixel.display.HistogramErrorCode histogramSample(in android.hardware.graphics.common.Rect roi, in com.google.hardware.pixel.display.Weight weight, in com.google.hardware.pixel.display.HistogramPos pos, in com.google.hardware.pixel.display.Priority pri, out char[] histogrambuffer); + com.google.hardware.pixel.display.PanelCalibrationStatus getPanelCalibrationStatus(); + boolean isDbmSupported(); + void setDbmState(in boolean enabled); + void setPeakRefreshRate(in int rate); + void setLowPowerMode(in boolean enabled); + boolean isOperationRateSupported(); + com.google.hardware.pixel.display.HistogramCapability getHistogramCapability(); + com.google.hardware.pixel.display.HistogramErrorCode registerHistogram(in IBinder token, in com.google.hardware.pixel.display.HistogramConfig histogramConfig); + com.google.hardware.pixel.display.HistogramErrorCode queryHistogram(in IBinder token, out char[] histogramBuffer); + com.google.hardware.pixel.display.HistogramErrorCode reconfigHistogram(in IBinder token, in com.google.hardware.pixel.display.HistogramConfig histogramConfig); + com.google.hardware.pixel.display.HistogramErrorCode unregisterHistogram(in IBinder token); +} diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/LbeState.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/LbeState.aidl new file mode 100644 index 0000000..8c8b53e --- /dev/null +++ b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/LbeState.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package com.google.hardware.pixel.display; +@Backing(type="byte") @VintfStability +enum LbeState { + OFF = 0, + NORMAL = 1, + HIGH_BRIGHTNESS = 2, + POWER_SAVE = 3, + HIGH_BRIGHTNESS_ENHANCE = 4, +} diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/PanelCalibrationStatus.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/PanelCalibrationStatus.aidl new file mode 100644 index 0000000..55271d0 --- /dev/null +++ b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/PanelCalibrationStatus.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package com.google.hardware.pixel.display; +@Backing(type="byte") @VintfStability +enum PanelCalibrationStatus { + ORIGINAL = 0, + GOLDEN = 1, + UNCALIBRATED = 2, +} diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/Priority.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/Priority.aidl new file mode 100644 index 0000000..2b2c957 --- /dev/null +++ b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/Priority.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package com.google.hardware.pixel.display; +@Backing(type="byte") @VintfStability +enum Priority { + NORMAL = 0, + PRIORITY = 1, +} diff --git a/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/Weight.aidl b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/Weight.aidl new file mode 100644 index 0000000..e25da1e --- /dev/null +++ b/display/aidl_api/com.google.hardware.pixel.display/10/com/google/hardware/pixel/display/Weight.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package com.google.hardware.pixel.display; +@VintfStability +parcelable Weight { + char weightR; + char weightG; + char weightB; +} diff --git a/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramCapability.aidl b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramCapability.aidl index bbae60d..bf4a34c 100644 --- a/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramCapability.aidl +++ b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramCapability.aidl @@ -39,4 +39,5 @@ parcelable HistogramCapability { int fullResolutionWidth; int fullResolutionHeight; com.google.hardware.pixel.display.HistogramSamplePos[] supportSamplePosList; + boolean supportBlockingRoi; } diff --git a/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramConfig.aidl b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramConfig.aidl index c72f349..a5fe1d4 100644 --- a/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramConfig.aidl +++ b/display/aidl_api/com.google.hardware.pixel.display/current/com/google/hardware/pixel/display/HistogramConfig.aidl @@ -37,4 +37,5 @@ parcelable HistogramConfig { android.hardware.graphics.common.Rect roi; com.google.hardware.pixel.display.Weight weights; com.google.hardware.pixel.display.HistogramSamplePos samplePos; + @nullable android.hardware.graphics.common.Rect blockingRoi; } diff --git a/display/com/google/hardware/pixel/display/HistogramCapability.aidl b/display/com/google/hardware/pixel/display/HistogramCapability.aidl index ea6e312..ad6a8a8 100644 --- a/display/com/google/hardware/pixel/display/HistogramCapability.aidl +++ b/display/com/google/hardware/pixel/display/HistogramCapability.aidl @@ -51,4 +51,10 @@ parcelable HistogramCapability { * supportSamplePosList lists the supported histogram sample position. */ HistogramSamplePos[] supportSamplePosList; + + /** + * supportBlockingRoi is true means the server support blocking ROI. Otherwise, + * the client should not use the blocking ROI. + */ + boolean supportBlockingRoi; } diff --git a/display/com/google/hardware/pixel/display/HistogramConfig.aidl b/display/com/google/hardware/pixel/display/HistogramConfig.aidl index 4798447..34df010 100644 --- a/display/com/google/hardware/pixel/display/HistogramConfig.aidl +++ b/display/com/google/hardware/pixel/display/HistogramConfig.aidl @@ -28,6 +28,8 @@ parcelable HistogramConfig { * calculated based on the full resolution which is described by * getHistogramCapability. Note that the right and bottom coordinates are * exclusive. + * Note: (0, 0, 0, 0) means the ROI is disabled, histogram hardware will + * capture the region inside the entire screen but outside the blocking ROI. */ Rect roi; @@ -44,4 +46,15 @@ parcelable HistogramConfig { * (before post processing) or POST_POSTPROC (after post processing). */ HistogramSamplePos samplePos; + + /** + * blockingRoi is the ROI blocking region. The histogram inside blockingRoi + * is not captured even that region lies within the roi. Rect is represented + * by the (int) coordinates of its 4 edges (left, top, right, bottom). + * The coordinates should be calculated based on the full resolution which + * is described by getHistogramCapability. Note that the right and bottom + * coordinates are exclusive. + * Note: (0, 0, 0, 0) means the blocking ROI is disabled. + */ + @nullable Rect blockingRoi; } diff --git a/ril_ext/Android.bp b/ril_ext/Android.bp index 63ecd37..97f61c5 100644 --- a/ril_ext/Android.bp +++ b/ril_ext/Android.bp @@ -19,4 +19,12 @@ aidl_interface { enabled: true, }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + } diff --git a/ril_ext/aidl_api/hardware.google.ril_ext/1/.hash b/ril_ext/aidl_api/hardware.google.ril_ext/1/.hash new file mode 100644 index 0000000..c9c1d39 --- /dev/null +++ b/ril_ext/aidl_api/hardware.google.ril_ext/1/.hash @@ -0,0 +1 @@ +585f9549747efe73bb7a8ec7cb4216c7e513613e diff --git a/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/CarrierConfig.aidl b/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/CarrierConfig.aidl new file mode 100644 index 0000000..b863898 --- /dev/null +++ b/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/CarrierConfig.aidl @@ -0,0 +1,49 @@ +/* + * 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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package hardware.google.ril_ext; +@VintfStability +parcelable CarrierConfig { + String configKey; + hardware.google.ril_ext.CarrierConfig.ConfigValue configValue; + union ConfigValue { + boolean boolValue; + boolean[] boolArray; + int intValue; + int[] intArray; + long longValue; + long[] longArray; + String stringValue; + String[] stringArray; + } +} diff --git a/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/IRilExt.aidl b/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/IRilExt.aidl new file mode 100644 index 0000000..7dcbfa1 --- /dev/null +++ b/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/IRilExt.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package hardware.google.ril_ext; +@VintfStability +interface IRilExt { + void setCallback(in hardware.google.ril_ext.IRilExtResponse rilExtResponse, in hardware.google.ril_ext.IRilExtIndication rilExtIndication); + void sendCarrierId(in int serial, in int carrierId); + void sendCarrierConfigs(in int serial, in hardware.google.ril_ext.CarrierConfig[] carrierConfigs); +} diff --git a/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/IRilExtIndication.aidl b/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/IRilExtIndication.aidl new file mode 100644 index 0000000..2db2705 --- /dev/null +++ b/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/IRilExtIndication.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package hardware.google.ril_ext; +@VintfStability +interface IRilExtIndication { + void registerCarrierConfigChange(in String[] registeredKeys, in String[] unregisteredKeys); + void triggerBugreport(in String title); +} diff --git a/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/IRilExtResponse.aidl b/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/IRilExtResponse.aidl new file mode 100644 index 0000000..a5dfb2b --- /dev/null +++ b/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/IRilExtResponse.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package hardware.google.ril_ext; +@VintfStability +interface IRilExtResponse { + void sendCarrierIdResponse(in hardware.google.ril_ext.RilResponseInfo info); + void sendCarrierConfigsResponse(in hardware.google.ril_ext.RilResponseInfo info); +} diff --git a/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/RilError.aidl b/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/RilError.aidl new file mode 100644 index 0000000..66ec05f --- /dev/null +++ b/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/RilError.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package hardware.google.ril_ext; +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RilError { + NONE = 0, + GENERIC_FAILURE = 1, + REQUEST_NOT_SUPPORTED = 2, + NO_MEMORY = 3, +} diff --git a/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/RilResponseInfo.aidl b/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/RilResponseInfo.aidl new file mode 100644 index 0000000..88e8648 --- /dev/null +++ b/ril_ext/aidl_api/hardware.google.ril_ext/1/hardware/google/ril_ext/RilResponseInfo.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 <name>-update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package hardware.google.ril_ext; +@JavaDerive(toString=true) @VintfStability +parcelable RilResponseInfo { + int serial; + hardware.google.ril_ext.RilError error; +} |