diff --git a/.gitignore b/.gitignore index 1d74e21965c4f858f5f818a270e64e1bfad7d843..6c7f477008257e25cc8f25f55ab0da9bcd06d978 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ .vscode/ + +# Vim temporary files +**/*.swp diff --git a/TEST_MAPPING b/TEST_MAPPING index 25246d8f58a89b6f3161b1247cce41af8acd6785..92cafbd750e42c239be804e27019b8fa34e4d766 100644 --- a/TEST_MAPPING +++ b/TEST_MAPPING @@ -11,6 +11,9 @@ }, { "name": "VtsHalTvInputV1_0TargetTest" + }, + { + "name": "CtsStrictJavaPackagesTestCases" } ], "auto-presubmit": [ diff --git a/audio/aidl/Android.bp b/audio/aidl/Android.bp index 89d186c633cb70f876c50cbee9a9d4ffd4202e0d..8bb8cd56124c0e2caa2a14fabde7741cd90a22c3 100644 --- a/audio/aidl/Android.bp +++ b/audio/aidl/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -43,7 +44,7 @@ aidl_interface { "android/hardware/audio/common/SinkMetadata.aidl", "android/hardware/audio/common/SourceMetadata.aidl", ], - frozen: false, + frozen: true, backend: { cpp: { enabled: true, @@ -73,6 +74,10 @@ aidl_interface { version: "2", imports: ["android.media.audio.common.types-V2"], }, + { + version: "3", + imports: ["android.media.audio.common.types-V3"], + }, // IMPORTANT: Update latest_android_hardware_audio_common every time you // add the latest frozen version to versions_with_info @@ -168,11 +173,22 @@ aidl_interface { "android.media.audio.common.types-V2", ], }, + { + version: "2", + imports: [ + "android.media.audio.common.types-V3", + "android.hardware.audio.effect-V2", + "android.hardware.audio.core.sounddose-V2", + "android.hardware.audio.common-V3", + "android.hardware.common-V2", + "android.hardware.common.fmq-V1", + ], + }, // IMPORTANT: Update latest_android_hardware_audio_core every time you // add the latest frozen version to versions_with_info ], - frozen: false, + frozen: true, } // Note: This should always be one version ahead of the last frozen version @@ -226,11 +242,15 @@ aidl_interface { version: "1", imports: ["android.media.audio.common.types-V2"], }, + { + version: "2", + imports: ["android.media.audio.common.types-V3"], + }, // IMPORTANT: Update latest_android_hardware_audio_core_sounddose every time you // add the latest frozen version to versions_with_info ], - frozen: false, + frozen: true, } // Note: This should always be one version ahead of the last frozen version @@ -327,8 +347,18 @@ aidl_interface { "android.media.audio.common.types-V2", ], }, + { + version: "2", + imports: [ + "android.media.audio.common.types-V3", + "android.hardware.audio.common-V3", + "android.hardware.common-V2", + "android.hardware.common.fmq-V1", + ], + }, + ], - frozen: false, + frozen: true, } diff --git a/audio/aidl/TEST_MAPPING b/audio/aidl/TEST_MAPPING index 81c99f78a9b4ad730b784f6fc6d9189113cc9cc0..e325001fff318781a3b73d2dd51150e37959c442 100644 --- a/audio/aidl/TEST_MAPPING +++ b/audio/aidl/TEST_MAPPING @@ -3,9 +3,15 @@ { "name": "VtsHalAudioCoreTargetTest" }, + { + "name": "audioeffect_tests" + }, { "name": "audio_policy_config_xml_converter_tests" }, + { + "name": "trackplayerbase_tests" + }, { "name": "VtsHalAudioEffectFactoryTargetTest" }, @@ -51,5 +57,27 @@ { "name": "VtsHalNSTargetTest" } + ], + "postsubmit": [ + { + "name": "VtsHalSpatializerTargetTest" + }, + { + "name": "audiorecord_tests" + }, + { + "name": "audiorouting_tests" + }, + { + "name": "audiosystem_tests" + }, + { + "name": "CtsVirtualDevicesTestCases", + "options" : [ + { + "include-filter": "android.virtualdevice.cts.VirtualAudioTest" + } + ] + } ] } diff --git a/audio/aidl/aidl_api/android.hardware.audio.common/3/.hash b/audio/aidl/aidl_api/android.hardware.audio.common/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..6addcf52a6d93a29a6fc748cad8355bf4c947d34 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.common/3/.hash @@ -0,0 +1 @@ +57ce9506b87e721f0d994b16d7cd16a494f699b9 diff --git a/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/AudioOffloadMetadata.aidl b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/AudioOffloadMetadata.aidl new file mode 100644 index 0000000000000000000000000000000000000000..000504bd408a5ee3d79c4bc47baf086538083552 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/AudioOffloadMetadata.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.common; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable AudioOffloadMetadata { + int sampleRate; + android.media.audio.common.AudioChannelLayout channelMask; + int averageBitRatePerSecond; + int delayFrames; + int paddingFrames; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/PlaybackTrackMetadata.aidl b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/PlaybackTrackMetadata.aidl new file mode 100644 index 0000000000000000000000000000000000000000..be4941c7513512fef8638ac932c3dfe719f0d79b --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/PlaybackTrackMetadata.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.common; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable PlaybackTrackMetadata { + android.media.audio.common.AudioUsage usage = android.media.audio.common.AudioUsage.INVALID; + android.media.audio.common.AudioContentType contentType = android.media.audio.common.AudioContentType.UNKNOWN; + float gain; + android.media.audio.common.AudioChannelLayout channelMask; + @nullable android.media.audio.common.AudioDevice sourceDevice; + @utf8InCpp String[] tags; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/RecordTrackMetadata.aidl b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/RecordTrackMetadata.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8f667d1081629f1be20e9ff91b967772260da08e --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/RecordTrackMetadata.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.common; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable RecordTrackMetadata { + android.media.audio.common.AudioSource source = android.media.audio.common.AudioSource.SYS_RESERVED_INVALID; + float gain; + @nullable android.media.audio.common.AudioDevice destinationDevice; + android.media.audio.common.AudioChannelLayout channelMask; + @utf8InCpp String[] tags; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SinkMetadata.aidl b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SinkMetadata.aidl new file mode 100644 index 0000000000000000000000000000000000000000..270147d2bbb1243c5aaf8eb109e745ef3f0df1d1 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SinkMetadata.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.common; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SinkMetadata { + android.hardware.audio.common.RecordTrackMetadata[] tracks; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SourceMetadata.aidl b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SourceMetadata.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2d4a982352dd1c787ace5351397378ec66290424 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.common/3/android/hardware/audio/common/SourceMetadata.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.common; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SourceMetadata { + android.hardware.audio.common.PlaybackTrackMetadata[] tracks; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/.hash b/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/.hash new file mode 100644 index 0000000000000000000000000000000000000000..b49d59bf1cebe6ebb4f7e87d86d5bda4f7015548 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/.hash @@ -0,0 +1 @@ +daed2ce165b383deb25a388fb04396a6b53746f3 diff --git a/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/android/hardware/audio/core/sounddose/ISoundDose.aidl b/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/android/hardware/audio/core/sounddose/ISoundDose.aidl new file mode 100644 index 0000000000000000000000000000000000000000..580009192dc3bcf9be805e4aeaa8d772106006d3 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/2/android/hardware/audio/core/sounddose/ISoundDose.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core.sounddose; +@VintfStability +interface ISoundDose { + void setOutputRs2UpperBound(float rs2ValueDbA); + float getOutputRs2UpperBound(); + void registerSoundDoseCallback(in android.hardware.audio.core.sounddose.ISoundDose.IHalSoundDoseCallback callback); + const int DEFAULT_MAX_RS2 = 100; + const int MIN_RS2 = 80; + @VintfStability + interface IHalSoundDoseCallback { + oneway void onMomentaryExposureWarning(float currentDbA, in android.media.audio.common.AudioDevice audioDevice); + oneway void onNewMelValues(in android.hardware.audio.core.sounddose.ISoundDose.IHalSoundDoseCallback.MelRecord melRecord, in android.media.audio.common.AudioDevice audioDevice); + @VintfStability + parcelable MelRecord { + float[] melValues; + long timestamp; + } + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/.hash b/audio/aidl/aidl_api/android.hardware.audio.core/2/.hash new file mode 100644 index 0000000000000000000000000000000000000000..aaca981657c6161760cba9ca66c6ab993d16c614 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/.hash @@ -0,0 +1 @@ +003735b3fd3c94c53b02a6eb5e099731f7062610 diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioPatch.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioPatch.aidl new file mode 100644 index 0000000000000000000000000000000000000000..078b5ea329f377aa2e2f385e09377da0816f3d1c --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioPatch.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable AudioPatch { + int id; + int[] sourcePortConfigIds; + int[] sinkPortConfigIds; + int minimumStreamBufferSizeFrames; + int[] latenciesMs; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioRoute.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioRoute.aidl new file mode 100644 index 0000000000000000000000000000000000000000..deeef872d71aaa6bd7e24b2e66b1963add4842b8 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/AudioRoute.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable AudioRoute { + int[] sourcePortIds; + int sinkPortId; + boolean isExclusive; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetooth.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetooth.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9357a1587e63dc3b311a0bae13b94c01771ed5e9 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetooth.aidl @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IBluetooth { + android.hardware.audio.core.IBluetooth.ScoConfig setScoConfig(in android.hardware.audio.core.IBluetooth.ScoConfig config); + android.hardware.audio.core.IBluetooth.HfpConfig setHfpConfig(in android.hardware.audio.core.IBluetooth.HfpConfig config); + @JavaDerive(equals=true, toString=true) @VintfStability + parcelable ScoConfig { + @nullable android.media.audio.common.Boolean isEnabled; + @nullable android.media.audio.common.Boolean isNrecEnabled; + android.hardware.audio.core.IBluetooth.ScoConfig.Mode mode = android.hardware.audio.core.IBluetooth.ScoConfig.Mode.UNSPECIFIED; + @nullable @utf8InCpp String debugName; + @VintfStability + enum Mode { + UNSPECIFIED, + SCO, + SCO_WB, + SCO_SWB, + } + } + @JavaDerive(equals=true, toString=true) @VintfStability + parcelable HfpConfig { + @nullable android.media.audio.common.Boolean isEnabled; + @nullable android.media.audio.common.Int sampleRate; + @nullable android.media.audio.common.Float volume; + const int VOLUME_MIN = 0; + const int VOLUME_MAX = 1; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothA2dp.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothA2dp.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0f4c46d73fc70cb6886040e69d6f0ab682bbf04f --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothA2dp.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IBluetoothA2dp { + boolean isEnabled(); + void setEnabled(boolean enabled); + boolean supportsOffloadReconfiguration(); + void reconfigureOffload(in android.hardware.audio.core.VendorParameter[] parameters); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothLe.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothLe.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2068daf4316fdc585bf0fe100d22e3997910c69e --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IBluetoothLe.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IBluetoothLe { + boolean isEnabled(); + void setEnabled(boolean enabled); + boolean supportsOffloadReconfiguration(); + void reconfigureOffload(in android.hardware.audio.core.VendorParameter[] parameters); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IConfig.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9ce45bb652507431e06a6859b95f24a25398f9cd --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IConfig.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IConfig { + android.hardware.audio.core.SurroundSoundConfig getSurroundSoundConfig(); + android.media.audio.common.AudioHalEngineConfig getEngineConfig(); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IModule.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IModule.aidl new file mode 100644 index 0000000000000000000000000000000000000000..07a85f8fd8f214e6db52f8637e803ce1dca00de1 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IModule.aidl @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IModule { + void setModuleDebug(in android.hardware.audio.core.ModuleDebug debug); + @nullable android.hardware.audio.core.ITelephony getTelephony(); + @nullable android.hardware.audio.core.IBluetooth getBluetooth(); + @nullable android.hardware.audio.core.IBluetoothA2dp getBluetoothA2dp(); + @nullable android.hardware.audio.core.IBluetoothLe getBluetoothLe(); + android.media.audio.common.AudioPort connectExternalDevice(in android.media.audio.common.AudioPort templateIdAndAdditionalData); + void disconnectExternalDevice(int portId); + android.hardware.audio.core.AudioPatch[] getAudioPatches(); + android.media.audio.common.AudioPort getAudioPort(int portId); + android.media.audio.common.AudioPortConfig[] getAudioPortConfigs(); + android.media.audio.common.AudioPort[] getAudioPorts(); + android.hardware.audio.core.AudioRoute[] getAudioRoutes(); + android.hardware.audio.core.AudioRoute[] getAudioRoutesForAudioPort(int portId); + android.hardware.audio.core.IModule.OpenInputStreamReturn openInputStream(in android.hardware.audio.core.IModule.OpenInputStreamArguments args); + android.hardware.audio.core.IModule.OpenOutputStreamReturn openOutputStream(in android.hardware.audio.core.IModule.OpenOutputStreamArguments args); + android.hardware.audio.core.IModule.SupportedPlaybackRateFactors getSupportedPlaybackRateFactors(); + android.hardware.audio.core.AudioPatch setAudioPatch(in android.hardware.audio.core.AudioPatch requested); + boolean setAudioPortConfig(in android.media.audio.common.AudioPortConfig requested, out android.media.audio.common.AudioPortConfig suggested); + void resetAudioPatch(int patchId); + void resetAudioPortConfig(int portConfigId); + boolean getMasterMute(); + void setMasterMute(boolean mute); + float getMasterVolume(); + void setMasterVolume(float volume); + boolean getMicMute(); + void setMicMute(boolean mute); + android.media.audio.common.MicrophoneInfo[] getMicrophones(); + void updateAudioMode(android.media.audio.common.AudioMode mode); + void updateScreenRotation(android.hardware.audio.core.IModule.ScreenRotation rotation); + void updateScreenState(boolean isTurnedOn); + @nullable android.hardware.audio.core.sounddose.ISoundDose getSoundDose(); + int generateHwAvSyncId(); + android.hardware.audio.core.VendorParameter[] getVendorParameters(in @utf8InCpp String[] ids); + void setVendorParameters(in android.hardware.audio.core.VendorParameter[] parameters, boolean async); + void addDeviceEffect(int portConfigId, in android.hardware.audio.effect.IEffect effect); + void removeDeviceEffect(int portConfigId, in android.hardware.audio.effect.IEffect effect); + android.media.audio.common.AudioMMapPolicyInfo[] getMmapPolicyInfos(android.media.audio.common.AudioMMapPolicyType mmapPolicyType); + boolean supportsVariableLatency(); + int getAAudioMixerBurstCount(); + int getAAudioHardwareBurstMinUsec(); + void prepareToDisconnectExternalDevice(int portId); + const int DEFAULT_AAUDIO_MIXER_BURST_COUNT = 2; + const int DEFAULT_AAUDIO_HARDWARE_BURST_MIN_DURATION_US = 1000; + @VintfStability + parcelable OpenInputStreamArguments { + int portConfigId; + android.hardware.audio.common.SinkMetadata sinkMetadata; + long bufferSizeFrames; + } + @VintfStability + parcelable OpenInputStreamReturn { + android.hardware.audio.core.IStreamIn stream; + android.hardware.audio.core.StreamDescriptor desc; + } + @VintfStability + parcelable OpenOutputStreamArguments { + int portConfigId; + android.hardware.audio.common.SourceMetadata sourceMetadata; + @nullable android.media.audio.common.AudioOffloadInfo offloadInfo; + long bufferSizeFrames; + @nullable android.hardware.audio.core.IStreamCallback callback; + @nullable android.hardware.audio.core.IStreamOutEventCallback eventCallback; + } + @VintfStability + parcelable OpenOutputStreamReturn { + android.hardware.audio.core.IStreamOut stream; + android.hardware.audio.core.StreamDescriptor desc; + } + @VintfStability + parcelable SupportedPlaybackRateFactors { + float minSpeed; + float maxSpeed; + float minPitch; + float maxPitch; + } + @Backing(type="int") @VintfStability + enum ScreenRotation { + DEG_0 = 0, + DEG_90 = 1, + DEG_180 = 2, + DEG_270 = 3, + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCallback.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5a2ab78d889f7a97f932c04acd58e20585a2d4d4 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCallback.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IStreamCallback { + oneway void onTransferReady(); + oneway void onError(); + oneway void onDrainReady(); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCommon.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCommon.aidl new file mode 100644 index 0000000000000000000000000000000000000000..65a2ee4542c89ddbae8e96567f5efb9e0b4f9be7 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamCommon.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IStreamCommon { + void close(); + void prepareToClose(); + void updateHwAvSyncId(int hwAvSyncId); + android.hardware.audio.core.VendorParameter[] getVendorParameters(in @utf8InCpp String[] ids); + void setVendorParameters(in android.hardware.audio.core.VendorParameter[] parameters, boolean async); + void addEffect(in android.hardware.audio.effect.IEffect effect); + void removeEffect(in android.hardware.audio.effect.IEffect effect); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamIn.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamIn.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a01f877e860df1aca68f34596388e975dfe28c74 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamIn.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IStreamIn { + android.hardware.audio.core.IStreamCommon getStreamCommon(); + android.media.audio.common.MicrophoneDynamicInfo[] getActiveMicrophones(); + android.hardware.audio.core.IStreamIn.MicrophoneDirection getMicrophoneDirection(); + void setMicrophoneDirection(android.hardware.audio.core.IStreamIn.MicrophoneDirection direction); + float getMicrophoneFieldDimension(); + void setMicrophoneFieldDimension(float zoom); + void updateMetadata(in android.hardware.audio.common.SinkMetadata sinkMetadata); + float[] getHwGain(); + void setHwGain(in float[] channelGains); + const int MIC_FIELD_DIMENSION_WIDE_ANGLE = (-1) /* -1 */; + const int MIC_FIELD_DIMENSION_NO_ZOOM = 0; + const int MIC_FIELD_DIMENSION_MAX_ZOOM = 1; + const int HW_GAIN_MIN = 0; + const int HW_GAIN_MAX = 1; + @Backing(type="int") @VintfStability + enum MicrophoneDirection { + UNSPECIFIED = 0, + FRONT = 1, + BACK = 2, + EXTERNAL = 3, + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOut.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOut.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ec3078efd759bb6498ac108296da1a23aa8bb189 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOut.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IStreamOut { + android.hardware.audio.core.IStreamCommon getStreamCommon(); + void updateMetadata(in android.hardware.audio.common.SourceMetadata sourceMetadata); + void updateOffloadMetadata(in android.hardware.audio.common.AudioOffloadMetadata offloadMetadata); + float[] getHwVolume(); + void setHwVolume(in float[] channelVolumes); + float getAudioDescriptionMixLevel(); + void setAudioDescriptionMixLevel(float leveldB); + android.media.audio.common.AudioDualMonoMode getDualMonoMode(); + void setDualMonoMode(android.media.audio.common.AudioDualMonoMode mode); + android.media.audio.common.AudioLatencyMode[] getRecommendedLatencyModes(); + void setLatencyMode(android.media.audio.common.AudioLatencyMode mode); + android.media.audio.common.AudioPlaybackRate getPlaybackRateParameters(); + void setPlaybackRateParameters(in android.media.audio.common.AudioPlaybackRate playbackRate); + void selectPresentation(int presentationId, int programId); + const int HW_VOLUME_MIN = 0; + const int HW_VOLUME_MAX = 1; + const int AUDIO_DESCRIPTION_MIX_LEVEL_MAX = 48; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOutEventCallback.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOutEventCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..31cf0b7fc7da0dc522d1af78b9f90cd80d194785 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/IStreamOutEventCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface IStreamOutEventCallback { + oneway void onCodecFormatChanged(in byte[] audioMetadata); + oneway void onRecommendedLatencyModeChanged(in android.media.audio.common.AudioLatencyMode[] modes); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ITelephony.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ITelephony.aidl new file mode 100644 index 0000000000000000000000000000000000000000..84d7aa1aa439182d7172ed87d326a528f12e1abe --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ITelephony.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@VintfStability +interface ITelephony { + android.media.audio.common.AudioMode[] getSupportedAudioModes(); + void switchAudioMode(android.media.audio.common.AudioMode mode); + android.hardware.audio.core.ITelephony.TelecomConfig setTelecomConfig(in android.hardware.audio.core.ITelephony.TelecomConfig config); + @JavaDerive(equals=true, toString=true) @VintfStability + parcelable TelecomConfig { + @nullable android.media.audio.common.Float voiceVolume; + android.hardware.audio.core.ITelephony.TelecomConfig.TtyMode ttyMode = android.hardware.audio.core.ITelephony.TelecomConfig.TtyMode.UNSPECIFIED; + @nullable android.media.audio.common.Boolean isHacEnabled; + const int VOICE_VOLUME_MIN = 0; + const int VOICE_VOLUME_MAX = 1; + @Backing(type="int") @VintfStability + enum TtyMode { + UNSPECIFIED = (-1) /* -1 */, + OFF = 0, + FULL = 1, + HCO = 2, + VCO = 3, + } + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/MmapBufferDescriptor.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/MmapBufferDescriptor.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6ea1c69526f57d9d98f7a9e4c1c482d34bb7c0b8 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/MmapBufferDescriptor.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable MmapBufferDescriptor { + android.hardware.common.Ashmem sharedMemory; + long burstSizeFrames; + int flags; + const int FLAG_INDEX_APPLICATION_SHAREABLE = 0; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ModuleDebug.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ModuleDebug.aidl new file mode 100644 index 0000000000000000000000000000000000000000..467d37b6f7ddbc7606d73bc87ede1f7794bb2b10 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/ModuleDebug.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ModuleDebug { + boolean simulateDeviceConnections; + int streamTransientStateDelayMs; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/StreamDescriptor.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/StreamDescriptor.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3e3dc38b2af8260319bf847e6a4c078b36a86e95 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/StreamDescriptor.aidl @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable StreamDescriptor { + android.hardware.common.fmq.MQDescriptor command; + android.hardware.common.fmq.MQDescriptor reply; + int frameSizeBytes; + long bufferSizeFrames; + android.hardware.audio.core.StreamDescriptor.AudioBuffer audio; + const int LATENCY_UNKNOWN = (-1) /* -1 */; + @FixedSize @VintfStability + parcelable Position { + long frames = UNKNOWN /* -1 */; + long timeNs = UNKNOWN /* -1 */; + const long UNKNOWN = (-1) /* -1 */; + } + @Backing(type="int") @VintfStability + enum State { + STANDBY = 1, + IDLE = 2, + ACTIVE = 3, + PAUSED = 4, + DRAINING = 5, + DRAIN_PAUSED = 6, + TRANSFERRING = 7, + TRANSFER_PAUSED = 8, + ERROR = 100, + } + @Backing(type="byte") @VintfStability + enum DrainMode { + DRAIN_UNSPECIFIED = 0, + DRAIN_ALL = 1, + DRAIN_EARLY_NOTIFY = 2, + } + @FixedSize @VintfStability + union Command { + int halReservedExit; + android.media.audio.common.Void getStatus; + android.media.audio.common.Void start; + int burst; + android.hardware.audio.core.StreamDescriptor.DrainMode drain; + android.media.audio.common.Void standby; + android.media.audio.common.Void pause; + android.media.audio.common.Void flush; + } + @FixedSize @VintfStability + parcelable Reply { + int status; + int fmqByteCount; + android.hardware.audio.core.StreamDescriptor.Position observable; + android.hardware.audio.core.StreamDescriptor.Position hardware; + int latencyMs; + int xrunFrames; + android.hardware.audio.core.StreamDescriptor.State state = android.hardware.audio.core.StreamDescriptor.State.STANDBY; + } + @VintfStability + union AudioBuffer { + android.hardware.common.fmq.MQDescriptor fmq; + android.hardware.audio.core.MmapBufferDescriptor mmap; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/SurroundSoundConfig.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/SurroundSoundConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..08a153778f78ffa7ea8e9b488706291dc4a8ffee --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/SurroundSoundConfig.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SurroundSoundConfig { + android.hardware.audio.core.SurroundSoundConfig.SurroundFormatFamily[] formatFamilies; + @VintfStability + parcelable SurroundFormatFamily { + android.media.audio.common.AudioFormatDescription primaryFormat; + android.media.audio.common.AudioFormatDescription[] subFormats; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/VendorParameter.aidl b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/VendorParameter.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bfe33ee4b4df8de1a688be0464250923f8faa6cb --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.core/2/android/hardware/audio/core/VendorParameter.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.core; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VendorParameter { + @utf8InCpp String id; + ParcelableHolder ext; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/.hash b/audio/aidl/aidl_api/android.hardware.audio.effect/2/.hash new file mode 100644 index 0000000000000000000000000000000000000000..1c70e872e69fdc4702cc55ec51f2ccc99f9f1f05 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/.hash @@ -0,0 +1 @@ +54d5a2e1d59066b57e35eb7bcb5ebc72a1259c1c diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AcousticEchoCanceler.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AcousticEchoCanceler.aidl new file mode 100644 index 0000000000000000000000000000000000000000..16367c0b807bfe34a6cbbe4839638f53ed7100c9 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AcousticEchoCanceler.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union AcousticEchoCanceler { + android.hardware.audio.effect.VendorExtension vendor; + int echoDelayUs; + boolean mobileMode; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.AcousticEchoCanceler.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV1.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV1.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e69e2bd81d780ede9976b67847bb0222526847ce --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV1.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union AutomaticGainControlV1 { + android.hardware.audio.effect.VendorExtension vendor; + int targetPeakLevelDbFs; + int maxCompressionGainDb; + boolean enableLimiter; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.AutomaticGainControlV1.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV2.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV2.aidl new file mode 100644 index 0000000000000000000000000000000000000000..46ffcafb31e96800ccb032c3836782b713cf4054 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/AutomaticGainControlV2.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union AutomaticGainControlV2 { + android.hardware.audio.effect.VendorExtension vendor; + int fixedDigitalGainMb; + android.hardware.audio.effect.AutomaticGainControlV2.LevelEstimator levelEstimator; + int saturationMarginMb; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.AutomaticGainControlV2.Tag commonTag; + } + @Backing(type="int") @VintfStability + enum LevelEstimator { + RMS = 0, + PEAK = 1, + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/BassBoost.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/BassBoost.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c248ce8a8a6155e91f0880f41c3173c17f56fc39 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/BassBoost.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union BassBoost { + android.hardware.audio.effect.VendorExtension vendor; + int strengthPm; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.BassBoost.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Capability.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Capability.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c9df073489a8e2e5a4ef8792f3e808bb0ab0e88c --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Capability.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +parcelable Capability { + android.hardware.audio.effect.VendorExtension vendorExtension; + android.hardware.audio.effect.Range range; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/CommandId.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/CommandId.aidl new file mode 100644 index 0000000000000000000000000000000000000000..86b69fa2f28cdfe3109545763739f7d665494c15 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/CommandId.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@Backing(type="int") @VintfStability +enum CommandId { + START = 0, + STOP = 1, + RESET = 2, + VENDOR_COMMAND_0 = 0x100, + VENDOR_COMMAND_1, + VENDOR_COMMAND_2, + VENDOR_COMMAND_3, + VENDOR_COMMAND_4, + VENDOR_COMMAND_5, + VENDOR_COMMAND_6, + VENDOR_COMMAND_7, + VENDOR_COMMAND_8, + VENDOR_COMMAND_9, +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DefaultExtension.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DefaultExtension.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f1cf3898c52a4070f8422be2c2a25f4db1a26d56 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DefaultExtension.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +parcelable DefaultExtension { + byte[] bytes; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Descriptor.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Descriptor.aidl new file mode 100644 index 0000000000000000000000000000000000000000..115da1db5773c49075c41ec5e4fb88234b51de42 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Descriptor.aidl @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +parcelable Descriptor { + android.hardware.audio.effect.Descriptor.Common common; + android.hardware.audio.effect.Capability capability; + const String EFFECT_TYPE_UUID_AEC = "7b491460-8d4d-11e0-bd61-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_AGC1 = "0a8abfe0-654c-11e0-ba26-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_AGC2 = "ae3c653b-be18-4ab8-8938-418f0a7f06ac"; + const String EFFECT_TYPE_UUID_BASS_BOOST = "0634f220-ddd4-11db-a0fc-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_DOWNMIX = "381e49cc-a858-4aa2-87f6-e8388e7601b2"; + const String EFFECT_TYPE_UUID_DYNAMICS_PROCESSING = "7261676f-6d75-7369-6364-28e2fd3ac39e"; + const String EFFECT_TYPE_UUID_ENV_REVERB = "c2e5d5f0-94bd-4763-9cac-4e234d06839e"; + const String EFFECT_TYPE_UUID_EQUALIZER = "0bed4300-ddd6-11db-8f34-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_HAPTIC_GENERATOR = "1411e6d6-aecd-4021-a1cf-a6aceb0d71e5"; + const String EFFECT_TYPE_UUID_LOUDNESS_ENHANCER = "fe3199be-aed0-413f-87bb-11260eb63cf1"; + const String EFFECT_TYPE_UUID_NS = "58b4b260-8e06-11e0-aa8e-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_PRESET_REVERB = "47382d60-ddd8-11db-bf3a-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_SPATIALIZER = "ccd4cf09-a79d-46c2-9aae-06a1698d6c8f"; + const String EFFECT_TYPE_UUID_VIRTUALIZER = "37cc2c00-dddd-11db-8577-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_VISUALIZER = "e46b26a0-dddd-11db-8afd-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_VOLUME = "09e8ede0-ddde-11db-b4f6-0002a5d5c51b"; + @VintfStability + parcelable Identity { + android.media.audio.common.AudioUuid type; + android.media.audio.common.AudioUuid uuid; + @nullable android.media.audio.common.AudioUuid proxy; + } + @VintfStability + parcelable Common { + android.hardware.audio.effect.Descriptor.Identity id; + android.hardware.audio.effect.Flags flags; + int cpuLoad; + int memoryUsage; + @utf8InCpp String name; + @utf8InCpp String implementor; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Downmix.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Downmix.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ce0a7df1ffab7f7d8de4ef54f436760aa52099b3 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Downmix.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Downmix { + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.Downmix.Type type; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.Downmix.Tag commonTag; + } + @VintfStability + enum Type { + STRIP, + FOLD, + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DynamicsProcessing.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DynamicsProcessing.aidl new file mode 100644 index 0000000000000000000000000000000000000000..04f627d07b0c4c57cd09c047f0ffc0a2505eb6ea --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/DynamicsProcessing.aidl @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union DynamicsProcessing { + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.DynamicsProcessing.EngineArchitecture engineArchitecture; + android.hardware.audio.effect.DynamicsProcessing.ChannelConfig[] preEq; + android.hardware.audio.effect.DynamicsProcessing.ChannelConfig[] postEq; + android.hardware.audio.effect.DynamicsProcessing.EqBandConfig[] preEqBand; + android.hardware.audio.effect.DynamicsProcessing.EqBandConfig[] postEqBand; + android.hardware.audio.effect.DynamicsProcessing.ChannelConfig[] mbc; + android.hardware.audio.effect.DynamicsProcessing.MbcBandConfig[] mbcBand; + android.hardware.audio.effect.DynamicsProcessing.LimiterConfig[] limiter; + android.hardware.audio.effect.DynamicsProcessing.InputGain[] inputGain; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.DynamicsProcessing.Tag commonTag; + } + enum ResolutionPreference { + FAVOR_FREQUENCY_RESOLUTION, + FAVOR_TIME_RESOLUTION, + } + @VintfStability + parcelable StageEnablement { + boolean inUse; + int bandCount; + } + @VintfStability + parcelable EngineArchitecture { + android.hardware.audio.effect.DynamicsProcessing.ResolutionPreference resolutionPreference = android.hardware.audio.effect.DynamicsProcessing.ResolutionPreference.FAVOR_FREQUENCY_RESOLUTION; + float preferredProcessingDurationMs; + android.hardware.audio.effect.DynamicsProcessing.StageEnablement preEqStage; + android.hardware.audio.effect.DynamicsProcessing.StageEnablement postEqStage; + android.hardware.audio.effect.DynamicsProcessing.StageEnablement mbcStage; + boolean limiterInUse; + } + @VintfStability + parcelable ChannelConfig { + int channel; + boolean enable; + } + @VintfStability + parcelable EqBandConfig { + int channel; + int band; + boolean enable; + float cutoffFrequencyHz; + float gainDb; + } + @VintfStability + parcelable MbcBandConfig { + int channel; + int band; + boolean enable; + float cutoffFrequencyHz; + float attackTimeMs; + float releaseTimeMs; + float ratio; + float thresholdDb; + float kneeWidthDb; + float noiseGateThresholdDb; + float expanderRatio; + float preGainDb; + float postGainDb; + } + @VintfStability + parcelable LimiterConfig { + int channel; + boolean enable; + int linkGroup; + float attackTimeMs; + float releaseTimeMs; + float ratio; + float thresholdDb; + float postGainDb; + } + @VintfStability + parcelable InputGain { + int channel; + float gainDb; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/EnvironmentalReverb.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/EnvironmentalReverb.aidl new file mode 100644 index 0000000000000000000000000000000000000000..00b7d1acfb916ea3a4ebf25134c4e4ba0d31a31a --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/EnvironmentalReverb.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union EnvironmentalReverb { + android.hardware.audio.effect.VendorExtension vendor; + int roomLevelMb; + int roomHfLevelMb; + int decayTimeMs; + int decayHfRatioPm; + int reflectionsLevelMb; + int reflectionsDelayMs; + int levelMb; + int delayMs; + int diffusionPm; + int densityPm; + boolean bypass; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.EnvironmentalReverb.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Equalizer.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Equalizer.aidl new file mode 100644 index 0000000000000000000000000000000000000000..80f7c7e95257d74fad28432451a521c069d4f001 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Equalizer.aidl @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Equalizer { + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.Equalizer.BandLevel[] bandLevels; + int preset; + int[] centerFreqMh; + android.hardware.audio.effect.Equalizer.BandFrequency[] bandFrequencies; + android.hardware.audio.effect.Equalizer.Preset[] presets; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.Equalizer.Tag commonTag; + } + @VintfStability + parcelable BandLevel { + int index; + int levelMb; + } + @VintfStability + parcelable BandFrequency { + int index; + int minMh; + int maxMh; + } + @VintfStability + parcelable Preset { + int index; + @utf8InCpp String name; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Flags.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Flags.aidl new file mode 100644 index 0000000000000000000000000000000000000000..046c220ea072986d6df5ac0a5235b9fe4bc61c53 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Flags.aidl @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +parcelable Flags { + android.hardware.audio.effect.Flags.Type type = android.hardware.audio.effect.Flags.Type.INSERT; + android.hardware.audio.effect.Flags.Insert insert = android.hardware.audio.effect.Flags.Insert.ANY; + android.hardware.audio.effect.Flags.Volume volume = android.hardware.audio.effect.Flags.Volume.NONE; + android.hardware.audio.effect.Flags.HardwareAccelerator hwAcceleratorMode = android.hardware.audio.effect.Flags.HardwareAccelerator.NONE; + boolean offloadIndication; + boolean deviceIndication; + boolean audioModeIndication; + boolean audioSourceIndication; + boolean bypass; + boolean sinkMetadataIndication; + boolean sourceMetadataIndication; + @Backing(type="byte") @VintfStability + enum Type { + INSERT = 0, + AUXILIARY = 1, + REPLACE = 2, + PRE_PROC = 3, + POST_PROC = 4, + } + @Backing(type="byte") @VintfStability + enum Insert { + ANY = 0, + FIRST = 1, + LAST = 2, + EXCLUSIVE = 3, + } + @Backing(type="byte") @VintfStability + enum Volume { + NONE = 0, + CTRL = 1, + IND = 2, + MONITOR = 3, + } + @Backing(type="byte") @VintfStability + enum HardwareAccelerator { + NONE = 0, + SIMPLE = 1, + TUNNEL = 2, + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/HapticGenerator.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/HapticGenerator.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8addab7b5f862c00b1d500fef14c0f0412eef0e4 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/HapticGenerator.aidl @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union HapticGenerator { + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.HapticGenerator.HapticScale[] hapticScales; + android.hardware.audio.effect.HapticGenerator.VibratorInformation vibratorInfo; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.HapticGenerator.Tag commonTag; + } + @Backing(type="int") @VintfStability + enum VibratorScale { + MUTE = (-100) /* -100 */, + VERY_LOW = (-2) /* -2 */, + LOW = (-1) /* -1 */, + NONE = 0, + HIGH = 1, + VERY_HIGH = 2, + } + @VintfStability + parcelable HapticScale { + int id; + android.hardware.audio.effect.HapticGenerator.VibratorScale scale = android.hardware.audio.effect.HapticGenerator.VibratorScale.MUTE; + } + @VintfStability + parcelable VibratorInformation { + float resonantFrequencyHz; + float qFactor; + float maxAmplitude; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IEffect.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IEffect.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a1b00be41f7424850b87cd8fad5f40e9d5ec5676 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IEffect.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +interface IEffect { + android.hardware.audio.effect.IEffect.OpenEffectReturn open(in android.hardware.audio.effect.Parameter.Common common, in @nullable android.hardware.audio.effect.Parameter.Specific specific); + void close(); + android.hardware.audio.effect.Descriptor getDescriptor(); + void command(in android.hardware.audio.effect.CommandId commandId); + android.hardware.audio.effect.State getState(); + void setParameter(in android.hardware.audio.effect.Parameter param); + android.hardware.audio.effect.Parameter getParameter(in android.hardware.audio.effect.Parameter.Id paramId); + android.hardware.audio.effect.IEffect.OpenEffectReturn reopen(); + @FixedSize @VintfStability + parcelable Status { + int status; + int fmqConsumed; + int fmqProduced; + } + @VintfStability + parcelable OpenEffectReturn { + android.hardware.common.fmq.MQDescriptor statusMQ; + android.hardware.common.fmq.MQDescriptor inputDataMQ; + android.hardware.common.fmq.MQDescriptor outputDataMQ; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IFactory.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IFactory.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a6c138c0ef936daffd5236d159cd7260597a1d00 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/IFactory.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +interface IFactory { + android.hardware.audio.effect.Descriptor[] queryEffects(in @nullable android.media.audio.common.AudioUuid type, in @nullable android.media.audio.common.AudioUuid implementation, in @nullable android.media.audio.common.AudioUuid proxy); + android.hardware.audio.effect.Processing[] queryProcessing(in @nullable android.hardware.audio.effect.Processing.Type type); + android.hardware.audio.effect.IEffect createEffect(in android.media.audio.common.AudioUuid implUuid); + void destroyEffect(in android.hardware.audio.effect.IEffect handle); +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/LoudnessEnhancer.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/LoudnessEnhancer.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fc276d67bca96481ee09b40b3c8b69e0ea805334 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/LoudnessEnhancer.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union LoudnessEnhancer { + android.hardware.audio.effect.VendorExtension vendor; + int gainMb; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.LoudnessEnhancer.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/NoiseSuppression.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/NoiseSuppression.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7f30fe2ab7149f3801eb991c6831d06aafe82b73 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/NoiseSuppression.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union NoiseSuppression { + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.NoiseSuppression.Level level; + android.hardware.audio.effect.NoiseSuppression.Type type; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.NoiseSuppression.Tag commonTag; + } + @Backing(type="int") @VintfStability + enum Level { + LOW, + MEDIUM, + HIGH, + VERY_HIGH, + } + @Backing(type="int") @VintfStability + enum Type { + SINGLE_CHANNEL, + MULTI_CHANNEL, + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Parameter.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Parameter.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ff33c42047bad8e5298344339b5ba14490f480f3 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Parameter.aidl @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Parameter { + android.hardware.audio.effect.Parameter.Common common; + android.media.audio.common.AudioDeviceDescription[] deviceDescription; + android.media.audio.common.AudioMode mode; + android.media.audio.common.AudioSource source; + boolean offload; + android.hardware.audio.effect.Parameter.VolumeStereo volumeStereo; + android.hardware.audio.effect.Parameter.Specific specific; + android.hardware.audio.common.SinkMetadata sinkMetadata; + android.hardware.audio.common.SourceMetadata sourceMetadata; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorEffectTag; + android.hardware.audio.effect.AcousticEchoCanceler.Id acousticEchoCancelerTag; + android.hardware.audio.effect.AutomaticGainControlV1.Id automaticGainControlV1Tag; + android.hardware.audio.effect.AutomaticGainControlV2.Id automaticGainControlV2Tag; + android.hardware.audio.effect.BassBoost.Id bassBoostTag; + android.hardware.audio.effect.Downmix.Id downmixTag; + android.hardware.audio.effect.DynamicsProcessing.Id dynamicsProcessingTag; + android.hardware.audio.effect.EnvironmentalReverb.Id environmentalReverbTag; + android.hardware.audio.effect.Equalizer.Id equalizerTag; + android.hardware.audio.effect.HapticGenerator.Id hapticGeneratorTag; + android.hardware.audio.effect.LoudnessEnhancer.Id loudnessEnhancerTag; + android.hardware.audio.effect.NoiseSuppression.Id noiseSuppressionTag; + android.hardware.audio.effect.PresetReverb.Id presetReverbTag; + android.hardware.audio.effect.Virtualizer.Id virtualizerTag; + android.hardware.audio.effect.Visualizer.Id visualizerTag; + android.hardware.audio.effect.Volume.Id volumeTag; + android.hardware.audio.effect.Parameter.Tag commonTag; + android.hardware.audio.effect.Spatializer.Id spatializerTag; + } + @VintfStability + parcelable Common { + int session; + int ioHandle; + android.media.audio.common.AudioConfig input; + android.media.audio.common.AudioConfig output; + } + @VintfStability + parcelable VolumeStereo { + float left; + float right; + } + @VintfStability + union Specific { + android.hardware.audio.effect.VendorExtension vendorEffect; + android.hardware.audio.effect.AcousticEchoCanceler acousticEchoCanceler; + android.hardware.audio.effect.AutomaticGainControlV1 automaticGainControlV1; + android.hardware.audio.effect.AutomaticGainControlV2 automaticGainControlV2; + android.hardware.audio.effect.BassBoost bassBoost; + android.hardware.audio.effect.Downmix downmix; + android.hardware.audio.effect.DynamicsProcessing dynamicsProcessing; + android.hardware.audio.effect.EnvironmentalReverb environmentalReverb; + android.hardware.audio.effect.Equalizer equalizer; + android.hardware.audio.effect.HapticGenerator hapticGenerator; + android.hardware.audio.effect.LoudnessEnhancer loudnessEnhancer; + android.hardware.audio.effect.NoiseSuppression noiseSuppression; + android.hardware.audio.effect.PresetReverb presetReverb; + android.hardware.audio.effect.Virtualizer virtualizer; + android.hardware.audio.effect.Visualizer visualizer; + android.hardware.audio.effect.Volume volume; + android.hardware.audio.effect.Spatializer spatializer; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/PresetReverb.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/PresetReverb.aidl new file mode 100644 index 0000000000000000000000000000000000000000..26d96b54f388fa80274fed143d370d5e146ced55 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/PresetReverb.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union PresetReverb { + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.PresetReverb.Presets[] supportedPresets; + android.hardware.audio.effect.PresetReverb.Presets preset; + @Backing(type="int") @VintfStability + enum Presets { + NONE, + SMALLROOM, + MEDIUMROOM, + LARGEROOM, + MEDIUMHALL, + LARGEHALL, + PLATE, + } + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.PresetReverb.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Processing.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Processing.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f6d6ee25bf8bd016d9b3aa7f19b4102cab09426e --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Processing.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +parcelable Processing { + android.hardware.audio.effect.Processing.Type type; + android.hardware.audio.effect.Descriptor[] ids; + @VintfStability + union Type { + android.media.audio.common.AudioStreamType streamType = android.media.audio.common.AudioStreamType.INVALID; + android.media.audio.common.AudioSource source; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Range.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Range.aidl new file mode 100644 index 0000000000000000000000000000000000000000..40ee6b54888ecfd665a878e527c8899887edc2c5 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Range.aidl @@ -0,0 +1,139 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Range { + android.hardware.audio.effect.Range.VendorExtensionRange[] vendorExtension = {}; + android.hardware.audio.effect.Range.AcousticEchoCancelerRange[] acousticEchoCanceler; + android.hardware.audio.effect.Range.AutomaticGainControlV1Range[] automaticGainControlV1; + android.hardware.audio.effect.Range.AutomaticGainControlV2Range[] automaticGainControlV2; + android.hardware.audio.effect.Range.BassBoostRange[] bassBoost; + android.hardware.audio.effect.Range.DownmixRange[] downmix; + android.hardware.audio.effect.Range.DynamicsProcessingRange[] dynamicsProcessing; + android.hardware.audio.effect.Range.EnvironmentalReverbRange[] environmentalReverb; + android.hardware.audio.effect.Range.EqualizerRange[] equalizer; + android.hardware.audio.effect.Range.HapticGeneratorRange[] hapticGenerator; + android.hardware.audio.effect.Range.LoudnessEnhancerRange[] loudnessEnhancer; + android.hardware.audio.effect.Range.NoiseSuppressionRange[] noiseSuppression; + android.hardware.audio.effect.Range.PresetReverbRange[] presetReverb; + android.hardware.audio.effect.Range.VirtualizerRange[] virtualizer; + android.hardware.audio.effect.Range.VisualizerRange[] visualizer; + android.hardware.audio.effect.Range.VolumeRange[] volume; + android.hardware.audio.effect.Range.SpatializerRange[] spatializer; + @VintfStability + parcelable AcousticEchoCancelerRange { + android.hardware.audio.effect.AcousticEchoCanceler min; + android.hardware.audio.effect.AcousticEchoCanceler max; + } + @VintfStability + parcelable AutomaticGainControlV1Range { + android.hardware.audio.effect.AutomaticGainControlV1 min; + android.hardware.audio.effect.AutomaticGainControlV1 max; + } + @VintfStability + parcelable AutomaticGainControlV2Range { + android.hardware.audio.effect.AutomaticGainControlV2 min; + android.hardware.audio.effect.AutomaticGainControlV2 max; + } + @VintfStability + parcelable BassBoostRange { + android.hardware.audio.effect.BassBoost min; + android.hardware.audio.effect.BassBoost max; + } + @VintfStability + parcelable DownmixRange { + android.hardware.audio.effect.Downmix min; + android.hardware.audio.effect.Downmix max; + } + @VintfStability + parcelable DynamicsProcessingRange { + android.hardware.audio.effect.DynamicsProcessing min; + android.hardware.audio.effect.DynamicsProcessing max; + } + @VintfStability + parcelable EnvironmentalReverbRange { + android.hardware.audio.effect.EnvironmentalReverb min; + android.hardware.audio.effect.EnvironmentalReverb max; + } + @VintfStability + parcelable EqualizerRange { + android.hardware.audio.effect.Equalizer min; + android.hardware.audio.effect.Equalizer max; + } + @VintfStability + parcelable HapticGeneratorRange { + android.hardware.audio.effect.HapticGenerator min; + android.hardware.audio.effect.HapticGenerator max; + } + @VintfStability + parcelable LoudnessEnhancerRange { + android.hardware.audio.effect.LoudnessEnhancer min; + android.hardware.audio.effect.LoudnessEnhancer max; + } + @VintfStability + parcelable NoiseSuppressionRange { + android.hardware.audio.effect.NoiseSuppression min; + android.hardware.audio.effect.NoiseSuppression max; + } + @VintfStability + parcelable PresetReverbRange { + android.hardware.audio.effect.PresetReverb min; + android.hardware.audio.effect.PresetReverb max; + } + @VintfStability + parcelable SpatializerRange { + android.hardware.audio.effect.Spatializer min; + android.hardware.audio.effect.Spatializer max; + } + @VintfStability + parcelable VendorExtensionRange { + android.hardware.audio.effect.VendorExtension min; + android.hardware.audio.effect.VendorExtension max; + } + @VintfStability + parcelable VirtualizerRange { + android.hardware.audio.effect.Virtualizer min; + android.hardware.audio.effect.Virtualizer max; + } + @VintfStability + parcelable VisualizerRange { + android.hardware.audio.effect.Visualizer min; + android.hardware.audio.effect.Visualizer max; + } + @VintfStability + parcelable VolumeRange { + android.hardware.audio.effect.Volume min; + android.hardware.audio.effect.Volume max; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Spatializer.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Spatializer.aidl new file mode 100644 index 0000000000000000000000000000000000000000..98ecee061abe49d523cb05f84e11bdbf0a48bcd9 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Spatializer.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Spatializer { + android.hardware.audio.effect.VendorExtension vendor; + android.media.audio.common.AudioChannelLayout[] supportedChannelLayout; + android.media.audio.common.Spatialization.Level spatializationLevel; + android.media.audio.common.Spatialization.Mode spatializationMode; + int headTrackingSensorId; + android.media.audio.common.HeadTracking.Mode headTrackingMode; + android.media.audio.common.HeadTracking.ConnectionMode headTrackingConnectionMode; + android.media.audio.common.HeadTracking.SensorData headTrackingSensorData; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.Spatializer.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/State.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/State.aidl new file mode 100644 index 0000000000000000000000000000000000000000..17f98142f8a7265d13b05e5df6310f4b728ef086 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/State.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@Backing(type="byte") @VintfStability +enum State { + INIT, + IDLE, + PROCESSING, +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/VendorExtension.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/VendorExtension.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b806334a90f2f7ecdf3cc5d25908fceab1838479 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/VendorExtension.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +parcelable VendorExtension { + ParcelableHolder extension; +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Virtualizer.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Virtualizer.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6092b140c26601d617e8a946cbfb0e60d4727ff2 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Virtualizer.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Virtualizer { + android.hardware.audio.effect.VendorExtension vendor; + int strengthPm; + android.hardware.audio.effect.Virtualizer.ChannelAngle[] speakerAngles; + android.media.audio.common.AudioDeviceDescription device; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.Virtualizer.Tag commonTag; + android.hardware.audio.effect.Virtualizer.SpeakerAnglesPayload speakerAnglesPayload; + } + @VintfStability + parcelable SpeakerAnglesPayload { + android.media.audio.common.AudioChannelLayout layout; + android.media.audio.common.AudioDeviceDescription device; + } + @VintfStability + parcelable ChannelAngle { + int channel; + int azimuthDegree; + int elevationDegree; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Visualizer.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Visualizer.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7d319da7518c54069545ebb621ac13dfacd7b710 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Visualizer.aidl @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Visualizer { + android.hardware.audio.effect.Visualizer.Id id; + android.hardware.audio.effect.VendorExtension vendor; + android.hardware.audio.effect.Visualizer.Measurement measurement; + byte[] captureSampleBuffer; + int latencyMs; + int captureSamples; + android.hardware.audio.effect.Visualizer.ScalingMode scalingMode; + android.hardware.audio.effect.Visualizer.MeasurementMode measurementMode; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.Visualizer.Tag commonTag; + } + @VintfStability + enum ScalingMode { + NORMALIZED = 0, + AS_PLAYED, + } + @VintfStability + enum MeasurementMode { + NONE = 0, + PEAK_RMS, + } + @VintfStability + parcelable Measurement { + int rms; + int peak; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Volume.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Volume.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8227118d72e1f158a896dba94d74b6412e0eb521 --- /dev/null +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/2/android/hardware/audio/effect/Volume.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.audio.effect; +@VintfStability +union Volume { + android.hardware.audio.effect.VendorExtension vendor; + int levelDb; + boolean mute; + @VintfStability + union Id { + android.hardware.audio.effect.VendorExtension vendorExtensionTag; + android.hardware.audio.effect.Volume.Tag commonTag; + } +} diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/IEffect.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/IEffect.aidl index 8c196e7abf5c22297066ab46b8a18d025954dbf4..a1b00be41f7424850b87cd8fad5f40e9d5ec5676 100644 --- a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/IEffect.aidl +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/IEffect.aidl @@ -41,6 +41,7 @@ interface IEffect { android.hardware.audio.effect.State getState(); void setParameter(in android.hardware.audio.effect.Parameter param); android.hardware.audio.effect.Parameter getParameter(in android.hardware.audio.effect.Parameter.Id paramId); + android.hardware.audio.effect.IEffect.OpenEffectReturn reopen(); @FixedSize @VintfStability parcelable Status { int status; diff --git a/audio/aidl/android/hardware/audio/core/IModule.aidl b/audio/aidl/android/hardware/audio/core/IModule.aidl index 2d4d283be2eec4712249ea22ec158d109f09512f..3c5f7f69a99237851e3494085da1837c32641e15 100644 --- a/audio/aidl/android/hardware/audio/core/IModule.aidl +++ b/audio/aidl/android/hardware/audio/core/IModule.aidl @@ -928,7 +928,10 @@ interface IModule { * using 'connectExternalDevice' method. 'disconnectExternalDevice' method will be called * soon after this method with the same 'portId'. * - * @param portId The ID of the audio port that is about to disconnect + * Note: This method is called after the external device is disconnected. The system does + * not try to predict the disconnection event. + * + * @param portId The ID of the audio port corresponding to the disconnected device * @throws EX_ILLEGAL_ARGUMENT In the following cases: * - If the port can not be found by the ID. * - If this is not a connected device port. diff --git a/audio/aidl/android/hardware/audio/effect/IEffect.aidl b/audio/aidl/android/hardware/audio/effect/IEffect.aidl index 6097f34ead77d587eba63a04515c0adcc4885e0a..266adecc5dbf37d257650e0abeb008246591a7f4 100644 --- a/audio/aidl/android/hardware/audio/effect/IEffect.aidl +++ b/audio/aidl/android/hardware/audio/effect/IEffect.aidl @@ -54,7 +54,16 @@ interface IEffect { } /** - * Return data structure of IEffect.open() interface. + * Return data structure of the IEffect.open() and IEffect.reopen() method. + * + * Contains Fast Message Queues (FMQs) for effect processing status and input/output data. + * The status FMQ remains valid and unchanged after opening, while input/output data FMQs can be + * modified with changes in input/output AudioConfig. If reallocation of data FMQ is necessary, + * the effect instance must release the existing data FMQs to signal the need to the audio + * framework. + * When the audio framework encounters a valid status FMQ and invalid input/output data FMQs, + * it must invoke the IEffect.reopen() method to request the effect instance to reallocate + * the FMQ and return to the audio framework. */ @VintfStability parcelable OpenEffectReturn { @@ -97,7 +106,7 @@ interface IEffect { * client responsibility to make sure all parameter/buffer is correct if client wants to reopen * a closed instance. * - * Effect instance close interface should always succeed unless: + * Effect instance close method should always succeed unless: * 1. The effect instance is not in a proper state to be closed, for example it's still in * State::PROCESSING state. * 2. There is system/hardware related failure when close. @@ -154,8 +163,8 @@ interface IEffect { /** * Get a parameter from the effect instance with parameter ID. * - * This interface must return the current parameter of the effect instance, if no parameter - * has been set by client yet, the default value must be returned. + * This method must return the current parameter of the effect instance, if no parameter has + * been set by client yet, the default value must be returned. * * Must be available for the effect instance after open(). * @@ -165,4 +174,24 @@ interface IEffect { * @throws EX_ILLEGAL_ARGUMENT if the effect instance receive unsupported parameter tag. */ Parameter getParameter(in Parameter.Id paramId); + + /** + * Reopen the effect instance, keeping all previous parameters unchanged, and reallocate only + * the Fast Message Queues (FMQs) allocated during the open time as needed. + * + * When the audio framework encounters a valid status FMQ and invalid data FMQ(s), it calls + * this method to reopen the effect and request the latest data FMQ. + * Upon receiving this call, if the effect instance's data FMQ(s) is invalid, it must reallocate + * the necessary data FMQ(s) and return them to the audio framework. All previous parameters and + * states keep unchanged. + * Once the audio framework successfully completes the call, it must validate the returned FMQs, + * deprecate all old FMQs, and exclusively use the FMQs returned from this method. + * + * @return The reallocated data FMQ and the original status FMQ. + * + * @throws EX_ILLEGAL_STATE if the effect instance is not in a proper state to reallocate FMQ. + * This may occur if the effect instance has already been closed or if there is no need to + * update any data FMQ. + */ + OpenEffectReturn reopen(); } diff --git a/audio/aidl/android/hardware/audio/effect/Spatializer.aidl b/audio/aidl/android/hardware/audio/effect/Spatializer.aidl index 6ebe0d58c06b598fc771142df2a3dbcf07d0436d..71e3ffefe61ed85d3ae36bc3baecc83e524f98ec 100644 --- a/audio/aidl/android/hardware/audio/effect/Spatializer.aidl +++ b/audio/aidl/android/hardware/audio/effect/Spatializer.aidl @@ -67,7 +67,8 @@ union Spatializer { Spatialization.Mode spatializationMode; /** - * Head tracking sensor ID. + * Identifies the head tracking sensor using its unique sensor ID. + * The value corresponds to android.hardware.sensors.SensorInfo.sensorHandle. */ int headTrackingSensorId; diff --git a/audio/aidl/android/hardware/audio/effect/state.gv b/audio/aidl/android/hardware/audio/effect/state.gv index ce369ba5c819814cdda36c4baca3de0ed773f630..22c70c8d8f1b03578fc75befeccf30b943c9b422 100644 --- a/audio/aidl/android/hardware/audio/effect/state.gv +++ b/audio/aidl/android/hardware/audio/effect/state.gv @@ -31,6 +31,8 @@ digraph effect_state_machine { IDLE -> INIT[label = "IEffect.close()"]; INIT -> INIT[label = "IEffect.getState\nIEffect.getDescriptor"]; - IDLE -> IDLE[label = "IEffect.getParameter\nIEffect.setParameter\nIEffect.getDescriptor\nIEffect.command(RESET)"]; - PROCESSING -> PROCESSING[label = "IEffect.getParameter\nIEffect.setParameter\nIEffect.getDescriptor"]; + IDLE -> IDLE[label = "IEffect.getParameter\nIEffect.setParameter\nIEffect.getDescriptor\nIEffect.command(RESET)\nIEffect.reopen"]; + PROCESSING + -> PROCESSING + [label = "IEffect.getParameter\nIEffect.setParameter\nIEffect.getDescriptor\nIEffect.reopen"]; } diff --git a/audio/aidl/common/Android.bp b/audio/aidl/common/Android.bp index 85ece3b026aa87b0a98bd4139adcf8eb91d63720..5c0c685bdfb4ed9cbc8fd4195e16880e1ebae597 100644 --- a/audio/aidl/common/Android.bp +++ b/audio/aidl/common/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/aidl/common/include/Utils.h b/audio/aidl/common/include/Utils.h index ef312d501c27b036dc0a6e47c12da4cb1ec92f7e..a1008a4d89860c5fdd06c50e2cdeb45b3e983ded 100644 --- a/audio/aidl/common/include/Utils.h +++ b/audio/aidl/common/include/Utils.h @@ -174,6 +174,12 @@ constexpr U makeBitPositionFlagMask(std::initializer_list flags) { return result; } +template , + typename = std::enable_if_t::value>> +constexpr bool isAnyBitPositionFlagSet(U mask, std::initializer_list flags) { + return (mask & makeBitPositionFlagMask(flags)) != 0; +} + constexpr int32_t frameCountFromDurationUs(long durationUs, int32_t sampleRateHz) { return (static_cast(durationUs) * sampleRateHz) / 1000000LL; } diff --git a/audio/aidl/default/Android.bp b/audio/aidl/default/Android.bp index 7cd054535c31d9852174fcfb74fc15898744ed57..844f1e9c0941d7eac403a6a9c9abb51209b3e91f 100644 --- a/audio/aidl/default/Android.bp +++ b/audio/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -118,8 +119,6 @@ cc_library { cc_binary { name: "android.hardware.audio.service-aidl.example", relative_install_path: "hw", - init_rc: ["android.hardware.audio.service-aidl.example.rc"], - vintf_fragments: ["android.hardware.audio.service-aidl.xml"], defaults: [ "aidlaudioservice_defaults", "latest_android_hardware_audio_core_sounddose_ndk_shared", @@ -146,6 +145,7 @@ cc_binary { "-Wthread-safety", "-DBACKEND_NDK", ], + installable: false, //installed in apex com.android.hardware.audio } cc_test { @@ -204,6 +204,7 @@ cc_defaults { vendor: true, shared_libs: [ "libaudioaidlcommon", + "libaudioutils", "libbase", "libbinder_ndk", "libcutils", @@ -229,6 +230,7 @@ cc_defaults { filegroup { name: "effectCommonFile", srcs: [ + "EffectContext.cpp", "EffectThread.cpp", "EffectImpl.cpp", ], @@ -237,10 +239,9 @@ filegroup { cc_binary { name: "android.hardware.audio.effect.service-aidl.example", relative_install_path: "hw", - init_rc: ["android.hardware.audio.effect.service-aidl.example.rc"], - vintf_fragments: ["android.hardware.audio.effect.service-aidl.xml"], defaults: ["aidlaudioeffectservice_defaults"], shared_libs: [ + "libapexsupport", "libtinyxml2", ], srcs: [ @@ -248,6 +249,7 @@ cc_binary { "EffectFactory.cpp", "EffectMain.cpp", ], + installable: false, //installed in apex com.android.hardware.audio } cc_library_headers { @@ -256,3 +258,16 @@ cc_library_headers { vendor_available: true, host_supported: true, } + +prebuilt_etc { + name: "android.hardware.audio.service-aidl.example.rc", + src: "android.hardware.audio.service-aidl.example.rc", + installable: false, +} + +prebuilt_etc { + name: "android.hardware.audio.service-aidl.xml", + src: "android.hardware.audio.service-aidl.xml", + sub_dir: "vintf", + installable: false, +} diff --git a/audio/aidl/default/Configuration.cpp b/audio/aidl/default/Configuration.cpp index 2a8e58f84341a62f7660e48929dbc27e8005f07e..54e2d18122ef6bbf052d9cbba490ec1eb2b198e0 100644 --- a/audio/aidl/default/Configuration.cpp +++ b/audio/aidl/default/Configuration.cpp @@ -110,6 +110,9 @@ static AudioPortConfig createDynamicPortConfig(int32_t id, int32_t portId, int32 AudioPortConfig config; config.id = id; config.portId = portId; + config.format = AudioFormatDescription{}; + config.channelMask = AudioChannelLayout{}; + config.sampleRate = Int{.value = 0}; config.gain = AudioGainConfig(); config.flags = isInput ? AudioIoFlags::make(flags) : AudioIoFlags::make(flags); diff --git a/audio/aidl/default/EffectConfig.cpp b/audio/aidl/default/EffectConfig.cpp index 4a12f8a7dfa091bc7ad7ee087287a227bd2117cd..a1fbefa8b9e61832a51f5c45b198b608ecb04931 100644 --- a/audio/aidl/default/EffectConfig.cpp +++ b/audio/aidl/default/EffectConfig.cpp @@ -24,6 +24,10 @@ #include "effectFactory-impl/EffectConfig.h" +#ifdef __ANDROID_APEX__ +#include +#endif + using aidl::android::media::audio::common::AudioSource; using aidl::android::media::audio::common::AudioStreamType; using aidl::android::media::audio::common::AudioUuid; @@ -89,6 +93,24 @@ std::vector> EffectConfig::ge } bool EffectConfig::resolveLibrary(const std::string& path, std::string* resolvedPath) { + if constexpr (__ANDROID_VENDOR_API__ >= 202404) { + AApexInfo *apexInfo; + if (AApexInfo_create(&apexInfo) == AAPEXINFO_OK) { + std::string apexName(AApexInfo_getName(apexInfo)); + AApexInfo_destroy(apexInfo); + std::string candidatePath("/apex/"); + candidatePath.append(apexName).append(kEffectLibApexPath).append(path); + LOG(DEBUG) << __func__ << " effect lib path " << candidatePath; + if (access(candidatePath.c_str(), R_OK) == 0) { + *resolvedPath = std::move(candidatePath); + return true; + } + } + } else { + LOG(DEBUG) << __func__ << " libapexsupport is not supported"; + } + + // If audio effects libs are not in vendor apex, locate them in kEffectLibPath for (auto* libraryDirectory : kEffectLibPath) { std::string candidatePath = std::string(libraryDirectory) + '/' + path; if (access(candidatePath.c_str(), R_OK) == 0) { diff --git a/audio/aidl/default/EffectContext.cpp b/audio/aidl/default/EffectContext.cpp new file mode 100644 index 0000000000000000000000000000000000000000..957579064413658feebe2bc81768bf1766fec414 --- /dev/null +++ b/audio/aidl/default/EffectContext.cpp @@ -0,0 +1,247 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#define LOG_TAG "AHAL_EffectContext" +#include "effect-impl/EffectContext.h" +#include "include/effect-impl/EffectTypes.h" + +using aidl::android::hardware::audio::common::getChannelCount; +using aidl::android::hardware::audio::common::getFrameSizeInBytes; +using aidl::android::hardware::audio::effect::IEffect; +using aidl::android::hardware::audio::effect::kReopenSupportedVersion; +using aidl::android::media::audio::common::PcmType; +using ::android::hardware::EventFlag; + +namespace aidl::android::hardware::audio::effect { + +EffectContext::EffectContext(size_t statusDepth, const Parameter::Common& common) { + LOG_ALWAYS_FATAL_IF(RetCode::SUCCESS != setCommon(common), "illegalCommonParameter"); + + // in/outBuffer size in float (FMQ data format defined for DataMQ) + size_t inBufferSizeInFloat = common.input.frameCount * mInputFrameSize / sizeof(float); + size_t outBufferSizeInFloat = common.output.frameCount * mOutputFrameSize / sizeof(float); + + // only status FMQ use the EventFlag + mStatusMQ = std::make_shared(statusDepth, true /*configureEventFlagWord*/); + mInputMQ = std::make_shared(inBufferSizeInFloat); + mOutputMQ = std::make_shared(outBufferSizeInFloat); + + if (!mStatusMQ->isValid() || !mInputMQ->isValid() || !mOutputMQ->isValid()) { + LOG(ERROR) << __func__ << " created invalid FMQ, statusMQ: " << mStatusMQ->isValid() + << " inputMQ: " << mInputMQ->isValid() << " outputMQ: " << mOutputMQ->isValid(); + } + + ::android::status_t status = + EventFlag::createEventFlag(mStatusMQ->getEventFlagWord(), &mEfGroup); + LOG_ALWAYS_FATAL_IF(status != ::android::OK || !mEfGroup, " create EventFlagGroup failed "); + mWorkBuffer.resize(std::max(inBufferSizeInFloat, outBufferSizeInFloat)); +} + +// reset buffer status by abandon input data in FMQ +void EffectContext::resetBuffer() { + auto buffer = static_cast(mWorkBuffer.data()); + if (mStatusMQ) { + std::vector status(mStatusMQ->availableToRead()); + } + if (mInputMQ) { + mInputMQ->read(buffer, mInputMQ->availableToRead()); + } +} + +void EffectContext::dupeFmqWithReopen(IEffect::OpenEffectReturn* effectRet) { + if (!mInputMQ) { + mInputMQ = std::make_shared(mCommon.input.frameCount * mInputFrameSize / + sizeof(float)); + } + if (!mOutputMQ) { + mOutputMQ = std::make_shared(mCommon.output.frameCount * mOutputFrameSize / + sizeof(float)); + } + dupeFmq(effectRet); +} + +void EffectContext::dupeFmq(IEffect::OpenEffectReturn* effectRet) { + if (effectRet && mStatusMQ && mInputMQ && mOutputMQ) { + effectRet->statusMQ = mStatusMQ->dupeDesc(); + effectRet->inputDataMQ = mInputMQ->dupeDesc(); + effectRet->outputDataMQ = mOutputMQ->dupeDesc(); + } +} + +float* EffectContext::getWorkBuffer() { + return static_cast(mWorkBuffer.data()); +} + +size_t EffectContext::getWorkBufferSize() const { + return mWorkBuffer.size(); +} + +std::shared_ptr EffectContext::getStatusFmq() const { + return mStatusMQ; +} + +std::shared_ptr EffectContext::getInputDataFmq() const { + return mInputMQ; +} + +std::shared_ptr EffectContext::getOutputDataFmq() const { + return mOutputMQ; +} + +size_t EffectContext::getInputFrameSize() const { + return mInputFrameSize; +} + +size_t EffectContext::getOutputFrameSize() const { + return mOutputFrameSize; +} + +int EffectContext::getSessionId() const { + return mCommon.session; +} + +int EffectContext::getIoHandle() const { + return mCommon.ioHandle; +} + +RetCode EffectContext::setOutputDevice( + const std::vector& device) { + mOutputDevice = device; + return RetCode::SUCCESS; +} + +std::vector +EffectContext::getOutputDevice() { + return mOutputDevice; +} + +RetCode EffectContext::setAudioMode(const aidl::android::media::audio::common::AudioMode& mode) { + mMode = mode; + return RetCode::SUCCESS; +} +aidl::android::media::audio::common::AudioMode EffectContext::getAudioMode() { + return mMode; +} + +RetCode EffectContext::setAudioSource( + const aidl::android::media::audio::common::AudioSource& source) { + mSource = source; + return RetCode::SUCCESS; +} + +aidl::android::media::audio::common::AudioSource EffectContext::getAudioSource() { + return mSource; +} + +RetCode EffectContext::setVolumeStereo(const Parameter::VolumeStereo& volumeStereo) { + mVolumeStereo = volumeStereo; + return RetCode::SUCCESS; +} + +Parameter::VolumeStereo EffectContext::getVolumeStereo() { + return mVolumeStereo; +} + +RetCode EffectContext::setCommon(const Parameter::Common& common) { + LOG(VERBOSE) << __func__ << common.toString(); + auto& input = common.input; + auto& output = common.output; + + if (input.base.format.pcm != aidl::android::media::audio::common::PcmType::FLOAT_32_BIT || + output.base.format.pcm != aidl::android::media::audio::common::PcmType::FLOAT_32_BIT) { + LOG(ERROR) << __func__ << " illegal IO, input " + << ::android::internal::ToString(input.base.format) << ", output " + << ::android::internal::ToString(output.base.format); + return RetCode::ERROR_ILLEGAL_PARAMETER; + } + + if (auto ret = updateIOFrameSize(common); ret != RetCode::SUCCESS) { + return ret; + } + + mInputChannelCount = getChannelCount(input.base.channelMask); + mOutputChannelCount = getChannelCount(output.base.channelMask); + if (mInputChannelCount == 0 || mOutputChannelCount == 0) { + LOG(ERROR) << __func__ << " illegal channel count input " << mInputChannelCount + << ", output " << mOutputChannelCount; + return RetCode::ERROR_ILLEGAL_PARAMETER; + } + + mCommon = common; + return RetCode::SUCCESS; +} + +Parameter::Common EffectContext::getCommon() { + LOG(VERBOSE) << __func__ << mCommon.toString(); + return mCommon; +} + +EventFlag* EffectContext::getStatusEventFlag() { + return mEfGroup; +} + +RetCode EffectContext::updateIOFrameSize(const Parameter::Common& common) { + const auto prevInputFrameSize = mInputFrameSize; + const auto prevOutputFrameSize = mOutputFrameSize; + mInputFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( + common.input.base.format, common.input.base.channelMask); + mOutputFrameSize = ::aidl::android::hardware::audio::common::getFrameSizeInBytes( + common.output.base.format, common.output.base.channelMask); + + // workBuffer and data MQ not allocated yet, no need to update + if (mWorkBuffer.size() == 0 || !mInputMQ || !mOutputMQ) { + return RetCode::SUCCESS; + } + // IEffect::reopen introduced in android.hardware.audio.effect-V2 + if (mVersion < kReopenSupportedVersion) { + LOG(WARNING) << __func__ << " skipped for HAL version " << mVersion; + return RetCode::SUCCESS; + } + bool needUpdateMq = false; + if (mInputFrameSize != prevInputFrameSize || + mCommon.input.frameCount != common.input.frameCount) { + mInputMQ.reset(); + needUpdateMq = true; + } + if (mOutputFrameSize != prevOutputFrameSize || + mCommon.output.frameCount != common.output.frameCount) { + mOutputMQ.reset(); + needUpdateMq = true; + } + + if (needUpdateMq) { + mWorkBuffer.resize(std::max(common.input.frameCount * mInputFrameSize / sizeof(float), + common.output.frameCount * mOutputFrameSize / sizeof(float))); + return notifyDataMqUpdate(); + } + return RetCode::SUCCESS; +} + +RetCode EffectContext::notifyDataMqUpdate() { + if (!mEfGroup) { + LOG(ERROR) << __func__ << ": invalid EventFlag group"; + return RetCode::ERROR_EVENT_FLAG_ERROR; + } + + if (const auto ret = mEfGroup->wake(kEventFlagDataMqUpdate); ret != ::android::OK) { + LOG(ERROR) << __func__ << ": wake failure with ret " << ret; + return RetCode::ERROR_EVENT_FLAG_ERROR; + } + LOG(DEBUG) << __func__ << " : signal client for reopen"; + return RetCode::SUCCESS; +} +} // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/EffectImpl.cpp b/audio/aidl/default/EffectImpl.cpp index c81c731c43951ec78c6a0657fa8de5248e8b0b6c..4d7b9809c6311a9447baed834e79dcb6952836ef 100644 --- a/audio/aidl/default/EffectImpl.cpp +++ b/audio/aidl/default/EffectImpl.cpp @@ -14,7 +14,10 @@ * limitations under the License. */ +#include +#define ATRACE_TAG ATRACE_TAG_AUDIO #define LOG_TAG "AHAL_EffectImpl" +#include #include "effect-impl/EffectImpl.h" #include "effect-impl/EffectTypes.h" #include "include/effect-impl/EffectTypes.h" @@ -22,6 +25,7 @@ using aidl::android::hardware::audio::effect::IEffect; using aidl::android::hardware::audio::effect::State; using aidl::android::media::audio::common::PcmType; +using ::android::hardware::EventFlag; extern "C" binder_exception_t destroyEffect(const std::shared_ptr& instanceSp) { State state; @@ -45,40 +49,68 @@ ndk::ScopedAStatus EffectImpl::open(const Parameter::Common& common, RETURN_IF(common.input.base.format.pcm != common.output.base.format.pcm || common.input.base.format.pcm != PcmType::FLOAT_32_BIT, EX_ILLEGAL_ARGUMENT, "dataMustBe32BitsFloat"); + + std::lock_guard lg(mImplMutex); RETURN_OK_IF(mState != State::INIT); - auto context = createContext(common); - RETURN_IF(!context, EX_NULL_POINTER, "createContextFailed"); + mImplContext = createContext(common); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); + + int version = 0; + RETURN_IF(!getInterfaceVersion(&version).isOk(), EX_UNSUPPORTED_OPERATION, + "FailedToGetInterfaceVersion"); + mImplContext->setVersion(version); + mEventFlag = mImplContext->getStatusEventFlag(); if (specific.has_value()) { RETURN_IF_ASTATUS_NOT_OK(setParameterSpecific(specific.value()), "setSpecParamErr"); } mState = State::IDLE; - context->dupeFmq(ret); - RETURN_IF(createThread(context, getEffectName()) != RetCode::SUCCESS, EX_UNSUPPORTED_OPERATION, + mImplContext->dupeFmq(ret); + RETURN_IF(createThread(getEffectName()) != RetCode::SUCCESS, EX_UNSUPPORTED_OPERATION, "FailedToCreateWorker"); return ndk::ScopedAStatus::ok(); } +ndk::ScopedAStatus EffectImpl::reopen(OpenEffectReturn* ret) { + std::lock_guard lg(mImplMutex); + RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "alreadyClosed"); + + // TODO: b/302036943 add reopen implementation + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); + mImplContext->dupeFmqWithReopen(ret); + return ndk::ScopedAStatus::ok(); +} + ndk::ScopedAStatus EffectImpl::close() { - RETURN_OK_IF(mState == State::INIT); - RETURN_IF(mState == State::PROCESSING, EX_ILLEGAL_STATE, "closeAtProcessing"); + { + std::lock_guard lg(mImplMutex); + RETURN_OK_IF(mState == State::INIT); + RETURN_IF(mState == State::PROCESSING, EX_ILLEGAL_STATE, "closeAtProcessing"); + mState = State::INIT; + } + RETURN_IF(notifyEventFlag(kEventFlagNotEmpty) != RetCode::SUCCESS, EX_ILLEGAL_STATE, + "notifyEventFlagFailed"); // stop the worker thread, ignore the return code RETURN_IF(destroyThread() != RetCode::SUCCESS, EX_UNSUPPORTED_OPERATION, "FailedToDestroyWorker"); - mState = State::INIT; - RETURN_IF(releaseContext() != RetCode::SUCCESS, EX_UNSUPPORTED_OPERATION, - "FailedToCreateWorker"); + + { + std::lock_guard lg(mImplMutex); + releaseContext(); + mImplContext.reset(); + } LOG(DEBUG) << getEffectName() << __func__; return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus EffectImpl::setParameter(const Parameter& param) { + std::lock_guard lg(mImplMutex); LOG(VERBOSE) << getEffectName() << __func__ << " with: " << param.toString(); - const auto tag = param.getTag(); + const auto& tag = param.getTag(); switch (tag) { case Parameter::common: case Parameter::deviceDescription: @@ -100,8 +132,8 @@ ndk::ScopedAStatus EffectImpl::setParameter(const Parameter& param) { } ndk::ScopedAStatus EffectImpl::getParameter(const Parameter::Id& id, Parameter* param) { - auto tag = id.getTag(); - switch (tag) { + std::lock_guard lg(mImplMutex); + switch (id.getTag()) { case Parameter::Id::commonTag: { RETURN_IF_ASTATUS_NOT_OK(getParameterCommon(id.get(), param), "CommonParamNotSupported"); @@ -121,30 +153,30 @@ ndk::ScopedAStatus EffectImpl::getParameter(const Parameter::Id& id, Parameter* } ndk::ScopedAStatus EffectImpl::setParameterCommon(const Parameter& param) { - auto context = getContext(); - RETURN_IF(!context, EX_NULL_POINTER, "nullContext"); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); - auto tag = param.getTag(); + const auto& tag = param.getTag(); switch (tag) { case Parameter::common: - RETURN_IF(context->setCommon(param.get()) != RetCode::SUCCESS, + RETURN_IF(mImplContext->setCommon(param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setCommFailed"); break; case Parameter::deviceDescription: - RETURN_IF(context->setOutputDevice(param.get()) != + RETURN_IF(mImplContext->setOutputDevice(param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setDeviceFailed"); break; case Parameter::mode: - RETURN_IF(context->setAudioMode(param.get()) != RetCode::SUCCESS, + RETURN_IF(mImplContext->setAudioMode(param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setModeFailed"); break; case Parameter::source: - RETURN_IF(context->setAudioSource(param.get()) != RetCode::SUCCESS, + RETURN_IF(mImplContext->setAudioSource(param.get()) != + RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setSourceFailed"); break; case Parameter::volumeStereo: - RETURN_IF(context->setVolumeStereo(param.get()) != + RETURN_IF(mImplContext->setVolumeStereo(param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "setVolumeStereoFailed"); break; @@ -159,28 +191,27 @@ ndk::ScopedAStatus EffectImpl::setParameterCommon(const Parameter& param) { } ndk::ScopedAStatus EffectImpl::getParameterCommon(const Parameter::Tag& tag, Parameter* param) { - auto context = getContext(); - RETURN_IF(!context, EX_NULL_POINTER, "nullContext"); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); switch (tag) { case Parameter::common: { - param->set(context->getCommon()); + param->set(mImplContext->getCommon()); break; } case Parameter::deviceDescription: { - param->set(context->getOutputDevice()); + param->set(mImplContext->getOutputDevice()); break; } case Parameter::mode: { - param->set(context->getAudioMode()); + param->set(mImplContext->getAudioMode()); break; } case Parameter::source: { - param->set(context->getAudioSource()); + param->set(mImplContext->getAudioSource()); break; } case Parameter::volumeStereo: { - param->set(context->getVolumeStereo()); + param->set(mImplContext->getVolumeStereo()); break; } default: { @@ -192,30 +223,34 @@ ndk::ScopedAStatus EffectImpl::getParameterCommon(const Parameter::Tag& tag, Par return ndk::ScopedAStatus::ok(); } -ndk::ScopedAStatus EffectImpl::getState(State* state) { +ndk::ScopedAStatus EffectImpl::getState(State* state) NO_THREAD_SAFETY_ANALYSIS { *state = mState; return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus EffectImpl::command(CommandId command) { - RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "CommandStateError"); + std::lock_guard lg(mImplMutex); + RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "instanceNotOpen"); LOG(DEBUG) << getEffectName() << __func__ << ": receive command: " << toString(command) << " at state " << toString(mState); switch (command) { case CommandId::START: - RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "instanceNotOpen"); RETURN_OK_IF(mState == State::PROCESSING); RETURN_IF_ASTATUS_NOT_OK(commandImpl(command), "commandImplFailed"); - startThread(); mState = State::PROCESSING; + RETURN_IF(notifyEventFlag(kEventFlagNotEmpty) != RetCode::SUCCESS, EX_ILLEGAL_STATE, + "notifyEventFlagFailed"); + startThread(); break; case CommandId::STOP: case CommandId::RESET: RETURN_OK_IF(mState == State::IDLE); + mState = State::IDLE; + RETURN_IF(notifyEventFlag(kEventFlagNotEmpty) != RetCode::SUCCESS, EX_ILLEGAL_STATE, + "notifyEventFlagFailed"); stopThread(); RETURN_IF_ASTATUS_NOT_OK(commandImpl(command), "commandImplFailed"); - mState = State::IDLE; break; default: LOG(ERROR) << getEffectName() << __func__ << " instance still processing"; @@ -227,19 +262,41 @@ ndk::ScopedAStatus EffectImpl::command(CommandId command) { } ndk::ScopedAStatus EffectImpl::commandImpl(CommandId command) { - auto context = getContext(); - RETURN_IF(!context, EX_NULL_POINTER, "nullContext"); + RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext"); if (command == CommandId::RESET) { - context->resetBuffer(); + mImplContext->resetBuffer(); } return ndk::ScopedAStatus::ok(); } +std::shared_ptr EffectImpl::createContext(const Parameter::Common& common) { + return std::make_shared(1 /* statusMqDepth */, common); +} + +RetCode EffectImpl::releaseContext() { + if (mImplContext) { + mImplContext.reset(); + } + return RetCode::SUCCESS; +} + void EffectImpl::cleanUp() { command(CommandId::STOP); close(); } +RetCode EffectImpl::notifyEventFlag(uint32_t flag) { + if (!mEventFlag) { + LOG(ERROR) << getEffectName() << __func__ << ": StatusEventFlag invalid"; + return RetCode::ERROR_EVENT_FLAG_ERROR; + } + if (const auto ret = mEventFlag->wake(flag); ret != ::android::OK) { + LOG(ERROR) << getEffectName() << __func__ << ": wake failure with ret " << ret; + return RetCode::ERROR_EVENT_FLAG_ERROR; + } + return RetCode::SUCCESS; +} + IEffect::Status EffectImpl::status(binder_status_t status, size_t consumed, size_t produced) { IEffect::Status ret; ret.status = status; @@ -248,6 +305,51 @@ IEffect::Status EffectImpl::status(binder_status_t status, size_t consumed, size return ret; } +void EffectImpl::process() { + ATRACE_CALL(); + /** + * wait for the EventFlag without lock, it's ok because the mEfGroup pointer will not change + * in the life cycle of workerThread (threadLoop). + */ + uint32_t efState = 0; + if (!mEventFlag || + ::android::OK != mEventFlag->wait(kEventFlagNotEmpty, &efState, 0 /* no timeout */, + true /* retry */) || + !(efState & kEventFlagNotEmpty)) { + LOG(ERROR) << getEffectName() << __func__ << ": StatusEventFlag - " << mEventFlag + << " efState - " << std::hex << efState; + return; + } + + { + std::lock_guard lg(mImplMutex); + if (mState != State::PROCESSING) { + LOG(DEBUG) << getEffectName() << " skip process in state: " << toString(mState); + return; + } + RETURN_VALUE_IF(!mImplContext, void(), "nullContext"); + auto statusMQ = mImplContext->getStatusFmq(); + auto inputMQ = mImplContext->getInputDataFmq(); + auto outputMQ = mImplContext->getOutputDataFmq(); + auto buffer = mImplContext->getWorkBuffer(); + if (!inputMQ || !outputMQ) { + return; + } + + assert(mImplContext->getWorkBufferSize() >= + std::max(inputMQ->availableToRead(), outputMQ->availableToWrite())); + auto processSamples = std::min(inputMQ->availableToRead(), outputMQ->availableToWrite()); + if (processSamples) { + inputMQ->read(buffer, processSamples); + IEffect::Status status = effectProcessImpl(buffer, buffer, processSamples); + outputMQ->write(buffer, status.fmqProduced); + statusMQ->writeBlocking(&status, 1); + LOG(VERBOSE) << getEffectName() << __func__ << ": done processing, effect consumed " + << status.fmqConsumed << " produced " << status.fmqProduced; + } + } +} + // A placeholder processing implementation to copy samples from input to output IEffect::Status EffectImpl::effectProcessImpl(float* in, float* out, int samples) { for (int i = 0; i < samples; i++) { diff --git a/audio/aidl/default/EffectMain.cpp b/audio/aidl/default/EffectMain.cpp index ca81204823c08e82df9bb22f19619aa0e0e53903..a300cfdd78740087d77f545c7fc51271bc99206b 100644 --- a/audio/aidl/default/EffectMain.cpp +++ b/audio/aidl/default/EffectMain.cpp @@ -21,15 +21,39 @@ #include #include +#ifdef __ANDROID_APEX__ +#include +#endif + /** Default name of effect configuration file. */ static const char* kDefaultConfigName = "audio_effects_config.xml"; +static inline std::string config_file_path() { + if constexpr (__ANDROID_VENDOR_API__ >= 202404) { + AApexInfo *apexInfo; + if (AApexInfo_create(&apexInfo) == AAPEXINFO_OK) { + std::string apexName(AApexInfo_getName(apexInfo)); + AApexInfo_destroy(apexInfo); + std::string candidatePath("/apex/"); + candidatePath.append(apexName).append("/etc/").append(kDefaultConfigName); + LOG(DEBUG) << __func__ << " effect lib path " << candidatePath; + if (access(candidatePath.c_str(), R_OK) == 0) { + return std::move(candidatePath); + } + } + } else { + LOG(DEBUG) << __func__ << " libapexsupport is not supported"; + } + LOG(DEBUG) << __func__ << ": Unable to resolve config file path in APEX"; + return android::audio_find_readable_configuration_file(kDefaultConfigName); +} + int main() { // This is a debug implementation, always enable debug logging. android::base::SetMinimumLogSeverity(::android::base::DEBUG); ABinderProcess_setThreadPoolMaxThreadCount(0); - auto configFile = android::audio_find_readable_configuration_file(kDefaultConfigName); + auto configFile = config_file_path(); if (configFile == "") { LOG(ERROR) << __func__ << ": config file " << kDefaultConfigName << " not found!"; return EXIT_FAILURE; diff --git a/audio/aidl/default/EffectThread.cpp b/audio/aidl/default/EffectThread.cpp index 47ba9f44cb4c76763352abc1ea368a7584b85b90..fdd48034e87278c40c6506cd7d851d705af7a621 100644 --- a/audio/aidl/default/EffectThread.cpp +++ b/audio/aidl/default/EffectThread.cpp @@ -25,8 +25,6 @@ #include "effect-impl/EffectThread.h" #include "effect-impl/EffectTypes.h" -using ::android::hardware::EventFlag; - namespace aidl::android::hardware::audio::effect { EffectThread::EffectThread() { @@ -38,31 +36,18 @@ EffectThread::~EffectThread() { LOG(DEBUG) << __func__ << " done"; } -RetCode EffectThread::createThread(std::shared_ptr context, const std::string& name, - int priority) { +RetCode EffectThread::createThread(const std::string& name, int priority) { if (mThread.joinable()) { LOG(WARNING) << mName << __func__ << " thread already created, no-op"; return RetCode::SUCCESS; } + mName = name; mPriority = priority; { std::lock_guard lg(mThreadMutex); mStop = true; mExit = false; - mThreadContext = std::move(context); - auto statusMQ = mThreadContext->getStatusFmq(); - EventFlag* efGroup = nullptr; - ::android::status_t status = - EventFlag::createEventFlag(statusMQ->getEventFlagWord(), &efGroup); - if (status != ::android::OK || !efGroup) { - LOG(ERROR) << mName << __func__ << " create EventFlagGroup failed " << status - << " efGroup " << efGroup; - return RetCode::ERROR_THREAD; - } - mEfGroup.reset(efGroup); - // kickoff and wait for commands (CommandId::START/STOP) or IEffect.close from client - mEfGroup->wake(kEventFlagNotEmpty); } mThread = std::thread(&EffectThread::threadLoop, this); @@ -75,16 +60,12 @@ RetCode EffectThread::destroyThread() { std::lock_guard lg(mThreadMutex); mStop = mExit = true; } - mCv.notify_one(); + mCv.notify_one(); if (mThread.joinable()) { mThread.join(); } - { - std::lock_guard lg(mThreadMutex); - mThreadContext.reset(); - } LOG(DEBUG) << mName << __func__; return RetCode::SUCCESS; } @@ -96,7 +77,6 @@ RetCode EffectThread::startThread() { mCv.notify_one(); } - mEfGroup->wake(kEventFlagNotEmpty); LOG(DEBUG) << mName << __func__; return RetCode::SUCCESS; } @@ -108,7 +88,6 @@ RetCode EffectThread::stopThread() { mCv.notify_one(); } - mEfGroup->wake(kEventFlagNotEmpty); LOG(DEBUG) << mName << __func__; return RetCode::SUCCESS; } @@ -117,13 +96,6 @@ void EffectThread::threadLoop() { pthread_setname_np(pthread_self(), mName.substr(0, kMaxTaskNameLen - 1).c_str()); setpriority(PRIO_PROCESS, 0, mPriority); while (true) { - /** - * wait for the EventFlag without lock, it's ok because the mEfGroup pointer will not change - * in the life cycle of workerThread (threadLoop). - */ - uint32_t efState = 0; - mEfGroup->wait(kEventFlagNotEmpty, &efState); - { std::unique_lock l(mThreadMutex); ::android::base::ScopedLockAssertion lock_assertion(mThreadMutex); @@ -132,27 +104,8 @@ void EffectThread::threadLoop() { LOG(INFO) << __func__ << " EXIT!"; return; } - process_l(); } - } -} - -void EffectThread::process_l() { - RETURN_VALUE_IF(!mThreadContext, void(), "nullContext"); - - auto statusMQ = mThreadContext->getStatusFmq(); - auto inputMQ = mThreadContext->getInputDataFmq(); - auto outputMQ = mThreadContext->getOutputDataFmq(); - auto buffer = mThreadContext->getWorkBuffer(); - - auto processSamples = inputMQ->availableToRead(); - if (processSamples) { - inputMQ->read(buffer, processSamples); - IEffect::Status status = effectProcessImpl(buffer, buffer, processSamples); - outputMQ->write(buffer, status.fmqProduced); - statusMQ->writeBlocking(&status, 1); - LOG(VERBOSE) << mName << __func__ << ": done processing, effect consumed " - << status.fmqConsumed << " produced " << status.fmqProduced; + process(); } } diff --git a/audio/aidl/default/Module.cpp b/audio/aidl/default/Module.cpp index d0e8745d78ba3b60191e82dc23c832a7baa18bea..94aa4dc6578453d5515a02b0cfcd9996a14eacaf 100644 --- a/audio/aidl/default/Module.cpp +++ b/audio/aidl/default/Module.cpp @@ -93,32 +93,6 @@ bool hasDynamicProfilesOnly(const std::vector& profiles) { return std::all_of(profiles.begin(), profiles.end(), isDynamicProfile); } -// Note: does not assign an ID to the config. -bool generateDefaultPortConfig(const AudioPort& port, AudioPortConfig* config) { - const bool allowDynamicConfig = port.ext.getTag() == AudioPortExt::device; - *config = {}; - config->portId = port.id; - for (const auto& profile : port.profiles) { - if (isDynamicProfile(profile)) continue; - config->format = profile.format; - config->channelMask = *profile.channelMasks.begin(); - config->sampleRate = Int{.value = *profile.sampleRates.begin()}; - config->flags = port.flags; - config->ext = port.ext; - return true; - } - if (allowDynamicConfig) { - config->format = AudioFormatDescription{}; - config->channelMask = AudioChannelLayout{}; - config->sampleRate = Int{.value = 0}; - config->flags = port.flags; - config->ext = port.ext; - return true; - } - LOG(ERROR) << __func__ << ": port " << port.id << " only has dynamic profiles"; - return false; -} - bool findAudioProfile(const AudioPort& port, const AudioFormatDescription& format, AudioProfile* profile) { if (auto profilesIt = @@ -204,10 +178,11 @@ ndk::ScopedAStatus Module::createStreamContext( } auto& configs = getConfig().portConfigs; auto portConfigIt = findById(configs, in_portConfigId); + const int32_t nominalLatencyMs = getNominalLatencyMs(*portConfigIt); // Since this is a private method, it is assumed that // validity of the portConfigId has already been checked. - const int32_t minimumStreamBufferSizeFrames = calculateBufferSizeFrames( - getNominalLatencyMs(*portConfigIt), portConfigIt->sampleRate.value().value); + const int32_t minimumStreamBufferSizeFrames = + calculateBufferSizeFrames(nominalLatencyMs, portConfigIt->sampleRate.value().value); if (in_bufferSizeFrames < minimumStreamBufferSizeFrames) { LOG(ERROR) << __func__ << ": insufficient buffer size " << in_bufferSizeFrames << ", must be at least " << minimumStreamBufferSizeFrames; @@ -246,7 +221,7 @@ ndk::ScopedAStatus Module::createStreamContext( std::make_unique(1, true /*configureEventFlagWord*/), std::make_unique(1, true /*configureEventFlagWord*/), portConfigIt->format.value(), portConfigIt->channelMask.value(), - portConfigIt->sampleRate.value().value, flags, getNominalLatencyMs(*portConfigIt), + portConfigIt->sampleRate.value().value, flags, nominalLatencyMs, portConfigIt->ext.get().handle, std::make_unique(frameSize * in_bufferSizeFrames), asyncCallback, outEventCallback, mSoundDose.getInstance(), params); @@ -332,6 +307,29 @@ ndk::ScopedAStatus Module::findPortIdForNewStream(int32_t in_portConfigId, Audio return ndk::ScopedAStatus::ok(); } +bool Module::generateDefaultPortConfig(const AudioPort& port, AudioPortConfig* config) { + const bool allowDynamicConfig = port.ext.getTag() == AudioPortExt::device; + for (const auto& profile : port.profiles) { + if (isDynamicProfile(profile)) continue; + config->format = profile.format; + config->channelMask = *profile.channelMasks.begin(); + config->sampleRate = Int{.value = *profile.sampleRates.begin()}; + config->flags = port.flags; + config->ext = port.ext; + return true; + } + if (allowDynamicConfig) { + config->format = AudioFormatDescription{}; + config->channelMask = AudioChannelLayout{}; + config->sampleRate = Int{.value = 0}; + config->flags = port.flags; + config->ext = port.ext; + return true; + } + LOG(ERROR) << __func__ << ": port " << port.id << " only has dynamic profiles"; + return false; +} + void Module::populateConnectedProfiles() { Configuration& config = getConfig(); for (const AudioPort& port : config.ports) { @@ -621,10 +619,11 @@ ndk::ScopedAStatus Module::connectExternalDevice(const AudioPort& in_templateIdA std::vector routesToMixPorts = getAudioRoutesForAudioPortImpl(templateId); std::set routableMixPortIds = getRoutableAudioPortIds(templateId, &routesToMixPorts); + const int32_t nextPortId = getConfig().nextPortId++; if (!mDebug.simulateDeviceConnections) { // Even if the device port has static profiles, the HAL module might need to update // them, or abort the connection process. - RETURN_STATUS_IF_ERROR(populateConnectedDevicePort(&connectedPort)); + RETURN_STATUS_IF_ERROR(populateConnectedDevicePort(&connectedPort, nextPortId)); } else if (hasDynamicProfilesOnly(connectedPort.profiles)) { auto& connectedProfiles = getConfig().connectedProfiles; if (auto connectedProfilesIt = connectedProfiles.find(templateId); @@ -648,7 +647,7 @@ ndk::ScopedAStatus Module::connectExternalDevice(const AudioPort& in_templateIdA } } - connectedPort.id = getConfig().nextPortId++; + connectedPort.id = nextPortId; auto [connectedPortsIt, _] = mConnectedDevicePorts.insert(std::pair(connectedPort.id, std::set())); LOG(DEBUG) << __func__ << ": template port " << templateId << " external device connected, " @@ -1039,6 +1038,18 @@ ndk::ScopedAStatus Module::setAudioPatch(const AudioPatch& in_requested, AudioPa ndk::ScopedAStatus Module::setAudioPortConfig(const AudioPortConfig& in_requested, AudioPortConfig* out_suggested, bool* _aidl_return) { + auto generate = [this](const AudioPort& port, AudioPortConfig* config) { + return generateDefaultPortConfig(port, config); + }; + return setAudioPortConfigImpl(in_requested, generate, out_suggested, _aidl_return); +} + +ndk::ScopedAStatus Module::setAudioPortConfigImpl( + const AudioPortConfig& in_requested, + const std::function& + fillPortConfig, + AudioPortConfig* out_suggested, bool* applied) { LOG(DEBUG) << __func__ << ": requested " << in_requested.toString(); auto& configs = getConfig().portConfigs; auto existing = configs.end(); @@ -1067,7 +1078,8 @@ ndk::ScopedAStatus Module::setAudioPortConfig(const AudioPortConfig& in_requeste *out_suggested = *existing; } else { AudioPortConfig newConfig; - if (generateDefaultPortConfig(*portIt, &newConfig)) { + newConfig.portId = portIt->id; + if (fillPortConfig(*portIt, &newConfig)) { *out_suggested = newConfig; } else { LOG(ERROR) << __func__ << ": unable generate a default config for port " << portId; @@ -1172,17 +1184,17 @@ ndk::ScopedAStatus Module::setAudioPortConfig(const AudioPortConfig& in_requeste if (existing == configs.end() && requestedIsValid && requestedIsFullySpecified) { out_suggested->id = getConfig().nextPortId++; configs.push_back(*out_suggested); - *_aidl_return = true; + *applied = true; LOG(DEBUG) << __func__ << ": created new port config " << out_suggested->toString(); } else if (existing != configs.end() && requestedIsValid) { *existing = *out_suggested; - *_aidl_return = true; + *applied = true; LOG(DEBUG) << __func__ << ": updated port config " << out_suggested->toString(); } else { LOG(DEBUG) << __func__ << ": not applied; existing config ? " << (existing != configs.end()) << "; requested is valid? " << requestedIsValid << ", fully specified? " << requestedIsFullySpecified; - *_aidl_return = false; + *applied = false; } return ndk::ScopedAStatus::ok(); } @@ -1534,7 +1546,7 @@ bool Module::isMmapSupported() { return mIsMmapSupported.value(); } -ndk::ScopedAStatus Module::populateConnectedDevicePort(AudioPort* audioPort) { +ndk::ScopedAStatus Module::populateConnectedDevicePort(AudioPort* audioPort, int32_t) { if (audioPort->ext.getTag() != AudioPortExt::device) { LOG(ERROR) << __func__ << ": not a device port: " << audioPort->toString(); return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); diff --git a/audio/aidl/default/SoundDose.cpp b/audio/aidl/default/SoundDose.cpp index 1c9e0813530f39119c85d986ca79371b7fe41a68..6c3a06713947d57a9a92e6213fbd72f13ecdbafc 100644 --- a/audio/aidl/default/SoundDose.cpp +++ b/audio/aidl/default/SoundDose.cpp @@ -119,7 +119,8 @@ void SoundDose::onNewMelValues(const std::vector& mels, size_t offset, si void SoundDose::MelCallback::onNewMelValues(const std::vector& mels, size_t offset, size_t length, audio_port_handle_t deviceId - __attribute__((__unused__))) const { + __attribute__((__unused__)), + bool attenuated __attribute__((__unused__))) const { mSoundDose.onNewMelValues(mels, offset, length, deviceId); } diff --git a/audio/aidl/default/Stream.cpp b/audio/aidl/default/Stream.cpp index a805b872cd6d08658bcc6f4e934933229d95d0fc..807348fad7315c5b3c298d587c4cccb53ff4afeb 100644 --- a/audio/aidl/default/Stream.cpp +++ b/audio/aidl/default/Stream.cpp @@ -16,14 +16,14 @@ #include +#define ATRACE_TAG ATRACE_TAG_AUDIO #define LOG_TAG "AHAL_Stream" +#include #include #include #include +#include -#include - -#include "core-impl/Module.h" #include "core-impl/Stream.h" using aidl::android::hardware::audio::common::AudioOffloadMetadata; @@ -180,17 +180,20 @@ StreamInWorkerLogic::Status StreamInWorkerLogic::cycle() { StreamDescriptor::Reply reply{}; reply.status = STATUS_BAD_VALUE; switch (command.getTag()) { - case Tag::halReservedExit: - if (const int32_t cookie = command.get(); - cookie == (mContext->getInternalCommandCookie() ^ getTid())) { + case Tag::halReservedExit: { + const int32_t cookie = command.get(); + if (cookie == (mContext->getInternalCommandCookie() ^ getTid())) { mDriver->shutdown(); setClosed(); - // This is an internal command, no need to reply. - return Status::EXIT; } else { LOG(WARNING) << __func__ << ": EXIT command has a bad cookie: " << cookie; } - break; + if (cookie != 0) { // This is an internal command, no need to reply. + return Status::EXIT; + } else { + break; + } + } case Tag::getStatus: populateReply(&reply, mIsConnected); break; @@ -309,6 +312,7 @@ StreamInWorkerLogic::Status StreamInWorkerLogic::cycle() { } bool StreamInWorkerLogic::read(size_t clientSize, StreamDescriptor::Reply* reply) { + ATRACE_CALL(); StreamContext::DataMQ* const dataMQ = mContext->getDataMQ(); const size_t byteCount = std::min({clientSize, dataMQ->availableToWrite(), mDataBufferSize}); const bool isConnected = mIsConnected; @@ -400,17 +404,20 @@ StreamOutWorkerLogic::Status StreamOutWorkerLogic::cycle() { reply.status = STATUS_BAD_VALUE; using Tag = StreamDescriptor::Command::Tag; switch (command.getTag()) { - case Tag::halReservedExit: - if (const int32_t cookie = command.get(); - cookie == (mContext->getInternalCommandCookie() ^ getTid())) { + case Tag::halReservedExit: { + const int32_t cookie = command.get(); + if (cookie == (mContext->getInternalCommandCookie() ^ getTid())) { mDriver->shutdown(); setClosed(); - // This is an internal command, no need to reply. - return Status::EXIT; } else { LOG(WARNING) << __func__ << ": EXIT command has a bad cookie: " << cookie; } - break; + if (cookie != 0) { // This is an internal command, no need to reply. + return Status::EXIT; + } else { + break; + } + } case Tag::getStatus: populateReply(&reply, mIsConnected); break; @@ -577,6 +584,7 @@ StreamOutWorkerLogic::Status StreamOutWorkerLogic::cycle() { } bool StreamOutWorkerLogic::write(size_t clientSize, StreamDescriptor::Reply* reply) { + ATRACE_CALL(); StreamContext::DataMQ* const dataMQ = mContext->getDataMQ(); const size_t readByteCount = dataMQ->availableToRead(); const size_t frameSize = mContext->getFrameSize(); diff --git a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp index 5e18f1b12f7599d526b0f1378016670d67f66d91..be0927c457211ca0216a7419933c57a3d4435b39 100644 --- a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp +++ b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp @@ -168,10 +168,6 @@ std::shared_ptr AcousticEchoCancelerSw::createContext( return mContext; } -std::shared_ptr AcousticEchoCancelerSw::getContext() { - return mContext; -} - RetCode AcousticEchoCancelerSw::releaseContext() { if (mContext) { mContext.reset(); diff --git a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h index 73cf42b17a28bb563e6cbd37c8e0a9bee1302c33..95738f8dd125f602c4bc7b6387559515abe04c84 100644 --- a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h +++ b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h @@ -52,21 +52,23 @@ class AcousticEchoCancelerSw final : public EffectImpl { } ndk::ScopedAStatus getDescriptor(Descriptor* _aidl_return) override; - ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) override; - ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) override; + ndk::ScopedAStatus setParameterSpecific(const Parameter::Specific& specific) + REQUIRES(mImplMutex) override; + ndk::ScopedAStatus getParameterSpecific(const Parameter::Id& id, Parameter::Specific* specific) + REQUIRES(mImplMutex) override; - std::shared_ptr createContext(const Parameter::Common& common) override; - std::shared_ptr getContext() override; - RetCode releaseContext() override; + std::shared_ptr createContext(const Parameter::Common& common) + REQUIRES(mImplMutex) override; + RetCode releaseContext() REQUIRES(mImplMutex) override; std::string getEffectName() override { return kEffectName; }; IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; private: static const std::vector kRanges; - std::shared_ptr mContext; + std::shared_ptr mContext GUARDED_BY(mImplMutex); ndk::ScopedAStatus getParameterAcousticEchoCanceler(const AcousticEchoCanceler::Tag& tag, - Parameter::Specific* specific); + Parameter::Specific* specific) + REQUIRES(mImplMutex); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/acousticEchoCanceler/Android.bp b/audio/aidl/default/acousticEchoCanceler/Android.bp index bfb72129a5b897380c97f7f21e2beba71d53d904..46930e043aacbf11ee55e020105c914473d55a6c 100644 --- a/audio/aidl/default/acousticEchoCanceler/Android.bp +++ b/audio/aidl/default/acousticEchoCanceler/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -27,8 +28,6 @@ cc_library_shared { name: "libaecsw", defaults: [ "aidlaudioeffectservice_defaults", - "latest_android_media_audio_common_types_ndk_shared", - "latest_android_hardware_audio_effect_ndk_shared", ], srcs: [ "AcousticEchoCancelerSw.cpp", @@ -36,6 +35,6 @@ cc_library_shared { ], relative_install_path: "soundfx", visibility: [ - "//hardware/interfaces/audio/aidl/default", + "//hardware/interfaces/audio/aidl/default:__subpackages__", ], } diff --git a/audio/aidl/default/alsa/ModuleAlsa.cpp b/audio/aidl/default/alsa/ModuleAlsa.cpp index 8512631268b7180fd1a2453ea8d27465945987c7..9a2cce73ccce0ffd8f7d4e362a65bf7cc639b75e 100644 --- a/audio/aidl/default/alsa/ModuleAlsa.cpp +++ b/audio/aidl/default/alsa/ModuleAlsa.cpp @@ -34,7 +34,7 @@ using aidl::android::media::audio::common::AudioProfile; namespace aidl::android::hardware::audio::core { -ndk::ScopedAStatus ModuleAlsa::populateConnectedDevicePort(AudioPort* audioPort) { +ndk::ScopedAStatus ModuleAlsa::populateConnectedDevicePort(AudioPort* audioPort, int32_t) { auto deviceProfile = alsa::getDeviceProfile(*audioPort); if (!deviceProfile.has_value()) { return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); diff --git a/audio/aidl/default/android.hardware.audio.effect.service-aidl.example.rc b/audio/aidl/default/android.hardware.audio.effect.service-aidl.example.rc deleted file mode 100644 index 5f859a199437528e96a53357a82151e9778cc2c9..0000000000000000000000000000000000000000 --- a/audio/aidl/default/android.hardware.audio.effect.service-aidl.example.rc +++ /dev/null @@ -1,11 +0,0 @@ -service vendor.audio-effect-hal-aidl /vendor/bin/hw/android.hardware.audio.effect.service-aidl.example - class hal - user audioserver - # media gid needed for /dev/fm (radio) and for /data/misc/media (tee) - group audio media - capabilities BLOCK_SUSPEND - # setting RLIMIT_RTPRIO allows binder RT priority inheritance - rlimit rtprio 10 10 - ioprio rt 4 - task_profiles ProcessCapacityHigh HighPerformance - onrestart restart audioserver diff --git a/audio/aidl/default/android.hardware.audio.effect.service-aidl.xml b/audio/aidl/default/android.hardware.audio.effect.service-aidl.xml deleted file mode 100644 index 05a825db1be208808c9a3d62163494f833d6428b..0000000000000000000000000000000000000000 --- a/audio/aidl/default/android.hardware.audio.effect.service-aidl.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - android.hardware.audio.effect - 2 - IFactory/default - - diff --git a/audio/aidl/default/android.hardware.audio.service-aidl.example.rc b/audio/aidl/default/android.hardware.audio.service-aidl.example.rc index 757976fbc39452b8642d91edcc682a62718c460d..c3e19ba28a37976444d86870f486c2c960e01c9c 100644 --- a/audio/aidl/default/android.hardware.audio.service-aidl.example.rc +++ b/audio/aidl/default/android.hardware.audio.service-aidl.example.rc @@ -1,4 +1,5 @@ -service vendor.audio-hal-aidl /vendor/bin/hw/android.hardware.audio.service-aidl.example + +service vendor.audio-hal-aidl /apex/com.android.hardware.audio/bin/hw/android.hardware.audio.service-aidl.example class hal user audioserver # media gid needed for /dev/fm (radio) and for /data/misc/media (tee) @@ -9,3 +10,15 @@ service vendor.audio-hal-aidl /vendor/bin/hw/android.hardware.audio.service-aidl ioprio rt 4 task_profiles ProcessCapacityHigh HighPerformance onrestart restart audioserver + +service vendor.audio-effect-hal-aidl /apex/com.android.hardware.audio/bin/hw/android.hardware.audio.effect.service-aidl.example + class hal + user audioserver + # media gid needed for /dev/fm (radio) and for /data/misc/media (tee) + group audio media + capabilities BLOCK_SUSPEND + # setting RLIMIT_RTPRIO allows binder RT priority inheritance + rlimit rtprio 10 10 + ioprio rt 4 + task_profiles ProcessCapacityHigh HighPerformance + onrestart restart audioserver \ No newline at end of file diff --git a/audio/aidl/default/android.hardware.audio.service-aidl.xml b/audio/aidl/default/android.hardware.audio.service-aidl.xml index 2a518763f19847989ce2b93e5cd7ed83c6ee6e9b..5278e4f147c8bd9c2aade8e87bd3ebf6f97a62b5 100644 --- a/audio/aidl/default/android.hardware.audio.service-aidl.xml +++ b/audio/aidl/default/android.hardware.audio.service-aidl.xml @@ -31,4 +31,9 @@ IModule/usb --> + + android.hardware.audio.effect + 2 + IFactory/default + diff --git a/audio/aidl/default/apex/com.android.hardware.audio/Android.bp b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp new file mode 100644 index 0000000000000000000000000000000000000000..ee7e46edce18144b5fbb9da9170cfe7a536d82d4 --- /dev/null +++ b/audio/aidl/default/apex/com.android.hardware.audio/Android.bp @@ -0,0 +1,50 @@ +package { + default_team: "trendy_team_android_media_audio_framework", + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "hardware_interfaces_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +apex { + name: "com.android.hardware.audio", + manifest: "manifest.json", + file_contexts: "file_contexts", + key: "com.android.hardware.key", + certificate: ":com.android.hardware.certificate", + updatable: false, + vendor: true, + + binaries: [ + "android.hardware.audio.service-aidl.example", + "android.hardware.audio.effect.service-aidl.example", + ], + native_shared_libs: [ + "libaecsw", + "libagc1sw", + "libagc2sw", + "libbassboostsw", + "libbundleaidl", + "libdownmixaidl", + "libdynamicsprocessingaidl", + "libenvreverbsw", + "libequalizersw", + "libextensioneffect", + "libhapticgeneratoraidl", + "libloudnessenhanceraidl", + "libnssw", + "libpreprocessingaidl", + "libpresetreverbsw", + "libreverbaidl", + "libspatializersw", + "libvirtualizersw", + "libvisualizeraidl", + "libvolumesw", + ], + prebuilts: [ + "android.hardware.audio.service-aidl.example.rc", + "android.hardware.audio.service-aidl.xml", + ], +} diff --git a/audio/aidl/default/apex/com.android.hardware.audio/file_contexts b/audio/aidl/default/apex/com.android.hardware.audio/file_contexts new file mode 100644 index 0000000000000000000000000000000000000000..41a6ada761d250fed9294c2329730051707c7a1e --- /dev/null +++ b/audio/aidl/default/apex/com.android.hardware.audio/file_contexts @@ -0,0 +1,4 @@ +(/.*)? u:object_r:vendor_file:s0 +/etc(/.*)? u:object_r:vendor_configs_file:s0 +/bin/hw/android\.hardware\.audio\.service-aidl\.example u:object_r:hal_audio_default_exec:s0 +/bin/hw/android\.hardware\.audio\.effect\.service-aidl\.example u:object_r:hal_audio_default_exec:s0 \ No newline at end of file diff --git a/audio/aidl/default/apex/com.android.hardware.audio/manifest.json b/audio/aidl/default/apex/com.android.hardware.audio/manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..42a2368a214246801765f72ba35ea736b1300ec3 --- /dev/null +++ b/audio/aidl/default/apex/com.android.hardware.audio/manifest.json @@ -0,0 +1,4 @@ +{ + "name": "com.android.hardware.audio", + "version": 1 +} diff --git a/audio/aidl/default/audio_effects_config.xml b/audio/aidl/default/audio_effects_config.xml index 6f0af21ffce63468db08758708dfe1cba6b64d29..e859a0e083f8dea67a3ecf102438492abb86afe2 100644 --- a/audio/aidl/default/audio_effects_config.xml +++ b/audio/aidl/default/audio_effects_config.xml @@ -47,6 +47,7 @@ + - + diff --git a/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp b/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp index 2d9a233337964b0322d2fa8ac3ba02cd77a5c436..4cb1f496d409bbc9dc81626cdda602e6a26bbd41 100644 --- a/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp +++ b/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp @@ -16,14 +16,15 @@ #include -#include #define LOG_TAG "VtsHalBassBoostTest" +#include #include - #include "EffectHelper.h" +#include "pffft.hpp" using namespace android; +using aidl::android::hardware::audio::common::getChannelCount; using aidl::android::hardware::audio::effect::BassBoost; using aidl::android::hardware::audio::effect::Capability; using aidl::android::hardware::audio::effect::Descriptor; @@ -33,13 +34,11 @@ using aidl::android::hardware::audio::effect::IFactory; using aidl::android::hardware::audio::effect::Parameter; using aidl::android::hardware::audio::effect::Range; using android::hardware::audio::common::testing::detail::TestExecutionTracer; -/** - * Here we focus on specific parameter checking, general IEffect interfaces testing performed in - * VtsAudioEffectTargetTest. - */ -enum ParamName { PARAM_INSTANCE_NAME, PARAM_STRENGTH }; -using BassBoostParamTestParam = std::tuple, Descriptor>, int>; +// minimal HAL interface version to run bassboost data path test +constexpr int32_t kMinDataTestHalVersion = 2; +static const std::vector kLayouts = {AudioChannelLayout::LAYOUT_STEREO, + AudioChannelLayout::LAYOUT_MONO}; /* * Testing parameter range, assuming the parameter supported by effect is in this range. * Parameter should be within the valid range defined in the documentation, @@ -47,29 +46,29 @@ using BassBoostParamTestParam = std::tuple, * otherwise expect EX_ILLEGAL_ARGUMENT. */ -class BassBoostParamTest : public ::testing::TestWithParam, - public EffectHelper { +class BassBoostEffectHelper : public EffectHelper { public: - BassBoostParamTest() : mParamStrength(std::get(GetParam())) { - std::tie(mFactory, mDescriptor) = std::get(GetParam()); - } - - void SetUp() override { + void SetUpBassBoost(int32_t layout = AudioChannelLayout::LAYOUT_STEREO) { ASSERT_NE(nullptr, mFactory); ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor)); + setFrameCounts(layout); + + AudioChannelLayout channelLayout = + AudioChannelLayout::make(layout); Parameter::Specific specific = getDefaultParamSpecific(); Parameter::Common common = EffectHelper::createParamCommon( - 0 /* session */, 1 /* ioHandle */, 44100 /* iSampleRate */, 44100 /* oSampleRate */, - kInputFrameCount /* iFrameCount */, kOutputFrameCount /* oFrameCount */); - IEffect::OpenEffectReturn ret; - ASSERT_NO_FATAL_FAILURE(open(mEffect, common, specific, &ret, EX_NONE)); + 0 /* session */, 1 /* ioHandle */, kSamplingFrequency /* iSampleRate */, + kSamplingFrequency /* oSampleRate */, mInputFrameCount /* iFrameCount */, + mOutputFrameCount /* oFrameCount */, channelLayout, channelLayout); + ASSERT_NO_FATAL_FAILURE(open(mEffect, common, specific, &mOpenEffectReturn, EX_NONE)); ASSERT_NE(nullptr, mEffect); } - void TearDown() override { + void TearDownBassBoost() { ASSERT_NO_FATAL_FAILURE(close(mEffect)); ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); + mOpenEffectReturn = IEffect::OpenEffectReturn{}; } Parameter::Specific getDefaultParamSpecific() { @@ -79,58 +78,218 @@ class BassBoostParamTest : public ::testing::TestWithParam(inputBufferLayout)); + mInputFrameCount = kInputSize / channelCount; + mOutputFrameCount = kInputSize / channelCount; + } + + Parameter createBassBoostParam(int strength) { + return Parameter::make( + Parameter::Specific::make( + BassBoost::make(strength))); + } + + bool isStrengthValid(int strength) { + auto bb = BassBoost::make(strength); + return isParameterValid(bb, mDescriptor); + } + + void setAndVerifyParameters(int strength, binder_exception_t expected) { + auto expectedParam = createBassBoostParam(strength); + EXPECT_STATUS(expected, mEffect->setParameter(expectedParam)) << expectedParam.toString(); + + if (expected == EX_NONE) { + auto bbId = BassBoost::Id::make( + BassBoost::Tag(BassBoost::strengthPm)); + auto id = Parameter::Id::make(bbId); + // get parameter + Parameter getParam; + // if set success, then get should match + EXPECT_STATUS(expected, mEffect->getParameter(id, &getParam)); + EXPECT_EQ(expectedParam, getParam) << "\nexpectedParam:" << expectedParam.toString() + << "\ngetParam:" << getParam.toString(); + } + } + + static constexpr int kSamplingFrequency = 44100; + static constexpr int kDurationMilliSec = 2000; + static constexpr int kInputSize = kSamplingFrequency * kDurationMilliSec / 1000; + long mInputFrameCount, mOutputFrameCount; std::shared_ptr mFactory; - std::shared_ptr mEffect; Descriptor mDescriptor; + std::shared_ptr mEffect; + IEffect::OpenEffectReturn mOpenEffectReturn; +}; + +/** + * Here we focus on specific parameter checking, general IEffect interfaces testing performed in + * VtsAudioEffectTargetTest. + */ +enum ParamName { PARAM_INSTANCE_NAME, PARAM_STRENGTH }; +using BassBoostParamTestParam = std::tuple, Descriptor>, int>; + +class BassBoostParamTest : public ::testing::TestWithParam, + public BassBoostEffectHelper { + public: + BassBoostParamTest() : mParamStrength(std::get(GetParam())) { + std::tie(mFactory, mDescriptor) = std::get(GetParam()); + } + + void SetUp() override { ASSERT_NO_FATAL_FAILURE(SetUpBassBoost()); } + void TearDown() override { TearDownBassBoost(); } + int mParamStrength = 0; +}; + +TEST_P(BassBoostParamTest, SetAndGetStrength) { + if (isStrengthValid(mParamStrength)) { + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(mParamStrength, EX_NONE)); + } else { + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(mParamStrength, EX_ILLEGAL_ARGUMENT)); + } +} - void SetAndGetBassBoostParameters() { - for (auto& it : mTags) { - auto& tag = it.first; - auto& bb = it.second; - - // validate parameter - Descriptor desc; - ASSERT_STATUS(EX_NONE, mEffect->getDescriptor(&desc)); - const bool valid = isParameterValid(it.second, desc); - const binder_exception_t expected = valid ? EX_NONE : EX_ILLEGAL_ARGUMENT; - - // set parameter - Parameter expectParam; - Parameter::Specific specific; - specific.set(bb); - expectParam.set(specific); - EXPECT_STATUS(expected, mEffect->setParameter(expectParam)) << expectParam.toString(); - - // only get if parameter in range and set success - if (expected == EX_NONE) { - Parameter getParam; - Parameter::Id id; - BassBoost::Id bbId; - bbId.set(tag); - id.set(bbId); - // if set success, then get should match - EXPECT_STATUS(expected, mEffect->getParameter(id, &getParam)); - EXPECT_EQ(expectParam, getParam); +enum DataParamName { DATA_INSTANCE_NAME, DATA_LAYOUT }; + +using BassBoostDataTestParam = + std::tuple, Descriptor>, int32_t>; + +class BassBoostDataTest : public ::testing::TestWithParam, + public BassBoostEffectHelper { + public: + BassBoostDataTest() : mChannelLayout(std::get(GetParam())) { + std::tie(mFactory, mDescriptor) = std::get(GetParam()); + mStrengthValues = getTestValueSet( + {std::get(GetParam())}, expandTestValueBasic); + } + + void SetUp() override { + SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags); + ASSERT_NO_FATAL_FAILURE(SetUpBassBoost(mChannelLayout)); + if (int32_t version; + mEffect->getInterfaceVersion(&version).isOk() && version < kMinDataTestHalVersion) { + GTEST_SKIP() << "Skipping the data test for version: " << version << "\n"; + } + } + + void TearDown() override { + SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags); + TearDownBassBoost(); + } + + // Find FFT bin indices for testFrequencies and get bin center frequencies + void roundToFreqCenteredToFftBin(std::vector& testFrequencies, + std::vector& binOffsets) { + for (size_t i = 0; i < testFrequencies.size(); i++) { + binOffsets[i] = std::round(testFrequencies[i] / kBinWidth); + testFrequencies[i] = std::round(binOffsets[i] * kBinWidth); + } + } + + // Generate multitone input between -1 to +1 using testFrequencies + void generateMultiTone(const std::vector& testFrequencies, std::vector& input) { + for (auto i = 0; i < kInputSize; i++) { + input[i] = 0; + + for (size_t j = 0; j < testFrequencies.size(); j++) { + input[i] += sin(2 * M_PI * testFrequencies[j] * i / kSamplingFrequency); } + input[i] /= testFrequencies.size(); + } + } + + // Use FFT transform to convert the buffer to frequency domain + // Compute its magnitude at binOffsets + std::vector calculateMagnitude(const std::vector& buffer, + const std::vector& binOffsets) { + std::vector fftInput(kNPointFFT); + PFFFT_Setup* inputHandle = pffft_new_setup(kNPointFFT, PFFFT_REAL); + pffft_transform_ordered(inputHandle, buffer.data(), fftInput.data(), nullptr, + PFFFT_FORWARD); + pffft_destroy_setup(inputHandle); + std::vector bufferMag(binOffsets.size()); + for (size_t i = 0; i < binOffsets.size(); i++) { + size_t k = binOffsets[i]; + bufferMag[i] = sqrt((fftInput[k * 2] * fftInput[k * 2]) + + (fftInput[k * 2 + 1] * fftInput[k * 2 + 1])); } + + return bufferMag; } - void addStrengthParam(int strength) { - BassBoost bb; - bb.set(strength); - mTags.push_back({BassBoost::strengthPm, bb}); + // Calculate gain difference between low frequency and high frequency magnitude + float calculateGainDiff(const std::vector& inputMag, + const std::vector& outputMag) { + std::vector gains(inputMag.size()); + + for (size_t i = 0; i < inputMag.size(); i++) { + gains[i] = 20 * log10(outputMag[i] / inputMag[i]); + } + + return gains[0] - gains[1]; } - private: - std::vector> mTags; - void CleanUp() { mTags.clear(); } + static constexpr int kNPointFFT = 32768; + static constexpr float kBinWidth = (float)kSamplingFrequency / kNPointFFT; + std::set mStrengthValues; + int32_t mChannelLayout; }; -TEST_P(BassBoostParamTest, SetAndGetStrength) { - EXPECT_NO_FATAL_FAILURE(addStrengthParam(mParamStrength)); - SetAndGetBassBoostParameters(); +TEST_P(BassBoostDataTest, IncreasingStrength) { + // Frequencies to generate multitone input + std::vector testFrequencies = {100, 1000}; + + // FFT bin indices for testFrequencies + std::vector binOffsets(testFrequencies.size()); + + std::vector input(kInputSize); + std::vector baseOutput(kInputSize); + + std::vector inputMag(testFrequencies.size()); + float prevGain = -100; + + roundToFreqCenteredToFftBin(testFrequencies, binOffsets); + + generateMultiTone(testFrequencies, input); + + inputMag = calculateMagnitude(input, binOffsets); + + if (isStrengthValid(0)) { + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(0, EX_NONE)); + } else { + GTEST_SKIP() << "Strength not supported, skipping the test\n"; + } + + ASSERT_NO_FATAL_FAILURE( + processAndWriteToOutput(input, baseOutput, mEffect, &mOpenEffectReturn)); + + std::vector baseMag(testFrequencies.size()); + baseMag = calculateMagnitude(baseOutput, binOffsets); + float baseDiff = calculateGainDiff(inputMag, baseMag); + + for (int strength : mStrengthValues) { + // Skipping the further steps for invalid strength values + if (!isStrengthValid(strength)) { + continue; + } + + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(strength, EX_NONE)); + + std::vector output(kInputSize); + std::vector outputMag(testFrequencies.size()); + + ASSERT_NO_FATAL_FAILURE( + processAndWriteToOutput(input, output, mEffect, &mOpenEffectReturn)); + + outputMag = calculateMagnitude(output, binOffsets); + float diff = calculateGainDiff(inputMag, outputMag); + + ASSERT_GT(diff, prevGain); + ASSERT_GT(diff, baseDiff); + prevGain = diff; + } } std::vector, Descriptor>> kDescPair; @@ -153,6 +312,22 @@ INSTANTIATE_TEST_SUITE_P( GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BassBoostParamTest); +INSTANTIATE_TEST_SUITE_P( + BassBoostTest, BassBoostDataTest, + ::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors( + IFactory::descriptor, getEffectTypeUuidBassBoost())), + testing::ValuesIn(kLayouts)), + [](const testing::TestParamInfo& info) { + auto descriptor = std::get(info.param).second; + std::string layout = std::to_string(std::get(info.param)); + std::string name = getPrefix(descriptor) + "_layout_" + layout; + std::replace_if( + name.begin(), name.end(), [](const char c) { return !std::isalnum(c); }, '_'); + return name; + }); + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BassBoostDataTest); + int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); ::testing::UnitTest::GetInstance()->listeners().Append(new TestExecutionTracer()); diff --git a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp index d7db567a0b07ccb5f41b89c7f9b7578591ff976b..ef77f4d51e1dde88425ea39d817bb05de4c08655 100644 --- a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp +++ b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp @@ -14,7 +14,6 @@ * limitations under the License. */ -#include #define LOG_TAG "VtsHalDownmixTargetTest" #include @@ -33,6 +32,9 @@ using aidl::android::hardware::audio::effect::Parameter; using android::audio_utils::channels::ChannelMix; using android::hardware::audio::common::testing::detail::TestExecutionTracer; +// minimal HAL interface version to run downmix data path test +constexpr int32_t kMinDataTestHalVersion = 2; + // Testing for enum values static const std::vector kTypeValues = {ndk::enum_range().begin(), ndk::enum_range().end()}; @@ -136,7 +138,6 @@ class DownmixEffectHelper : public EffectHelper { void setDataTestParams(int32_t layoutType) { mInputBuffer.resize(kBufferSize); - mOutputBuffer.resize(kBufferSize); // Get the number of channels used mInputChannelCount = getChannelCount( @@ -144,6 +145,7 @@ class DownmixEffectHelper : public EffectHelper { // In case of downmix, output is always configured to stereo layout. mOutputBufferSize = (mInputBuffer.size() / mInputChannelCount) * kOutputChannelCount; + mOutputBuffer.resize(mOutputBufferSize); } // Generate mInputBuffer values between -kMaxDownmixSample to kMaxDownmixSample @@ -228,14 +230,22 @@ class DownmixFoldDataTest : public ::testing::TestWithParamgetInterfaceVersion(&version).isOk() && version < kMinDataTestHalVersion) { + GTEST_SKIP() << "Skipping the data test for version: " << version << "\n"; + } if (!isLayoutValid(mInputChannelLayout)) { GTEST_SKIP() << "Layout not supported \n"; } setDataTestParams(mInputChannelLayout); } - void TearDown() override { TearDownDownmix(); } + void TearDown() override { + SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags); + TearDownDownmix(); + } void checkAtLeft(int32_t position) { for (size_t i = 0, j = position; i < mOutputBufferSize; @@ -256,13 +266,13 @@ class DownmixFoldDataTest : public ::testing::TestWithParamgetInterfaceVersion(&version).isOk() && version < kMinDataTestHalVersion) { + GTEST_SKIP() << "Skipping the data test for version: " << version << "\n"; + } if (!isLayoutValid(mInputChannelLayout)) { GTEST_SKIP() << "Layout not supported \n"; } @@ -392,9 +406,6 @@ class DownmixStripDataTest : public ::testing::TestWithParam& info) { auto descriptor = std::get(info.param).second; std::string type = std::to_string(static_cast(std::get(info.param))); - std::string name = getPrefix(descriptor) + "_type" + type; + std::string name = getPrefix(descriptor) + "_type_" + type; std::replace_if( name.begin(), name.end(), [](const char c) { return !std::isalnum(c); }, '_'); return name; @@ -435,7 +446,7 @@ INSTANTIATE_TEST_SUITE_P( [](const testing::TestParamInfo& info) { auto descriptor = std::get(info.param).second; std::string layout = std::to_string(std::get(info.param)); - std::string name = getPrefix(descriptor) + "_fold" + "_layout" + layout; + std::string name = getPrefix(descriptor) + "_fold_layout_" + layout; std::replace_if( name.begin(), name.end(), [](const char c) { return !std::isalnum(c); }, '_'); return name; @@ -452,7 +463,7 @@ INSTANTIATE_TEST_SUITE_P( auto descriptor = std::get(info.param).second; std::string layout = std::to_string(static_cast(std::get(info.param))); - std::string name = getPrefix(descriptor) + "_strip" + "_layout" + layout; + std::string name = getPrefix(descriptor) + "_strip_layout_" + layout; std::replace_if( name.begin(), name.end(), [](const char c) { return !std::isalnum(c); }, '_'); return name; diff --git a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp index 2650f49cb2e577d408900d56850913b99ee685d5..e95bd4d1d161dbe2c1d7a57b82534b9f975c04fc 100644 --- a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp +++ b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp @@ -18,7 +18,6 @@ #include #include -#include #define LOG_TAG "VtsHalDynamicsProcessingTest" #include @@ -196,48 +195,42 @@ const std::set> template bool DynamicsProcessingTestHelper::isBandConfigValid(const std::vector& cfgs, int bandCount) { - std::vector freqs(cfgs.size(), -1); + std::unordered_set freqs; for (auto cfg : cfgs) { if (cfg.channel < 0 || cfg.channel >= mChannelCount) return false; if (cfg.band < 0 || cfg.band >= bandCount) return false; - freqs[cfg.band] = cfg.cutoffFrequencyHz; + // duplicated band index + if (freqs.find(cfg.band) != freqs.end()) return false; + freqs.insert(cfg.band); } - if (std::count(freqs.begin(), freqs.end(), -1)) return false; - return std::is_sorted(freqs.begin(), freqs.end()); + return true; } bool DynamicsProcessingTestHelper::isParamValid(const DynamicsProcessing::Tag& tag, const DynamicsProcessing& dp) { switch (tag) { case DynamicsProcessing::preEq: { - if (!mEngineConfigApplied.preEqStage.inUse) return false; return isChannelConfigValid(dp.get()); } case DynamicsProcessing::postEq: { - if (!mEngineConfigApplied.postEqStage.inUse) return false; return isChannelConfigValid(dp.get()); } case DynamicsProcessing::mbc: { - if (!mEngineConfigApplied.mbcStage.inUse) return false; return isChannelConfigValid(dp.get()); } case DynamicsProcessing::preEqBand: { - if (!mEngineConfigApplied.preEqStage.inUse) return false; return isBandConfigValid(dp.get(), mEngineConfigApplied.preEqStage.bandCount); } case DynamicsProcessing::postEqBand: { - if (!mEngineConfigApplied.postEqStage.inUse) return false; return isBandConfigValid(dp.get(), mEngineConfigApplied.postEqStage.bandCount); } case DynamicsProcessing::mbcBand: { - if (!mEngineConfigApplied.mbcStage.inUse) return false; return isBandConfigValid(dp.get(), mEngineConfigApplied.mbcStage.bandCount); } case DynamicsProcessing::limiter: { - if (!mEngineConfigApplied.limiterInUse) return false; return isChannelConfigValid(dp.get()); } case DynamicsProcessing::inputGain: { diff --git a/audio/aidl/vts/VtsHalEnvironmentalReverbTargetTest.cpp b/audio/aidl/vts/VtsHalEnvironmentalReverbTargetTest.cpp index 474b3610ea90d33558de1b8bd9613676598001c4..765c37739f5dcd12522a6c0183496c5bc5b6f576 100644 --- a/audio/aidl/vts/VtsHalEnvironmentalReverbTargetTest.cpp +++ b/audio/aidl/vts/VtsHalEnvironmentalReverbTargetTest.cpp @@ -14,7 +14,6 @@ * limitations under the License. */ -#include #define LOG_TAG "VtsHalEnvironmentalReverbTest" #include diff --git a/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp b/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp index 09396d1c88d6a838d0c54f2b69e5d4958346e13f..d7dbe3883ac86bd782cfcb3a38afce765fa4b15e 100644 --- a/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp +++ b/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp @@ -15,15 +15,10 @@ */ #include -#include -#include -#include -#include #include #include #include -#include #include #include #define LOG_TAG "VtsHalEqualizerTest" @@ -34,7 +29,6 @@ #include #include -#include "AudioHalBinderServiceUtil.h" #include "EffectHelper.h" #include "TestUtils.h" diff --git a/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp b/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp index 5a32398b282e3403e71a3972c956968f193eac1b..d31211146d5a09ace6735e04c95c740dacc88ad9 100644 --- a/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp +++ b/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp @@ -18,7 +18,6 @@ #include #include -#include #define LOG_TAG "VtsHalHapticGeneratorTargetTest" #include #include diff --git a/audio/aidl/vts/VtsHalLoudnessEnhancerTargetTest.cpp b/audio/aidl/vts/VtsHalLoudnessEnhancerTargetTest.cpp index 925f9ecc8603df35f8c6a3677491b56a3679f79b..a075423f62fca637b1815887298e7fa17341ad99 100644 --- a/audio/aidl/vts/VtsHalLoudnessEnhancerTargetTest.cpp +++ b/audio/aidl/vts/VtsHalLoudnessEnhancerTargetTest.cpp @@ -16,7 +16,6 @@ #include -#include #define LOG_TAG "VtsHalLoudnessEnhancerTest" #include @@ -157,6 +156,7 @@ class LoudnessEnhancerDataTest : public ::testing::TestWithParam(mOpenEffectReturn.outputDataMQ); } - void TearDown() override { TearDownLoudnessEnhancer(); } + void TearDown() override { + SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags); + TearDownLoudnessEnhancer(); + } // Fill inputBuffer with random values between -kMaxAudioSample to kMaxAudioSample void generateInputBuffer() { diff --git a/audio/aidl/vts/VtsHalNSTargetTest.cpp b/audio/aidl/vts/VtsHalNSTargetTest.cpp index 12d56b01513b4632531abd2d7e61d96e7eab652d..5c1351294bfe271232cb1df33a6ff78e36d9cd57 100644 --- a/audio/aidl/vts/VtsHalNSTargetTest.cpp +++ b/audio/aidl/vts/VtsHalNSTargetTest.cpp @@ -16,7 +16,6 @@ #include -#include #include #define LOG_TAG "VtsHalNSParamTest" #include diff --git a/audio/aidl/vts/VtsHalPresetReverbTargetTest.cpp b/audio/aidl/vts/VtsHalPresetReverbTargetTest.cpp index 57eda0992caeff691bfd66e216c52235ee0f0a9f..1453495862b580ca60f986477404e9dc2a286f31 100644 --- a/audio/aidl/vts/VtsHalPresetReverbTargetTest.cpp +++ b/audio/aidl/vts/VtsHalPresetReverbTargetTest.cpp @@ -14,7 +14,6 @@ * limitations under the License. */ -#include #define LOG_TAG "VtsHalPresetReverbTargetTest" #include #include diff --git a/audio/aidl/vts/VtsHalSpatializerTargetTest.cpp b/audio/aidl/vts/VtsHalSpatializerTargetTest.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f0b51b98c5bd5c666166d045a16e96ea098054f7 --- /dev/null +++ b/audio/aidl/vts/VtsHalSpatializerTargetTest.cpp @@ -0,0 +1,187 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "VtsHalSpatializerTest" +#include + +#include "EffectHelper.h" + +using namespace android; + +using aidl::android::hardware::audio::effect::Descriptor; +using aidl::android::hardware::audio::effect::getEffectTypeUuidSpatializer; +using aidl::android::hardware::audio::effect::IEffect; +using aidl::android::hardware::audio::effect::IFactory; +using aidl::android::hardware::audio::effect::Parameter; +using aidl::android::hardware::audio::effect::Range; +using aidl::android::hardware::audio::effect::Spatializer; +using aidl::android::media::audio::common::HeadTracking; +using aidl::android::media::audio::common::Spatialization; +using android::hardware::audio::common::testing::detail::TestExecutionTracer; +using ::android::internal::ToString; + +enum ParamName { + PARAM_INSTANCE_NAME, + PARAM_SPATIALIZATION_LEVEL, + PARAM_SPATIALIZATION_MODE, + PARAM_HEADTRACK_SENSORID, + PARAM_HEADTRACK_MODE, + PARAM_HEADTRACK_CONNECTION_MODE +}; + +using SpatializerParamTestParam = + std::tuple, Descriptor>, Spatialization::Level, + Spatialization::Mode, int /* sensor ID */, HeadTracking::Mode, + HeadTracking::ConnectionMode>; + +class SpatializerParamTest : public ::testing::TestWithParam, + public EffectHelper { + public: + SpatializerParamTest() + : mSpatializerParams([&]() { + Spatialization::Level level = std::get(GetParam()); + Spatialization::Mode mode = std::get(GetParam()); + int sensorId = std::get(GetParam()); + HeadTracking::Mode htMode = std::get(GetParam()); + HeadTracking::ConnectionMode htConnectMode = + std::get(GetParam()); + std::map params; + params[Spatializer::spatializationLevel] = + Spatializer::make(level); + params[Spatializer::spatializationMode] = + Spatializer::make(mode); + params[Spatializer::headTrackingSensorId] = + Spatializer::make(sensorId); + params[Spatializer::headTrackingMode] = + Spatializer::make(htMode); + params[Spatializer::headTrackingConnectionMode] = + Spatializer::make(htConnectMode); + return params; + }()) { + std::tie(mFactory, mDescriptor) = std::get(GetParam()); + } + + void SetUp() override { + ASSERT_NE(nullptr, mFactory); + ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor)); + + Parameter::Specific specific = getDefaultParamSpecific(); + Parameter::Common common = EffectHelper::createParamCommon( + 0 /* session */, 1 /* ioHandle */, 44100 /* iSampleRate */, 44100 /* oSampleRate */, + kInputFrameCount /* iFrameCount */, kOutputFrameCount /* oFrameCount */); + IEffect::OpenEffectReturn ret; + ASSERT_NO_FATAL_FAILURE(open(mEffect, common, specific, &ret, EX_NONE)); + ASSERT_NE(nullptr, mEffect); + } + + void TearDown() override { + ASSERT_NO_FATAL_FAILURE(close(mEffect)); + ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); + } + + Parameter::Specific getDefaultParamSpecific() { + Spatializer spatializer = Spatializer::make(0); + Parameter::Specific specific = + Parameter::Specific::make(spatializer); + return specific; + } + + static const long kInputFrameCount = 0x100, kOutputFrameCount = 0x100; + std::shared_ptr mFactory; + std::shared_ptr mEffect; + Descriptor mDescriptor; + const std::map mSpatializerParams; +}; + +TEST_P(SpatializerParamTest, SetAndGetParam) { + for (const auto& it : mSpatializerParams) { + auto& tag = it.first; + auto& spatializer = it.second; + + // validate parameter + Descriptor desc; + ASSERT_STATUS(EX_NONE, mEffect->getDescriptor(&desc)); + const bool valid = isParameterValid(it.second, desc); + const binder_exception_t expected = valid ? EX_NONE : EX_ILLEGAL_ARGUMENT; + + // set parameter + Parameter expectParam; + Parameter::Specific specific; + specific.set(spatializer); + expectParam.set(specific); + EXPECT_STATUS(expected, mEffect->setParameter(expectParam)) << expectParam.toString(); + + // only get if parameter in range and set success + if (expected == EX_NONE) { + Parameter getParam; + Parameter::Id id; + Spatializer::Id spatializerId; + spatializerId.set(tag); + id.set(spatializerId); + // if set success, then get should match + EXPECT_STATUS(expected, mEffect->getParameter(id, &getParam)); + EXPECT_EQ(expectParam, getParam); + } + } +} + +std::vector, Descriptor>> kDescPair; +INSTANTIATE_TEST_SUITE_P( + SpatializerTest, SpatializerParamTest, + ::testing::Combine( + testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors( + IFactory::descriptor, getEffectTypeUuidSpatializer())), + testing::ValuesIn(EffectHelper::getTestValueSet< + Spatializer, Spatialization::Level, Range::spatializer, + Spatializer::spatializationLevel>(kDescPair)), + testing::ValuesIn(EffectHelper::getTestValueSet< + Spatializer, Spatialization::Mode, Range::spatializer, + Spatializer::spatializationMode>(kDescPair)), + testing::ValuesIn( + EffectHelper::getTestValueSet( + kDescPair, EffectHelper::expandTestValueBasic)), + testing::ValuesIn(EffectHelper::getTestValueSet< + Spatializer, HeadTracking::Mode, Range::spatializer, + Spatializer::headTrackingMode>(kDescPair)), + testing::ValuesIn(EffectHelper::getTestValueSet< + Spatializer, HeadTracking::ConnectionMode, Range::spatializer, + Spatializer::headTrackingConnectionMode>(kDescPair))), + [](const testing::TestParamInfo& info) { + auto descriptor = std::get(info.param).second; + std::string level = ToString(std::get(info.param)); + std::string mode = ToString(std::get(info.param)); + std::string sensorId = ToString(std::get(info.param)); + std::string htMode = ToString(std::get(info.param)); + std::string htConnectMode = + ToString(std::get(info.param)); + std::string name = getPrefix(descriptor) + "_sensorID_" + level + "_mode_" + mode + + "_sensorID_" + sensorId + "_HTMode_" + htMode + + "_HTConnectionMode_" + htConnectMode; + std::replace_if( + name.begin(), name.end(), [](const char c) { return !std::isalnum(c); }, '_'); + return name; + }); + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(SpatializerParamTest); + +int main(int argc, char** argv) { + ::testing::InitGoogleTest(&argc, argv); + ::testing::UnitTest::GetInstance()->listeners().Append(new TestExecutionTracer()); + ABinderProcess_setThreadPoolMaxThreadCount(1); + ABinderProcess_startThreadPool(); + return RUN_ALL_TESTS(); +} diff --git a/audio/aidl/vts/VtsHalVirtualizerTargetTest.cpp b/audio/aidl/vts/VtsHalVirtualizerTargetTest.cpp index 3e39d3a67da4aeb2f1f41cee9e04655d791523c6..0c24f90fce165e9e92c5928ab3e70815caf1bb65 100644 --- a/audio/aidl/vts/VtsHalVirtualizerTargetTest.cpp +++ b/audio/aidl/vts/VtsHalVirtualizerTargetTest.cpp @@ -14,7 +14,6 @@ * limitations under the License. */ -#include #define LOG_TAG "VtsHalVirtualizerTest" #include diff --git a/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp b/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp index 1b8352b8cab5cc36248049436bb419b247fcf4dd..db837159a88d5a70ed6645877591420ffb77794f 100644 --- a/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp +++ b/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp @@ -16,7 +16,6 @@ #include -#include #define LOG_TAG "VtsHalVisualizerTest" #include #include diff --git a/audio/aidl/vts/VtsHalVolumeTargetTest.cpp b/audio/aidl/vts/VtsHalVolumeTargetTest.cpp index 257100b9cff6f468b65d73c84edcd811ad443ae9..1c1489deb5d4118c210ebfb075840dc57a7ec33b 100644 --- a/audio/aidl/vts/VtsHalVolumeTargetTest.cpp +++ b/audio/aidl/vts/VtsHalVolumeTargetTest.cpp @@ -14,7 +14,6 @@ * limitations under the License. */ -#include #define LOG_TAG "VtsHalVolumeTest" #include @@ -22,6 +21,7 @@ using namespace android; +using aidl::android::hardware::audio::common::getChannelCount; using aidl::android::hardware::audio::effect::Descriptor; using aidl::android::hardware::audio::effect::getEffectTypeUuidVolume; using aidl::android::hardware::audio::effect::IEffect; @@ -30,110 +30,264 @@ using aidl::android::hardware::audio::effect::Parameter; using aidl::android::hardware::audio::effect::Volume; using android::hardware::audio::common::testing::detail::TestExecutionTracer; -/** - * Here we focus on specific parameter checking, general IEffect interfaces testing performed in - * VtsAudioEffectTargetTest. - */ -enum ParamName { PARAM_INSTANCE_NAME, PARAM_LEVEL, PARAM_MUTE }; -using VolumeParamTestParam = - std::tuple, Descriptor>, int, bool>; - -class VolumeParamTest : public ::testing::TestWithParam, public EffectHelper { +class VolumeControlHelper : public EffectHelper { public: - VolumeParamTest() - : mParamLevel(std::get(GetParam())), - mParamMute(std::get(GetParam())) { - std::tie(mFactory, mDescriptor) = std::get(GetParam()); - } - - void SetUp() override { + void SetUpVolumeControl() { ASSERT_NE(nullptr, mFactory); ASSERT_NO_FATAL_FAILURE(create(mFactory, mEffect, mDescriptor)); - + initFrameCount(); Parameter::Specific specific = getDefaultParamSpecific(); Parameter::Common common = EffectHelper::createParamCommon( - 0 /* session */, 1 /* ioHandle */, 44100 /* iSampleRate */, 44100 /* oSampleRate */, - kInputFrameCount /* iFrameCount */, kOutputFrameCount /* oFrameCount */); - IEffect::OpenEffectReturn ret; - ASSERT_NO_FATAL_FAILURE(open(mEffect, common, specific, &ret, EX_NONE)); + 0 /* session */, 1 /* ioHandle */, kSamplingFrequency /* iSampleRate */, + kSamplingFrequency /* oSampleRate */, mInputFrameCount /* iFrameCount */, + mInputFrameCount /* oFrameCount */); + ASSERT_NO_FATAL_FAILURE(open(mEffect, common, specific, &mOpenEffectReturn, EX_NONE)); ASSERT_NE(nullptr, mEffect); } - void TearDown() override { + + void TearDownVolumeControl() { ASSERT_NO_FATAL_FAILURE(close(mEffect)); ASSERT_NO_FATAL_FAILURE(destroy(mFactory, mEffect)); + mOpenEffectReturn = IEffect::OpenEffectReturn{}; } Parameter::Specific getDefaultParamSpecific() { - Volume vol = Volume::make(-9600); + Volume vol = Volume::make(kMinLevel); Parameter::Specific specific = Parameter::Specific::make(vol); return specific; } - static const long kInputFrameCount = 0x100, kOutputFrameCount = 0x100; + Parameter createVolumeParam(int param, Volume::Tag volTag) { + return Parameter::make( + Parameter::Specific::make( + (volTag == Volume::mute) ? Volume::make(param) + : Volume::make(param))); + } + + void initFrameCount() { + int channelCount = getChannelCount( + AudioChannelLayout::make(kDefaultChannelLayout)); + mInputFrameCount = kBufferSize / channelCount; + mOutputFrameCount = kBufferSize / channelCount; + } + + bool isLevelValid(int level) { + auto vol = Volume::make(level); + return isParameterValid(vol, mDescriptor); + } + + void setAndVerifyParameters(Volume::Tag volTag, int param, binder_exception_t expected) { + auto expectedParam = createVolumeParam(param, volTag); + EXPECT_STATUS(expected, mEffect->setParameter(expectedParam)) << expectedParam.toString(); + + if (expected == EX_NONE) { + Volume::Id volId = Volume::Id::make(volTag); + + auto id = Parameter::Id::make(volId); + // get parameter + Parameter getParam; + // if set success, then get should match + EXPECT_STATUS(expected, mEffect->getParameter(id, &getParam)); + EXPECT_EQ(expectedParam, getParam) << "\nexpectedParam:" << expectedParam.toString() + << "\ngetParam:" << getParam.toString(); + } + } + + static constexpr int kSamplingFrequency = 44100; + static constexpr int kDurationMilliSec = 2000; + static constexpr int kBufferSize = kSamplingFrequency * kDurationMilliSec / 1000; + static constexpr int kMinLevel = -96; + static constexpr int kDefaultChannelLayout = AudioChannelLayout::LAYOUT_STEREO; + long mInputFrameCount, mOutputFrameCount; std::shared_ptr mFactory; std::shared_ptr mEffect; + IEffect::OpenEffectReturn mOpenEffectReturn; Descriptor mDescriptor; +}; +/** + * Here we focus on specific parameter checking, general IEffect interfaces testing performed in + * VtsAudioEffectTargetTest. + */ +enum ParamName { PARAM_INSTANCE_NAME, PARAM_LEVEL, PARAM_MUTE }; +using VolumeParamTestParam = + std::tuple, Descriptor>, int, bool>; + +class VolumeParamTest : public ::testing::TestWithParam, + public VolumeControlHelper { + public: + VolumeParamTest() + : mParamLevel(std::get(GetParam())), + mParamMute(std::get(GetParam())) { + std::tie(mFactory, mDescriptor) = std::get(GetParam()); + } + + void SetUp() override { ASSERT_NO_FATAL_FAILURE(SetUpVolumeControl()); } + void TearDown() override { TearDownVolumeControl(); } + int mParamLevel = 0; bool mParamMute = false; +}; - void SetAndGetParameters() { - for (auto& it : mTags) { - auto& tag = it.first; - auto& vol = it.second; - - // validate parameter - Descriptor desc; - ASSERT_STATUS(EX_NONE, mEffect->getDescriptor(&desc)); - const bool valid = isParameterValid(it.second, desc); - const binder_exception_t expected = valid ? EX_NONE : EX_ILLEGAL_ARGUMENT; - - // set parameter - Parameter expectParam; - Parameter::Specific specific; - specific.set(vol); - expectParam.set(specific); - EXPECT_STATUS(expected, mEffect->setParameter(expectParam)) << expectParam.toString(); - - // only get if parameter is in range and set success - if (expected == EX_NONE) { - Parameter getParam; - Parameter::Id id; - Volume::Id volId; - volId.set(tag); - id.set(volId); - EXPECT_STATUS(EX_NONE, mEffect->getParameter(id, &getParam)); - - EXPECT_EQ(expectParam, getParam) << "\nexpect:" << expectParam.toString() - << "\ngetParam:" << getParam.toString(); - } - } +TEST_P(VolumeParamTest, SetAndGetParams) { + ASSERT_NO_FATAL_FAILURE( + setAndVerifyParameters(Volume::levelDb, mParamLevel, + isLevelValid(mParamLevel) ? EX_NONE : EX_ILLEGAL_ARGUMENT)); + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(Volume::mute, mParamMute, EX_NONE)); +} + +using VolumeDataTestParam = std::pair, Descriptor>; + +class VolumeDataTest : public ::testing::TestWithParam, + public VolumeControlHelper { + public: + VolumeDataTest() { + std::tie(mFactory, mDescriptor) = GetParam(); + mInput.resize(kBufferSize); + mInputMag.resize(mTestFrequencies.size()); + mBinOffsets.resize(mTestFrequencies.size()); + roundToFreqCenteredToFftBin(mTestFrequencies, mBinOffsets, kBinWidth); + generateMultiTone(mTestFrequencies, mInput, kSamplingFrequency); + mInputMag = calculateMagnitude(mInput, mBinOffsets, kNPointFFT); } - void addLevelParam(int level) { - Volume vol; - vol.set(level); - mTags.push_back({Volume::levelDb, vol}); + std::vector calculatePercentageDiff(const std::vector& outputMag) { + std::vector percentages(mTestFrequencies.size()); + + for (size_t i = 0; i < mInputMag.size(); i++) { + float diff = mInputMag[i] - outputMag[i]; + percentages[i] = std::round(diff / mInputMag[i] * 100); + } + return percentages; } - void addMuteParam(bool mute) { - Volume vol; - vol.set(mute); - mTags.push_back({Volume::mute, vol}); + // Convert Decibel value to Percentage + int percentageDb(float level) { return std::round((1 - (pow(10, level / 20))) * 100); } + + void SetUp() override { + SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags); + ASSERT_NO_FATAL_FAILURE(SetUpVolumeControl()); + } + void TearDown() override { + SKIP_TEST_IF_DATA_UNSUPPORTED(mDescriptor.common.flags); + TearDownVolumeControl(); } - private: - std::vector> mTags; - void CleanUp() { mTags.clear(); } + static constexpr int kMaxAudioSample = 1; + static constexpr int kTransitionDuration = 300; + static constexpr int kNPointFFT = 32768; + static constexpr float kBinWidth = (float)kSamplingFrequency / kNPointFFT; + static constexpr size_t offset = kSamplingFrequency * kTransitionDuration / 1000; + static constexpr float kBaseLevel = 0; + std::vector mTestFrequencies = {100, 1000}; + std::vector mInput; + std::vector mInputMag; + std::vector mBinOffsets; }; -TEST_P(VolumeParamTest, SetAndGetLevel) { - EXPECT_NO_FATAL_FAILURE(addLevelParam(mParamLevel)); - SetAndGetParameters(); +TEST_P(VolumeDataTest, ApplyLevelMuteUnmute) { + std::vector output(kBufferSize); + std::vector diffs(mTestFrequencies.size()); + std::vector outputMag(mTestFrequencies.size()); + + if (!isLevelValid(kBaseLevel)) { + GTEST_SKIP() << "Volume Level not supported, skipping the test\n"; + } + + // Apply Volume Level + + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(Volume::levelDb, kBaseLevel, EX_NONE)); + ASSERT_NO_FATAL_FAILURE(processAndWriteToOutput(mInput, output, mEffect, &mOpenEffectReturn)); + + outputMag = calculateMagnitude(output, mBinOffsets, kNPointFFT); + diffs = calculatePercentageDiff(outputMag); + + for (size_t i = 0; i < diffs.size(); i++) { + ASSERT_EQ(diffs[i], percentageDb(kBaseLevel)); + } + + // Apply Mute + + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(Volume::mute, true /*mute*/, EX_NONE)); + ASSERT_NO_FATAL_FAILURE(processAndWriteToOutput(mInput, output, mEffect, &mOpenEffectReturn)); + + std::vector subOutputMute(output.begin() + offset, output.end()); + outputMag = calculateMagnitude(subOutputMute, mBinOffsets, kNPointFFT); + diffs = calculatePercentageDiff(outputMag); + + for (size_t i = 0; i < diffs.size(); i++) { + ASSERT_EQ(diffs[i], percentageDb(kMinLevel /*Mute*/)); + } + + // Verifying Fade out + outputMag = calculateMagnitude(output, mBinOffsets, kNPointFFT); + diffs = calculatePercentageDiff(outputMag); + + for (size_t i = 0; i < diffs.size(); i++) { + ASSERT_LT(diffs[i], percentageDb(kMinLevel /*Mute*/)); + } + + // Apply Unmute + + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(Volume::mute, false /*unmute*/, EX_NONE)); + ASSERT_NO_FATAL_FAILURE(processAndWriteToOutput(mInput, output, mEffect, &mOpenEffectReturn)); + + std::vector subOutputUnmute(output.begin() + offset, output.end()); + + outputMag = calculateMagnitude(subOutputUnmute, mBinOffsets, kNPointFFT); + diffs = calculatePercentageDiff(outputMag); + + for (size_t i = 0; i < diffs.size(); i++) { + ASSERT_EQ(diffs[i], percentageDb(kBaseLevel)); + } + + // Verifying Fade in + outputMag = calculateMagnitude(output, mBinOffsets, kNPointFFT); + diffs = calculatePercentageDiff(outputMag); + + for (size_t i = 0; i < diffs.size(); i++) { + ASSERT_GT(diffs[i], percentageDb(kBaseLevel)); + } } -TEST_P(VolumeParamTest, SetAndGetMute) { - EXPECT_NO_FATAL_FAILURE(addMuteParam(mParamMute)); - SetAndGetParameters(); +TEST_P(VolumeDataTest, DecreasingLevels) { + std::vector decreasingLevels = {-24, -48, -96}; + std::vector baseOutput(kBufferSize); + std::vector baseDiffs(mTestFrequencies.size()); + std::vector outputMag(mTestFrequencies.size()); + + if (!isLevelValid(kBaseLevel)) { + GTEST_SKIP() << "Volume Level not supported, skipping the test\n"; + } + + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(Volume::levelDb, kBaseLevel, EX_NONE)); + ASSERT_NO_FATAL_FAILURE( + processAndWriteToOutput(mInput, baseOutput, mEffect, &mOpenEffectReturn)); + + outputMag = calculateMagnitude(baseOutput, mBinOffsets, kNPointFFT); + baseDiffs = calculatePercentageDiff(outputMag); + + for (int level : decreasingLevels) { + std::vector output(kBufferSize); + std::vector diffs(mTestFrequencies.size()); + + // Skipping the further steps for unnsupported level values + if (!isLevelValid(level)) { + continue; + } + ASSERT_NO_FATAL_FAILURE(setAndVerifyParameters(Volume::levelDb, level, EX_NONE)); + ASSERT_NO_FATAL_FAILURE( + processAndWriteToOutput(mInput, output, mEffect, &mOpenEffectReturn)); + + outputMag = calculateMagnitude(output, mBinOffsets, kNPointFFT); + diffs = calculatePercentageDiff(outputMag); + + // Decrease in volume level results in greater magnitude difference + for (size_t i = 0; i < diffs.size(); i++) { + ASSERT_GT(diffs[i], baseDiffs[i]); + } + + baseDiffs = diffs; + } } std::vector, Descriptor>> kDescPair; @@ -158,6 +312,20 @@ INSTANTIATE_TEST_SUITE_P( GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(VolumeParamTest); +INSTANTIATE_TEST_SUITE_P(VolumeTest, VolumeDataTest, + testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors( + IFactory::descriptor, getEffectTypeUuidVolume())), + [](const testing::TestParamInfo& info) { + auto descriptor = info.param; + std::string name = getPrefix(descriptor.second); + std::replace_if( + name.begin(), name.end(), + [](const char c) { return !std::isalnum(c); }, '_'); + return name; + }); + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(VolumeDataTest); + int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); ::testing::UnitTest::GetInstance()->listeners().Append(new TestExecutionTracer()); diff --git a/audio/common/2.0/Android.bp b/audio/common/2.0/Android.bp index f27eb9381d0634032ba6496bba8eb5ef6f14d97f..450e04f38d40fb6c10c5053ed537d1c8a2ca686d 100644 --- a/audio/common/2.0/Android.bp +++ b/audio/common/2.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/4.0/Android.bp b/audio/common/4.0/Android.bp index ea88b06f3dbd0b6d4da6edda982bd3999c95ecd9..8a0fe7265698c601928cab532b5499409255323c 100644 --- a/audio/common/4.0/Android.bp +++ b/audio/common/4.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/5.0/Android.bp b/audio/common/5.0/Android.bp index a6bb331cb0351b5551c63dc88a86fe0bfdbe943e..02f66a341c31813696dafa185d6f27bac65a10f8 100644 --- a/audio/common/5.0/Android.bp +++ b/audio/common/5.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/6.0/Android.bp b/audio/common/6.0/Android.bp index 91721fc7e9620aae0f02c5fc0f5576cea503d5c7..fd4a1f5caa335133fd9738dddd29eb73e49632a8 100644 --- a/audio/common/6.0/Android.bp +++ b/audio/common/6.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/7.0/Android.bp b/audio/common/7.0/Android.bp index 2f7665e5024df7fb12f98556c87c4777729e285d..5ef59ad04b464e8d1770db0fb5cd0bcf6987af9f 100644 --- a/audio/common/7.0/Android.bp +++ b/audio/common/7.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/7.0/example/Android.bp b/audio/common/7.0/example/Android.bp index a85e4faae8c32704ad47479b11585cd181038992..1d546977bc63d2a8129458f2f4afc0a0615e7f95 100644 --- a/audio/common/7.0/example/Android.bp +++ b/audio/common/7.0/example/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/7.1/Android.bp b/audio/common/7.1/Android.bp index a2575104e6f1c4cf762ecbf595370efddeed437b..57ce2d7a6fbff216562aa30fb00d42d24b8b2c81 100644 --- a/audio/common/7.1/Android.bp +++ b/audio/common/7.1/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/all-versions/default/Android.bp b/audio/common/all-versions/default/Android.bp index 95436748eec763156d4dbd20d70325f82707c874..2fcc3c4d773ce392ad945a80b9fba7c1f41ede74 100644 --- a/audio/common/all-versions/default/Android.bp +++ b/audio/common/all-versions/default/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/all-versions/default/service/Android.bp b/audio/common/all-versions/default/service/Android.bp index d513062c256ac14fb0a13714facd9155d426da4a..e2e0a9379890df5ac33cfa2ba53b1dbc3b5692b6 100644 --- a/audio/common/all-versions/default/service/Android.bp +++ b/audio/common/all-versions/default/service/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/all-versions/test/utility/Android.bp b/audio/common/all-versions/test/utility/Android.bp index c6a3963cb088fd4b5744af420f5f4ca237943dec..7fd368873dc9571b103f8417e72e1699efabae27 100644 --- a/audio/common/all-versions/test/utility/Android.bp +++ b/audio/common/all-versions/test/utility/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/common/all-versions/util/Android.bp b/audio/common/all-versions/util/Android.bp index 91de6ecbff57f8e93f3c338ea8b216e108d1bcc5..f9ada08bb38904e57f04873b3acbadaeabe7cc12 100644 --- a/audio/common/all-versions/util/Android.bp +++ b/audio/common/all-versions/util/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/core/all-versions/default/Android.bp b/audio/core/all-versions/default/Android.bp index 3536561fd3135226d28caa701521a1c0e1572a27..c55eef454638451116ca57584b27897aa1202035 100644 --- a/audio/core/all-versions/default/Android.bp +++ b/audio/core/all-versions/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/core/all-versions/default/util/Android.bp b/audio/core/all-versions/default/util/Android.bp index b96f2d2b873ff9fdf11232cd67f25b6d6980aa4c..08ddb5930f580ddc253ec155b95da8a49efd332b 100644 --- a/audio/core/all-versions/default/util/Android.bp +++ b/audio/core/all-versions/default/util/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/core/all-versions/vts/functional/Android.bp b/audio/core/all-versions/vts/functional/Android.bp index 9d93bb0fff2c824e38991a08235c5b59502a747c..9e398e4ccb3b55caec7188411d69f3de5f6e1192 100644 --- a/audio/core/all-versions/vts/functional/Android.bp +++ b/audio/core/all-versions/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/2.0/Android.bp b/audio/effect/2.0/Android.bp index f2f512433b8b7ec32a6fa588931bc954058af432..c236c1692e2b87fe747479e449b0ab1798c61e04 100644 --- a/audio/effect/2.0/Android.bp +++ b/audio/effect/2.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/2.0/xml/Android.bp b/audio/effect/2.0/xml/Android.bp index d015639e5d31d5b36e2778896410d09ac0b293be..cddcfe9544ae105331d94c70a45a36e6b1e98bd0 100644 --- a/audio/effect/2.0/xml/Android.bp +++ b/audio/effect/2.0/xml/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/4.0/Android.bp b/audio/effect/4.0/Android.bp index 1eb754a922d282180fb52a272174ff220c9726e4..cae91c1f432dd75f274fbc02ac02d5ad19be0daf 100644 --- a/audio/effect/4.0/Android.bp +++ b/audio/effect/4.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/4.0/xml/Android.bp b/audio/effect/4.0/xml/Android.bp index bdffe6065b01937cd3e19a4858890801640c9c90..a45eecc04905fabcd5ce0aa5d44b5c93a47ce80b 100644 --- a/audio/effect/4.0/xml/Android.bp +++ b/audio/effect/4.0/xml/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/5.0/Android.bp b/audio/effect/5.0/Android.bp index 126964c9b53525fa82a2ef571b5087a195b8dd64..ef3a28b538e11a76d0a5d1137b30c4a492a8e79c 100644 --- a/audio/effect/5.0/Android.bp +++ b/audio/effect/5.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/5.0/xml/Android.bp b/audio/effect/5.0/xml/Android.bp index ed12e38b5cbcd1e66c3873c30223992b4e276ff2..7a0b9584c242246c7b171353510f529831d95c68 100644 --- a/audio/effect/5.0/xml/Android.bp +++ b/audio/effect/5.0/xml/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/6.0/Android.bp b/audio/effect/6.0/Android.bp index 8d15d0942fb29fcd2ad488d416c0f94f2d719a1d..8c52ebc20664d3c869645ec1d874ec9d0736cd6a 100644 --- a/audio/effect/6.0/Android.bp +++ b/audio/effect/6.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/6.0/xml/Android.bp b/audio/effect/6.0/xml/Android.bp index f139341e94a79028806467d7d76496d9b34de50f..9e1533c2ac0895fa641b3e702f2b430755d0e4c1 100644 --- a/audio/effect/6.0/xml/Android.bp +++ b/audio/effect/6.0/xml/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/7.0/Android.bp b/audio/effect/7.0/Android.bp index 7399cdbddd7db070e657e432128f3780c3698987..248655edfa45d6b194f69305f77f59599ddd67b4 100644 --- a/audio/effect/7.0/Android.bp +++ b/audio/effect/7.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/7.0/xml/Android.bp b/audio/effect/7.0/xml/Android.bp index 978e4341e2fbdd5e0f7fb2b346d75698dc0597d9..82ed18b39e62988952eb6b462b5a9d63847ba194 100644 --- a/audio/effect/7.0/xml/Android.bp +++ b/audio/effect/7.0/xml/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/all-versions/default/Android.bp b/audio/effect/all-versions/default/Android.bp index a3c3ed6882a90648ef6438783879557eaff57505..cea085cc69ef5845e26c99fe9f320ff861d809a0 100644 --- a/audio/effect/all-versions/default/Android.bp +++ b/audio/effect/all-versions/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/all-versions/default/util/Android.bp b/audio/effect/all-versions/default/util/Android.bp index 143094d604c98c2c8206b6be277462c4462083ee..53dd9ac9414dda10f7893d0e95af87b4fba0c0a5 100644 --- a/audio/effect/all-versions/default/util/Android.bp +++ b/audio/effect/all-versions/default/util/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/effect/all-versions/vts/functional/Android.bp b/audio/effect/all-versions/vts/functional/Android.bp index 3b15ed4658547f2e54be4a150f6f346b355065da..4c07aad5ed6291e0a6366f6c0453c3511ef3605c 100644 --- a/audio/effect/all-versions/vts/functional/Android.bp +++ b/audio/effect/all-versions/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/policy/1.0/vts/functional/Android.bp b/audio/policy/1.0/vts/functional/Android.bp index cccb2fc6f033800fe71ec508eefd5cdec2468070..b32c223183ce6f38e0c56ab50aa42c568b357450 100644 --- a/audio/policy/1.0/vts/functional/Android.bp +++ b/audio/policy/1.0/vts/functional/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/policy/1.0/xml/Android.bp b/audio/policy/1.0/xml/Android.bp index 403278cbba790c8c3170ae9aa19279dd33320815..d64457007046804e94e228e9a099e45585013275 100644 --- a/audio/policy/1.0/xml/Android.bp +++ b/audio/policy/1.0/xml/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/audio/policy/1.0/xml/pfw_schemas/Android.bp b/audio/policy/1.0/xml/pfw_schemas/Android.bp index 225c06577fc79c3b633a8ac33822d75b4982912a..18284e97768679f4a4727377c4e03e532021ff74 100644 --- a/audio/policy/1.0/xml/pfw_schemas/Android.bp +++ b/audio/policy/1.0/xml/pfw_schemas/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/automotive/audiocontrol/aidl/Android.bp b/automotive/audiocontrol/aidl/Android.bp index 86b63a6d9f050ed7e1f63a873b5add6cf092acf0..bedf5e4a962c6004c38338c3b94752ff24ad865f 100644 --- a/automotive/audiocontrol/aidl/Android.bp +++ b/automotive/audiocontrol/aidl/Android.bp @@ -50,9 +50,16 @@ aidl_interface { "android.media.audio.common.types-V2", ], }, + { + version: "4", + imports: [ + "android.media.audio.common.types-V3", + "android.hardware.audio.common-V3", + ], + }, ], - frozen: false, + frozen: true, } diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/.hash b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/.hash new file mode 100644 index 0000000000000000000000000000000000000000..8d73c8afd10fa2a0d83090cf109b8438a744029f --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/.hash @@ -0,0 +1 @@ +ee20ab2e2d0ffb894fc0b2ca33b72796d636793a diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioFocusChange.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioFocusChange.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8eab521ce4abd0c356e9dcb6088f86a6f0de17c9 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioFocusChange.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@Backing(type="int") @VintfStability +enum AudioFocusChange { + NONE = 0, + GAIN = 1, + GAIN_TRANSIENT = 2, + GAIN_TRANSIENT_MAY_DUCK = 3, + GAIN_TRANSIENT_EXCLUSIVE = 4, + LOSS = ((-1) * GAIN) /* -1 */, + LOSS_TRANSIENT = ((-1) * GAIN_TRANSIENT) /* -2 */, + LOSS_TRANSIENT_CAN_DUCK = ((-1) * GAIN_TRANSIENT_MAY_DUCK) /* -3 */, +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioGainConfigInfo.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioGainConfigInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..91ce0352293852bc924489ce2d425a221cf50961 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/AudioGainConfigInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +parcelable AudioGainConfigInfo { + int zoneId; + String devicePortAddress; + int volumeIndex; +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/DuckingInfo.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/DuckingInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..23abb46bd759494a56317ad873d52fa5716b976c --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/DuckingInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +parcelable DuckingInfo { + int zoneId; + String[] deviceAddressesToDuck; + String[] deviceAddressesToUnduck; + String[] usagesHoldingFocus; + @nullable android.hardware.audio.common.PlaybackTrackMetadata[] playbackMetaDataHoldingFocus; +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioControl.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioControl.aidl new file mode 100644 index 0000000000000000000000000000000000000000..23fa20e3b45c704b764ae894ce207fed0b74fd4f --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioControl.aidl @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//** + * Important note on Metadata: + * Metadata qualifies a playback track for an output stream. + * This is highly closed to {@link android.media.AudioAttributes}. + * It allows to identify the audio stream rendered / requesting / abandonning the focus. + * + * AudioControl 1.0 was limited to identification through {@code AttributeUsage} listed as + * {@code audioUsage} in audio_policy_configuration.xsd. + * + * Any new OEM needs would not be possible without extension. + * + * Relying on {@link android.hardware.automotive.audiocontrol.PlaybackTrackMetadata} allows + * to use a combination of {@code AttributeUsage}, {@code AttributeContentType} and + * {@code AttributeTags} to identify the use case / routing thanks to + * {@link android.media.audiopolicy.AudioProductStrategy}. + * The belonging to a strategy is deduced by an AOSP logic (in sync at native and java layer). + * + * IMPORTANT NOTE ON TAGS: + * To limit the possibilies and prevent from confusion, we expect the String to follow + * a given formalism that will be enforced. + * + * 1 / By convention, tags shall be a "key=value" pair. + * Vendor must namespace their tag's key (for example com.google.strategy=VR) to avoid conflicts. + * vendor specific applications and must be prefixed by "VX_". Vendor must + * + * 2 / Tags reported here shall be the same as the tags used to define a given + * {@link android.media.audiopolicy.AudioProductStrategy} and so in + * audio_policy_engine_configuration.xml file. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +interface IAudioControl { + /** + * @deprecated use {@link android.hardware.audio.common.PlaybackTrackMetadata} instead. + */ + oneway void onAudioFocusChange(in String usage, in int zoneId, in android.hardware.automotive.audiocontrol.AudioFocusChange focusChange); + oneway void onDevicesToDuckChange(in android.hardware.automotive.audiocontrol.DuckingInfo[] duckingInfos); + oneway void onDevicesToMuteChange(in android.hardware.automotive.audiocontrol.MutingInfo[] mutingInfos); + oneway void registerFocusListener(in android.hardware.automotive.audiocontrol.IFocusListener listener); + oneway void setBalanceTowardRight(in float value); + oneway void setFadeTowardFront(in float value); + oneway void onAudioFocusChangeWithMetaData(in android.hardware.audio.common.PlaybackTrackMetadata playbackMetaData, in int zoneId, in android.hardware.automotive.audiocontrol.AudioFocusChange focusChange); + oneway void setAudioDeviceGainsChanged(in android.hardware.automotive.audiocontrol.Reasons[] reasons, in android.hardware.automotive.audiocontrol.AudioGainConfigInfo[] gains); + oneway void registerGainCallback(in android.hardware.automotive.audiocontrol.IAudioGainCallback callback); + void setModuleChangeCallback(in android.hardware.automotive.audiocontrol.IModuleChangeCallback callback); + void clearModuleChangeCallback(); +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioGainCallback.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioGainCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..17a087f20c781375414fafb0df27c730d22519ff --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IAudioGainCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +interface IAudioGainCallback { + oneway void onAudioDeviceGainsChanged(in android.hardware.automotive.audiocontrol.Reasons[] reasons, in android.hardware.automotive.audiocontrol.AudioGainConfigInfo[] gains); +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IFocusListener.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IFocusListener.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3e175529fa1d233f3706e8c5c6f3d6e65c1be9a2 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IFocusListener.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +interface IFocusListener { + oneway void abandonAudioFocus(in String usage, in int zoneId); + oneway void requestAudioFocus(in String usage, in int zoneId, in android.hardware.automotive.audiocontrol.AudioFocusChange focusGain); + oneway void abandonAudioFocusWithMetaData(in android.hardware.audio.common.PlaybackTrackMetadata playbackMetaData, in int zoneId); + oneway void requestAudioFocusWithMetaData(in android.hardware.audio.common.PlaybackTrackMetadata playbackMetaData, in int zoneId, in android.hardware.automotive.audiocontrol.AudioFocusChange focusGain); +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IModuleChangeCallback.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IModuleChangeCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2bbb9362b983a6cf611e93a1c5fc4a25f4d4ce13 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/IModuleChangeCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +interface IModuleChangeCallback { + oneway void onAudioPortsChanged(in android.media.audio.common.AudioPort[] audioPorts); +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/MutingInfo.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/MutingInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b25ed0f1e92e6daba4e8ee50967b221e117cc124 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/MutingInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@VintfStability +parcelable MutingInfo { + int zoneId; + String[] deviceAddressesToMute; + String[] deviceAddressesToUnmute; +} diff --git a/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/Reasons.aidl b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/Reasons.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8d669850a5ff89b0bb10b1d21153a187e084f237 --- /dev/null +++ b/automotive/audiocontrol/aidl/aidl_api/android.hardware.automotive.audiocontrol/4/android/hardware/automotive/audiocontrol/Reasons.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.audiocontrol; +@Backing(type="int") @VintfStability +enum Reasons { + FORCED_MASTER_MUTE = 0x1, + REMOTE_MUTE = 0x2, + TCU_MUTE = 0x4, + ADAS_DUCKING = 0x8, + NAV_DUCKING = 0x10, + PROJECTION_DUCKING = 0x20, + THERMAL_LIMITATION = 0x40, + SUSPEND_EXIT_VOL_LIMITATION = 0x80, + EXTERNAL_AMP_VOL_FEEDBACK = 0x100, + OTHER = 0x80000000, +} diff --git a/automotive/audiocontrol/aidl/default/Android.bp b/automotive/audiocontrol/aidl/default/Android.bp index 435c2d63de3a78c40de8a246775f959e47a43971..a48d22893eb10a984635c65c8bc62e5511c13eaa 100644 --- a/automotive/audiocontrol/aidl/default/Android.bp +++ b/automotive/audiocontrol/aidl/default/Android.bp @@ -27,11 +27,13 @@ cc_binary { init_rc: ["audiocontrol-default.rc"], vintf_fragments: ["audiocontrol-default.xml"], vendor: true, + defaults: [ + "latest_android_hardware_audio_common_ndk_shared", + "latest_android_hardware_automotive_audiocontrol_ndk_shared", + ], shared_libs: [ "android.hardware.audio.common@7.0-enums", - "android.hardware.audio.common-V1-ndk", "android.frameworks.automotive.powerpolicy-V2-ndk", - "android.hardware.automotive.audiocontrol-V3-ndk", "libbase", "libbinder_ndk", "libcutils", diff --git a/automotive/audiocontrol/aidl/default/AudioControl.cpp b/automotive/audiocontrol/aidl/default/AudioControl.cpp index cf7307d3475110b504f2de1afaba78dabca295d4..7e7e145d374451d571dc73cfef1c6a68b27449fd 100644 --- a/automotive/audiocontrol/aidl/default/AudioControl.cpp +++ b/automotive/audiocontrol/aidl/default/AudioControl.cpp @@ -244,15 +244,15 @@ ndk::ScopedAStatus AudioControl::onDevicesToMuteChange( template static inline std::string toString(const std::vector& in_values) { return std::accumulate(std::begin(in_values), std::end(in_values), std::string{}, - [](std::string& ls, const aidl_type& rs) { - return ls += (ls.empty() ? "" : ",") + rs.toString(); + [](const std::string& ls, const aidl_type& rs) { + return ls + (ls.empty() ? "" : ",") + rs.toString(); }); } template static inline std::string toEnumString(const std::vector& in_values) { return std::accumulate(std::begin(in_values), std::end(in_values), std::string{}, - [](std::string& ls, const aidl_enum_type& rs) { - return ls += (ls.empty() ? "" : ",") + toString(rs); + [](const std::string& ls, const aidl_enum_type& rs) { + return ls + (ls.empty() ? "" : ",") + toString(rs); }); } diff --git a/automotive/can/1.0/default/CanSocket.h b/automotive/can/1.0/default/CanSocket.h index fd956b50f6d141a1aaf9244274a1131c5a6fe3df..f3e8e6065f7bb4f184c528cdea3e5fa75b4fa035 100644 --- a/automotive/can/1.0/default/CanSocket.h +++ b/automotive/can/1.0/default/CanSocket.h @@ -22,6 +22,7 @@ #include #include +#include #include namespace android::hardware::automotive::can::V1_0::implementation { diff --git a/automotive/can/1.0/default/libnetdevice/ifreqs.h b/automotive/can/1.0/default/libnetdevice/ifreqs.h index d8d6fe0cd4962582483e1db0f61bba6e9b978963..aa7030bccd2039eba3b22d48ea206590421129a1 100644 --- a/automotive/can/1.0/default/libnetdevice/ifreqs.h +++ b/automotive/can/1.0/default/libnetdevice/ifreqs.h @@ -18,6 +18,7 @@ #include +#include #include namespace android::netdevice::ifreqs { diff --git a/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp b/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp index fe749f6c1fd55f8d6eb05fbaec4a78858cfdaa99..413b4b1c54ada7f66f7227931468ad7f7f2a8698 100644 --- a/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp +++ b/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp @@ -27,6 +27,8 @@ #include #include +#include +#include #include namespace android::netdevice { diff --git a/automotive/can/1.0/default/libnl++/common.cpp b/automotive/can/1.0/default/libnl++/common.cpp index 23c2d94a6d97a0a65db4ecee1af12477b69284c9..1287bb52f0004d50543e1481a430bd6e06ee8cc4 100644 --- a/automotive/can/1.0/default/libnl++/common.cpp +++ b/automotive/can/1.0/default/libnl++/common.cpp @@ -20,6 +20,8 @@ #include +#include + namespace android::nl { unsigned int nametoindex(const std::string& ifname) { diff --git a/automotive/can/aidl/default/tools/configurator/canprototools.cpp b/automotive/can/aidl/default/tools/configurator/canprototools.cpp index 84edd94bc5921cebf324bf18f188ba4dc23e1153..ead53c181470db4334dc43c8214110f84accc84a 100644 --- a/automotive/can/aidl/default/tools/configurator/canprototools.cpp +++ b/automotive/can/aidl/default/tools/configurator/canprototools.cpp @@ -48,23 +48,18 @@ static std::optional readString(std::istream& s, std::streamsize n) char buff[n]; auto got = s.read(buff, n).gcount(); if (!s.good() && !s.eof()) return std::nullopt; - return std::string(buff, 0, std::min(n, got)); + return std::string(buff, got); } -/* - parseConfigFile *used to* contain the body of parseConfigStream. However, it seems there's some - sort of odd behavior with IstreamInputStream and/or TextFormat::Parse, which causes HW Address - Sanitizer to flag a "tag-mismatch" in this function. Having the ifstream defined in a wrapper - function seems to solve this problem. The exact cause of this problem is yet unknown, but probably - lies somewhere in the protobuf implementation. -*/ -static __attribute__((noinline)) std::optional parseConfigStream( - std::ifstream& cfg_stream) { +std::optional parseConfigFile(const std::string& filepath) { + std::ifstream cfg_stream(filepath); + + // text headers that would be present in a plaintext proto config file. static const std::array text_headers = {"buses", "#", "controller"}; auto cfg_file_snippet = readString(cfg_stream, 10); if (!cfg_file_snippet.has_value()) { - LOG(ERROR) << "Can't read config from stream (maybe failed to open file?)"; + LOG(ERROR) << "Can't open " << filepath << " for reading"; return std::nullopt; } cfg_stream.seekg(0); @@ -82,25 +77,16 @@ static __attribute__((noinline)) std::optional parseConfigStream( if (text_format) { google::protobuf::io::IstreamInputStream pb_stream(&cfg_stream); if (!google::protobuf::TextFormat::Parse(&pb_stream, &config)) { - LOG(ERROR) << "Parsing text format config failed"; + LOG(ERROR) << "Failed to parse (text format) " << filepath; return std::nullopt; } } else if (!config.ParseFromIstream(&cfg_stream)) { - LOG(ERROR) << "Parsing binary format config failed"; + LOG(ERROR) << "Failed to parse (binary format) " << filepath; return std::nullopt; } return config; } -std::optional parseConfigFile(const std::string& filepath) { - std::ifstream cfg_stream(filepath); - auto cfg_maybe = parseConfigStream(cfg_stream); - if (!cfg_maybe.has_value()) { - LOG(ERROR) << "Failed to parse " << filepath; - } - return cfg_maybe; -} - std::optional fromPbBus(const Bus& pb_bus) { BusConfig bus_cfg = {}; bus_cfg.name = pb_bus.name(); diff --git a/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp b/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp index 03f256ec8125308b9eb3c286e06f6e41d22c9773..ff7f41c119c1493ec3993f6bf8060e620ac8ac7b 100644 --- a/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp +++ b/automotive/evs/1.1/vts/functional/VtsHalEvsV1_1TargetTest.cpp @@ -2010,6 +2010,13 @@ TEST_P(EvsHidlTest, CameraUseStreamConfigToDisplay) { // Test each reported camera for (auto&& cam: cameraInfo) { + bool isLogicalCam = false; + getPhysicalCameraIds(cam.v1.cameraId, isLogicalCam); + if (isLogicalCam) { + LOG(INFO) << "Skip a logical device " << cam.v1.cameraId; + continue; + } + // Request exclusive access to the EVS display sp pDisplay = pEnumerator->openDisplay(); ASSERT_NE(pDisplay, nullptr); diff --git a/automotive/evs/aidl/impl/default/src/EvsVideoEmulatedCamera.cpp b/automotive/evs/aidl/impl/default/src/EvsVideoEmulatedCamera.cpp index 8181e4733e98e79f594416d4004baedd96fea9d4..e3f7b5e125eb7de8617e7da37e4cf1607bfddaaa 100644 --- a/automotive/evs/aidl/impl/default/src/EvsVideoEmulatedCamera.cpp +++ b/automotive/evs/aidl/impl/default/src/EvsVideoEmulatedCamera.cpp @@ -222,10 +222,9 @@ void EvsVideoEmulatedCamera::onCodecOutputAvailable(const int32_t index, // Lock our output buffer for writing uint8_t* pixels = nullptr; - int32_t bytesPerStride = 0; auto& mapper = ::android::GraphicBufferMapper::get(); mapper.lock(renderBufferHandle, GRALLOC_USAGE_SW_WRITE_OFTEN | GRALLOC_USAGE_SW_READ_NEVER, - ::android::Rect(mWidth, mHeight), (void**)&pixels, nullptr, &bytesPerStride); + ::android::Rect(mWidth, mHeight), (void**)&pixels); // If we failed to lock the pixel buffer, we're about to crash, but log it first if (!pixels) { @@ -247,13 +246,6 @@ void EvsVideoEmulatedCamera::onCodecOutputAvailable(const int32_t index, *(pixels++) = *(v_head++); } - const auto status = - AMediaCodec_releaseOutputBuffer(mVideoCodec.get(), index, /* render = */ false); - if (status != AMEDIA_OK) { - LOG(ERROR) << __func__ - << ": Received error in releasing output buffer. Error code: " << status; - } - // Release our output buffer mapper.unlock(renderBufferHandle); @@ -306,6 +298,12 @@ void EvsVideoEmulatedCamera::renderOneFrame() { return; } onCodecOutputAvailable(codecOutputputBufferIdx, info); + const auto release_status = AMediaCodec_releaseOutputBuffer( + mVideoCodec.get(), codecOutputputBufferIdx, /* render = */ false); + if (release_status != AMEDIA_OK) { + LOG(ERROR) << __func__ + << ": Received error in releasing output buffer. Error code: " << release_status; + } } void EvsVideoEmulatedCamera::initializeParameters() { diff --git a/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp b/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp index 3419b3c98dd21c49dac41f00e8fe400d1a949fd0..477de3147870e9c6075c18a416158dd3d09b03f8 100644 --- a/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp +++ b/automotive/evs/aidl/vts/VtsHalEvsTargetTest.cpp @@ -1399,6 +1399,12 @@ TEST_P(EvsAidlTest, HighPriorityCameraClient) { // Test each reported camera for (auto&& cam : mCameraInfo) { + bool isLogicalCam = false; + if (getPhysicalCameraIds(cam.id, isLogicalCam); isLogicalCam) { + LOG(INFO) << "Skip a logical device, " << cam.id; + continue; + } + // Request available display IDs uint8_t targetDisplayId = 0; std::vector displayIds; @@ -1973,6 +1979,13 @@ TEST_P(EvsAidlTest, CameraStreamExternalBuffering) { // Test each reported camera for (auto&& cam : mCameraInfo) { + bool isLogicalCam = false; + getPhysicalCameraIds(cam.id, isLogicalCam); + if (isLogicalCam) { + LOG(INFO) << "Skip a logical device, " << cam.id; + continue; + } + // Read a target resolution from the metadata Stream targetCfg = getFirstStreamConfiguration( reinterpret_cast(cam.metadata.data())); @@ -2014,9 +2027,6 @@ TEST_P(EvsAidlTest, CameraStreamExternalBuffering) { } } - bool isLogicalCam = false; - getPhysicalCameraIds(cam.id, isLogicalCam); - std::shared_ptr pCam; ASSERT_TRUE(mEnumerator->openCamera(cam.id, targetCfg, &pCam).isOk()); EXPECT_NE(pCam, nullptr); @@ -2027,11 +2037,6 @@ TEST_P(EvsAidlTest, CameraStreamExternalBuffering) { // Request to import buffers int delta = 0; auto status = pCam->importExternalBuffers(buffers, &delta); - if (isLogicalCam) { - ASSERT_FALSE(status.isOk()); - continue; - } - ASSERT_TRUE(status.isOk()); EXPECT_GE(delta, kBuffersToHold); diff --git a/automotive/remoteaccess/Android.bp b/automotive/remoteaccess/Android.bp index e1e90414c6f1e25b4ecf14cbe189645ee1650da3..cb4ea40982c148d9139ebe7595c0a5dfc4c46cab 100644 --- a/automotive/remoteaccess/Android.bp +++ b/automotive/remoteaccess/Android.bp @@ -41,6 +41,11 @@ aidl_interface { version: "1", imports: [], }, + { + version: "2", + imports: [], + }, + ], - frozen: false, + frozen: true, } diff --git a/automotive/remoteaccess/TEST_MAPPING b/automotive/remoteaccess/TEST_MAPPING new file mode 100644 index 0000000000000000000000000000000000000000..81c16c1bb5982396ff9962f73059012551c83f25 --- /dev/null +++ b/automotive/remoteaccess/TEST_MAPPING @@ -0,0 +1,7 @@ +{ + "auto-presubmit": [ + { + "name": "VtsHalAutomotiveRemoteAccess_TargetTest" + } + ] +} diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/.hash b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/.hash new file mode 100644 index 0000000000000000000000000000000000000000..84c1eb425432df66bec8a453bff0d05d08afcbeb --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/.hash @@ -0,0 +1 @@ +65aaf23d323eed468f5d1e9ee4b7029ee6f1288a diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ApState.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ApState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..da4f1d43046d34c5a70693b27b6f99a5441470f8 --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ApState.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.remoteaccess; +@VintfStability +parcelable ApState { + boolean isReadyForRemoteTask; + boolean isWakeupRequired; +} diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5c5917b5b859a8ef9ee45313fc95d5c2105ece8a --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.remoteaccess; +@VintfStability +interface IRemoteAccess { + String getVehicleId(); + String getWakeupServiceName(); + String getProcessorId(); + void setRemoteTaskCallback(android.hardware.automotive.remoteaccess.IRemoteTaskCallback callback); + void clearRemoteTaskCallback(); + void notifyApStateChange(in android.hardware.automotive.remoteaccess.ApState state); + boolean isTaskScheduleSupported(); + android.hardware.automotive.remoteaccess.TaskType[] getSupportedTaskTypesForScheduling(); + void scheduleTask(in android.hardware.automotive.remoteaccess.ScheduleInfo scheduleInfo); + void unscheduleTask(String clientId, String scheduleId); + void unscheduleAllTasks(String clientId); + boolean isTaskScheduled(String clientId, String scheduleId); + List getAllPendingScheduledTasks(String clientId); +} diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..295100ea51c8b0c2b0a0e7349aee9a2120fac3f0 --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.remoteaccess; +@VintfStability +interface IRemoteTaskCallback { + oneway void onRemoteTaskRequested(String clientId, in byte[] data); +} diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ec8733a1bc4002ef870ace27e7a20ab23b0e8820 --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.remoteaccess; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ScheduleInfo { + String clientId; + String scheduleId; + android.hardware.automotive.remoteaccess.TaskType taskType; + byte[] taskData; + int count; + long startTimeInEpochSeconds; + long periodicInSeconds; + const int MAX_TASK_DATA_SIZE_IN_BYTES = 10240; +} diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/TaskType.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/TaskType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..da706269f070407779552dd5f8a467556e649b33 --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/2/android/hardware/automotive/remoteaccess/TaskType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.remoteaccess; +@Backing(type="int") @VintfStability +enum TaskType { + CUSTOM = 0, + ENTER_GARAGE_MODE = 1, +} diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl index ccfa22de4ea9cecb5155dab7df153a11e849c112..5c5917b5b859a8ef9ee45313fc95d5c2105ece8a 100644 --- a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl @@ -41,9 +41,10 @@ interface IRemoteAccess { void clearRemoteTaskCallback(); void notifyApStateChange(in android.hardware.automotive.remoteaccess.ApState state); boolean isTaskScheduleSupported(); + android.hardware.automotive.remoteaccess.TaskType[] getSupportedTaskTypesForScheduling(); void scheduleTask(in android.hardware.automotive.remoteaccess.ScheduleInfo scheduleInfo); void unscheduleTask(String clientId, String scheduleId); void unscheduleAllTasks(String clientId); boolean isTaskScheduled(String clientId, String scheduleId); - List getAllScheduledTasks(String clientId); + List getAllPendingScheduledTasks(String clientId); } diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl index a929e10827bab7fd44d83cbe06736ef281cae648..ec8733a1bc4002ef870ace27e7a20ab23b0e8820 100644 --- a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl @@ -36,8 +36,10 @@ package android.hardware.automotive.remoteaccess; parcelable ScheduleInfo { String clientId; String scheduleId; + android.hardware.automotive.remoteaccess.TaskType taskType; byte[] taskData; int count; long startTimeInEpochSeconds; long periodicInSeconds; + const int MAX_TASK_DATA_SIZE_IN_BYTES = 10240; } diff --git a/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/TaskType.aidl b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/TaskType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..da706269f070407779552dd5f8a467556e649b33 --- /dev/null +++ b/automotive/remoteaccess/aidl_api/android.hardware.automotive.remoteaccess/current/android/hardware/automotive/remoteaccess/TaskType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.remoteaccess; +@Backing(type="int") @VintfStability +enum TaskType { + CUSTOM = 0, + ENTER_GARAGE_MODE = 1, +} diff --git a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl index 4912651294c9535d752d2b669134f89a064615ef..f0468c42b4e99349ee8df7a3a3059a31992eea8d 100644 --- a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl +++ b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteAccess.aidl @@ -19,12 +19,39 @@ package android.hardware.automotive.remoteaccess; import android.hardware.automotive.remoteaccess.ApState; import android.hardware.automotive.remoteaccess.IRemoteTaskCallback; import android.hardware.automotive.remoteaccess.ScheduleInfo; +import android.hardware.automotive.remoteaccess.TaskType; /** - * Interface representing a remote wakeup client. + * The remote access HAL. * - * A wakeup client is a binary outside Android framework that communicates with - * a wakeup server and receives wake up command. + *

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

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

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

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

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

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

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

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

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

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

Must return {@code EX_ILLEGLA_ARGUMENT} if the scheduleInfo is not valid (e.g. count is + * a negative number). */ void scheduleTask(in ScheduleInfo scheduleInfo); @@ -161,5 +204,5 @@ interface IRemoteAccess { * *

The finished scheduled tasks will not be included. */ - List getAllScheduledTasks(String clientId); + List getAllPendingScheduledTasks(String clientId); } diff --git a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl index 2cd7a5db6b52e7ffc605c74b8b1b8a3fe197c616..ee6f900525aa84a5a61fd5d02d68217ce1ac7d3d 100644 --- a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl +++ b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl @@ -22,7 +22,7 @@ package android.hardware.automotive.remoteaccess; @VintfStability interface IRemoteTaskCallback { /** - * A callback that is called when a remote task is requested. + * A callback that is called when a custom type remote task is requested. * * The data is passed down from the remote server to the remote task client * which is an Android application, and is not interpreted/parsed by the diff --git a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl index cf1437bf1b8592a0fd4e0332672cd8478dc147f1..4f2537c773d467ec070120b492fffd7af3c4a806 100644 --- a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl +++ b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/ScheduleInfo.aidl @@ -16,9 +16,12 @@ package android.hardware.automotive.remoteaccess; +import android.hardware.automotive.remoteaccess.TaskType; + @VintfStability @JavaDerive(equals=true, toString=true) parcelable ScheduleInfo { + const int MAX_TASK_DATA_SIZE_IN_BYTES = 10240; /** * The ID used to identify the client this schedule is for. This must be one of the * preconfigured remote access serverless client ID defined in car service resource @@ -30,9 +33,17 @@ parcelable ScheduleInfo { * scheduleId will return {@code EX_ILLEGAL_ARGUMENT}. */ String scheduleId; + /** + * The type for the task. + */ + TaskType taskType; /** * The opaque task data that will be sent back to the remote task client app when the task is * executed. It is not interpreted/parsed by the Android system. + * + *

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

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

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

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

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

If allowed, the external system should set {@code AP_POWER_BOOTUP_REASON} to + * {@code SYSTEM_ENTER_GARAGE_MODE} and then boot up (or resume) the head unit. + */ + ENTER_GARAGE_MODE = 1, +} diff --git a/automotive/remoteaccess/hal/default/Android.bp b/automotive/remoteaccess/hal/default/Android.bp index 97ed2c12f0749d1c18270358e074497d4a7f7d9d..cf173d5e1804af7455e96824ace1a41937b5c30d 100644 --- a/automotive/remoteaccess/hal/default/Android.bp +++ b/automotive/remoteaccess/hal/default/Android.bp @@ -52,9 +52,6 @@ cc_binary { defaults: ["remote-access-hal-defaults"], vintf_fragments: ["remoteaccess-default-service.xml"], init_rc: ["remoteaccess-default-service.rc"], - cflags: [ - "-DGRPC_SERVICE_ADDRESS=\"10.0.2.2:50051\"", - ], } cc_binary { @@ -62,10 +59,6 @@ cc_binary { defaults: ["remote-access-hal-defaults"], vintf_fragments: ["remoteaccess-default-service.xml"], init_rc: ["remoteaccess-tcu-test-service.rc"], - cflags: [ - "-DGRPC_SERVICE_ADDRESS=\"10.10.10.1:50051\"", - "-DGRPC_SERVICE_IFNAME=\"eth1\"", - ], } cc_library { diff --git a/automotive/remoteaccess/hal/default/fuzzer/fuzzer.cpp b/automotive/remoteaccess/hal/default/fuzzer/fuzzer.cpp index 9224ebcf09294aae5e855247ca13c26ed8ec6387..7707ee6de307a5f5774c27e89ff97c61acb59a27 100644 --- a/automotive/remoteaccess/hal/default/fuzzer/fuzzer.cpp +++ b/automotive/remoteaccess/hal/default/fuzzer/fuzzer.cpp @@ -75,8 +75,9 @@ class MockGrpcClientStub : public WakeupClient::StubInterface { return Status::OK; } - Status GetAllScheduledTasks(ClientContext* context, const GetAllScheduledTasksRequest& request, - GetAllScheduledTasksResponse* response) { + Status GetAllPendingScheduledTasks(ClientContext* context, + const GetAllPendingScheduledTasksRequest& request, + GetAllPendingScheduledTasksResponse* response) { return Status::OK; } @@ -165,17 +166,19 @@ class MockGrpcClientStub : public WakeupClient::StubInterface { return nullptr; } - ClientAsyncResponseReaderInterface* AsyncGetAllScheduledTasksRaw( + ClientAsyncResponseReaderInterface* + AsyncGetAllPendingScheduledTasksRaw( [[maybe_unused]] ClientContext* context, - [[maybe_unused]] const GetAllScheduledTasksRequest& request, + [[maybe_unused]] const GetAllPendingScheduledTasksRequest& request, [[maybe_unused]] CompletionQueue* cq) { return nullptr; } - ClientAsyncResponseReaderInterface* - PrepareAsyncGetAllScheduledTasksRaw([[maybe_unused]] ClientContext* context, - [[maybe_unused]] const GetAllScheduledTasksRequest& request, - [[maybe_unused]] CompletionQueue* c) { + ClientAsyncResponseReaderInterface* + PrepareAsyncGetAllPendingScheduledTasksRaw( + [[maybe_unused]] ClientContext* context, + [[maybe_unused]] const GetAllPendingScheduledTasksRequest& request, + [[maybe_unused]] CompletionQueue* c) { return nullptr; } }; diff --git a/automotive/remoteaccess/hal/default/include/RemoteAccessService.h b/automotive/remoteaccess/hal/default/include/RemoteAccessService.h index 1fc4037ae255898072524566f034a17ba53acc7e..8716e48bb951c7c883f659bcd8d36f3050324786 100644 --- a/automotive/remoteaccess/hal/default/include/RemoteAccessService.h +++ b/automotive/remoteaccess/hal/default/include/RemoteAccessService.h @@ -81,6 +81,9 @@ class RemoteAccessService ndk::ScopedAStatus isTaskScheduleSupported(bool* out) override; + ndk::ScopedAStatus getSupportedTaskTypesForScheduling( + std::vector* out) override; + ndk::ScopedAStatus scheduleTask( const aidl::android::hardware::automotive::remoteaccess::ScheduleInfo& scheduleInfo) override; @@ -93,7 +96,7 @@ class RemoteAccessService ndk::ScopedAStatus isTaskScheduled(const std::string& clientId, const std::string& scheduleId, bool* out) override; - ndk::ScopedAStatus getAllScheduledTasks( + ndk::ScopedAStatus getAllPendingScheduledTasks( const std::string& clientId, std::vector* out) override; @@ -108,6 +111,8 @@ class RemoteAccessService WakeupClient::StubInterface* mGrpcStub; std::thread mThread; + // Whether the GRPC server exists. Only checked and set during init. + bool mGrpcServerExist = false; std::mutex mLock; std::condition_variable mCv; std::shared_ptr @@ -118,7 +123,7 @@ class RemoteAccessService // A mutex to make sure startTaskLoop does not overlap with stopTaskLoop. std::mutex mStartStopTaskLoopLock; bool mTaskLoopRunning GUARDED_BY(mStartStopTaskLoopLock) = false; - bool mGrpcConnected GUARDED_BY(mLock) = false; + bool mGrpcReadChannelOpen GUARDED_BY(mLock) = false; std::unordered_map mClientIdToTaskCount GUARDED_BY(mLock); // Default wait time before retry connecting to remote access client is 10s. @@ -140,9 +145,10 @@ class RemoteAccessService void debugInjectTask(int fd, std::string_view clientId, std::string_view taskData); void debugInjectTaskNextReboot(int fd, std::string_view clientId, std::string_view taskData, const char* latencyInSecStr); - void updateGrpcConnected(bool connected); + void updateGrpcReadChannelOpen(bool grpcReadChannelOpen); android::base::Result deliverRemoteTaskThroughCallback(const std::string& clientId, std::string_view taskData); + bool isTaskScheduleSupported(); }; } // namespace remoteaccess diff --git a/automotive/remoteaccess/hal/default/proto/wakeup_client.proto b/automotive/remoteaccess/hal/default/proto/wakeup_client.proto index e061016daf4f8bd9c97b81f787ddc0d77870344a..8ff6059009dab413f2b8fcd08c30af529de0e065 100644 --- a/automotive/remoteaccess/hal/default/proto/wakeup_client.proto +++ b/automotive/remoteaccess/hal/default/proto/wakeup_client.proto @@ -99,7 +99,8 @@ service WakeupClient { * *

The finished scheduled tasks will not be included. */ - rpc GetAllScheduledTasks(GetAllScheduledTasksRequest) returns (GetAllScheduledTasksResponse) {} + rpc GetAllPendingScheduledTasks(GetAllPendingScheduledTasksRequest) + returns (GetAllPendingScheduledTasksResponse) {} } message GetRemoteTasksRequest {} @@ -123,6 +124,11 @@ message ScheduleTaskResponse { ErrorCode errorCode = 1; } +enum ScheduleTaskType { + CUSTOM = 0; + ENTER_GARAGE_MODE = 1; +} + message GrpcScheduleInfo { string clientId = 1; string scheduleId = 2; @@ -130,6 +136,7 @@ message GrpcScheduleInfo { int32 count = 4; int64 startTimeInEpochSeconds = 5; int64 periodicInSeconds = 6; + ScheduleTaskType taskType = 7; } message UnscheduleTaskRequest { @@ -154,10 +161,32 @@ message IsTaskScheduledResponse { bool isTaskScheduled = 1; } -message GetAllScheduledTasksRequest { +message GetAllPendingScheduledTasksRequest { string clientId = 1; } -message GetAllScheduledTasksResponse { +message GetAllPendingScheduledTasksResponse { repeated GrpcScheduleInfo allScheduledTasks = 1; } + +/** + * Service provided by a power controller unit. + */ +service PowerController { + rpc IsVehicleInUse(IsVehicleInUseRequest) returns (IsVehicleInUseResponse) {} + + rpc GetApPowerBootupReason(GetApPowerBootupReasonRequest) + returns (GetApPowerBootupReasonResponse) {} +} + +message IsVehicleInUseRequest {} + +message IsVehicleInUseResponse { + bool isVehicleInUse = 1; +} + +message GetApPowerBootupReasonRequest {} + +message GetApPowerBootupReasonResponse { + int32 bootupReason = 1; +} diff --git a/automotive/remoteaccess/hal/default/src/RemoteAccessImpl.cpp b/automotive/remoteaccess/hal/default/src/RemoteAccessImpl.cpp index d4ba8641b7ab80fbfb9755d4b70668b48cb30644..a50f3bb7fcb65935ad2a9ee8706eb38216f13602 100644 --- a/automotive/remoteaccess/hal/default/src/RemoteAccessImpl.cpp +++ b/automotive/remoteaccess/hal/default/src/RemoteAccessImpl.cpp @@ -27,31 +27,66 @@ #include #include +namespace { + +constexpr char GRPC_SERVICE_CONFIG_FILE[] = "/vendor/etc/automotive/powercontroller/serverconfig"; constexpr char SERVICE_NAME[] = "android.hardware.automotive.remoteaccess.IRemoteAccess/default"; +void maybeGetGrpcServiceInfo(std::string* address, std::string* ifname) { + std::ifstream ifs(GRPC_SERVICE_CONFIG_FILE); + if (!ifs) { + LOG(INFO) << "Cannot open grpc service config file at: " << GRPC_SERVICE_CONFIG_FILE + << ", assume no service is available"; + return; + } + int count = 0; + while (ifs.good()) { + std::string line; + ifs >> line; + // First line is address, second line, if present is ifname. + if (count == 0) { + *address = line; + } else { + *ifname = line; + break; + } + count++; + } + ifs.close(); +} + +} // namespace + int main(int /* argc */, char* /* argv */[]) { -#ifndef GRPC_SERVICE_ADDRESS - LOG(ERROR) << "GRPC_SERVICE_ADDRESS is not defined, exiting"; - exit(1); -#endif - LOG(INFO) << "Registering RemoteAccessService as service, server: " << GRPC_SERVICE_ADDRESS - << "..."; - grpc::ChannelArguments grpcargs = {}; - -#ifdef GRPC_SERVICE_IFNAME - grpcargs.SetSocketMutator( - android::hardware::automotive::remoteaccess::MakeBindToDeviceSocketMutator( - GRPC_SERVICE_IFNAME)); - LOG(DEBUG) << "GRPC_SERVICE_IFNAME specified as: " << GRPC_SERVICE_IFNAME; - LOG(INFO) << "Waiting for interface: " << GRPC_SERVICE_IFNAME; - android::netdevice::waitFor({GRPC_SERVICE_IFNAME}, - android::netdevice::WaitCondition::PRESENT_AND_UP); - LOG(INFO) << "Waiting for interface: " << GRPC_SERVICE_IFNAME << " done"; -#endif - auto channel = grpc::CreateChannel(GRPC_SERVICE_ADDRESS, grpc::InsecureChannelCredentials()); - auto clientStub = android::hardware::automotive::remoteaccess::WakeupClient::NewStub(channel); + std::string grpcServiceAddress = ""; + std::string grpcServiceIfname = ""; + maybeGetGrpcServiceInfo(&grpcServiceAddress, &grpcServiceIfname); + + std::unique_ptr grpcStub; + + if (grpcServiceAddress != "") { + LOG(INFO) << "Registering RemoteAccessService as service, server: " << grpcServiceAddress + << "..."; + grpc::ChannelArguments grpcargs = {}; + + if (grpcServiceIfname != "") { + grpcargs.SetSocketMutator( + android::hardware::automotive::remoteaccess::MakeBindToDeviceSocketMutator( + grpcServiceIfname)); + LOG(DEBUG) << "grpcServiceIfname specified as: " << grpcServiceIfname; + LOG(INFO) << "Waiting for interface: " << grpcServiceIfname; + android::netdevice::waitFor({grpcServiceIfname}, + android::netdevice::WaitCondition::PRESENT_AND_UP); + LOG(INFO) << "Waiting for interface: " << grpcServiceIfname << " done"; + } + auto channel = grpc::CreateChannel(grpcServiceAddress, grpc::InsecureChannelCredentials()); + grpcStub = android::hardware::automotive::remoteaccess::WakeupClient::NewStub(channel); + } else { + LOG(INFO) << "grpcServiceAddress is not defined, work in fake mode"; + } + auto service = ndk::SharedRefBase::make< - android::hardware::automotive::remoteaccess::RemoteAccessService>(clientStub.get()); + android::hardware::automotive::remoteaccess::RemoteAccessService>(grpcStub.get()); binder_exception_t err = AServiceManager_addService(service->asBinder().get(), SERVICE_NAME); if (err != EX_NONE) { diff --git a/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp b/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp index 0944d8699d87c395fac2cc54ccf0db7d1c7db2ca..91689b17da8d6c11c829ff3c2533e1c2f49e8a5e 100644 --- a/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp +++ b/automotive/remoteaccess/hal/default/src/RemoteAccessService.cpp @@ -40,6 +40,7 @@ namespace { using ::aidl::android::hardware::automotive::remoteaccess::ApState; using ::aidl::android::hardware::automotive::remoteaccess::IRemoteTaskCallback; using ::aidl::android::hardware::automotive::remoteaccess::ScheduleInfo; +using ::aidl::android::hardware::automotive::remoteaccess::TaskType; using ::aidl::android::hardware::automotive::vehicle::VehicleProperty; using ::android::base::Error; using ::android::base::ParseInt; @@ -102,6 +103,10 @@ std::string boolToString(bool x) { RemoteAccessService::RemoteAccessService(WakeupClient::StubInterface* grpcStub) : mGrpcStub(grpcStub) { + if (mGrpcStub != nullptr) { + mGrpcServerExist = true; + } + std::ifstream debugTaskFile; debugTaskFile.open(DEBUG_TASK_FILE, std::ios::in); if (!debugTaskFile.is_open()) { @@ -176,9 +181,9 @@ void RemoteAccessService::maybeStopTaskLoop() { mTaskLoopRunning = false; } -void RemoteAccessService::updateGrpcConnected(bool connected) { +void RemoteAccessService::updateGrpcReadChannelOpen(bool grpcReadChannelOpen) { std::lock_guard lockGuard(mLock); - mGrpcConnected = connected; + mGrpcReadChannelOpen = grpcReadChannelOpen; } Result RemoteAccessService::deliverRemoteTaskThroughCallback(const std::string& clientId, @@ -212,7 +217,7 @@ void RemoteAccessService::runTaskLoop() { mGetRemoteTasksContext.reset(new ClientContext()); reader = mGrpcStub->GetRemoteTasks(mGetRemoteTasksContext.get(), request); } - updateGrpcConnected(true); + updateGrpcReadChannelOpen(true); GetRemoteTasksResponse response; while (reader->Read(&response)) { ALOGI("Receiving one task from remote task client"); @@ -224,7 +229,7 @@ void RemoteAccessService::runTaskLoop() { continue; } } - updateGrpcConnected(false); + updateGrpcReadChannelOpen(false); Status status = reader->Finish(); mGetRemoteTasksContext.reset(); @@ -297,6 +302,11 @@ ScopedAStatus RemoteAccessService::clearRemoteTaskCallback() { } ScopedAStatus RemoteAccessService::notifyApStateChange(const ApState& newState) { + if (!mGrpcServerExist) { + ALOGW("GRPC server does not exist, do nothing"); + return ScopedAStatus::ok(); + } + ClientContext context; NotifyWakeupRequiredRequest request = {}; request.set_iswakeuprequired(newState.isWakeupRequired); @@ -314,16 +324,64 @@ ScopedAStatus RemoteAccessService::notifyApStateChange(const ApState& newState) return ScopedAStatus::ok(); } +bool RemoteAccessService::isTaskScheduleSupported() { + if (!mGrpcServerExist) { + ALOGW("GRPC server does not exist, task scheduling not supported"); + return false; + } + + return true; +} + ScopedAStatus RemoteAccessService::isTaskScheduleSupported(bool* out) { - *out = true; + *out = isTaskScheduleSupported(); + return ScopedAStatus::ok(); +} + +ndk::ScopedAStatus RemoteAccessService::getSupportedTaskTypesForScheduling( + std::vector* out) { + out->clear(); + if (!isTaskScheduleSupported()) { + ALOGW("Task scheduleing is not supported, return empty task types"); + return ScopedAStatus::ok(); + } + + out->push_back(TaskType::CUSTOM); + out->push_back(TaskType::ENTER_GARAGE_MODE); return ScopedAStatus::ok(); } ScopedAStatus RemoteAccessService::scheduleTask(const ScheduleInfo& scheduleInfo) { + if (!isTaskScheduleSupported()) { + ALOGW("Task scheduleing is not supported, return exception"); + return ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "task scheduling is not supported"); + } + ClientContext context; ScheduleTaskRequest request = {}; ScheduleTaskResponse response = {}; + + if (scheduleInfo.count < 0) { + return ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "count must be >= 0"); + } + if (scheduleInfo.startTimeInEpochSeconds < 0) { + return ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "startTimeInEpochSeconds must be >= 0"); + } + if (scheduleInfo.periodicInSeconds < 0) { + return ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "periodicInSeconds must be >= 0"); + } + if (scheduleInfo.taskData.size() > scheduleInfo.MAX_TASK_DATA_SIZE_IN_BYTES) { + return ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "task data too big"); + } + request.mutable_scheduleinfo()->set_clientid(scheduleInfo.clientId); + request.mutable_scheduleinfo()->set_tasktype( + static_cast(scheduleInfo.taskType)); request.mutable_scheduleinfo()->set_scheduleid(scheduleInfo.scheduleId); request.mutable_scheduleinfo()->set_data(scheduleInfo.taskData.data(), scheduleInfo.taskData.size()); @@ -340,7 +398,8 @@ ScopedAStatus RemoteAccessService::scheduleTask(const ScheduleInfo& scheduleInfo case ErrorCode::OK: return ScopedAStatus::ok(); case ErrorCode::INVALID_ARG: - return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); + return ScopedAStatus::fromExceptionCodeWithMessage( + EX_ILLEGAL_ARGUMENT, "received invalid_arg from grpc server"); default: // Should not happen. return ScopedAStatus::fromServiceSpecificErrorWithMessage( @@ -352,6 +411,11 @@ ScopedAStatus RemoteAccessService::scheduleTask(const ScheduleInfo& scheduleInfo ScopedAStatus RemoteAccessService::unscheduleTask(const std::string& clientId, const std::string& scheduleId) { + if (!isTaskScheduleSupported()) { + ALOGW("Task scheduleing is not supported, do nothing"); + return ScopedAStatus::ok(); + } + ClientContext context; UnscheduleTaskRequest request = {}; UnscheduleTaskResponse response = {}; @@ -365,6 +429,11 @@ ScopedAStatus RemoteAccessService::unscheduleTask(const std::string& clientId, } ScopedAStatus RemoteAccessService::unscheduleAllTasks(const std::string& clientId) { + if (!isTaskScheduleSupported()) { + ALOGW("Task scheduleing is not supported, do nothing"); + return ScopedAStatus::ok(); + } + ClientContext context; UnscheduleAllTasksRequest request = {}; UnscheduleAllTasksResponse response = {}; @@ -378,6 +447,12 @@ ScopedAStatus RemoteAccessService::unscheduleAllTasks(const std::string& clientI ScopedAStatus RemoteAccessService::isTaskScheduled(const std::string& clientId, const std::string& scheduleId, bool* out) { + if (!isTaskScheduleSupported()) { + ALOGW("Task scheduleing is not supported, return false"); + *out = false; + return ScopedAStatus::ok(); + } + ClientContext context; IsTaskScheduledRequest request = {}; IsTaskScheduledResponse response = {}; @@ -391,13 +466,19 @@ ScopedAStatus RemoteAccessService::isTaskScheduled(const std::string& clientId, return ScopedAStatus::ok(); } -ScopedAStatus RemoteAccessService::getAllScheduledTasks(const std::string& clientId, - std::vector* out) { +ScopedAStatus RemoteAccessService::getAllPendingScheduledTasks(const std::string& clientId, + std::vector* out) { + if (!isTaskScheduleSupported()) { + ALOGW("Task scheduleing is not supported, return empty array"); + out->clear(); + return ScopedAStatus::ok(); + } + ClientContext context; - GetAllScheduledTasksRequest request = {}; - GetAllScheduledTasksResponse response = {}; + GetAllPendingScheduledTasksRequest request = {}; + GetAllPendingScheduledTasksResponse response = {}; request.set_clientid(clientId); - Status status = mGrpcStub->GetAllScheduledTasks(&context, request, &response); + Status status = mGrpcStub->GetAllPendingScheduledTasks(&context, request, &response); if (!status.ok()) { return rpcStatusToScopedAStatus(status, "Failed to call isTaskScheduled"); } @@ -406,6 +487,7 @@ ScopedAStatus RemoteAccessService::getAllScheduledTasks(const std::string& clien const GrpcScheduleInfo& rpcScheduleInfo = response.allscheduledtasks(i); ScheduleInfo scheduleInfo = { .clientId = rpcScheduleInfo.clientid(), + .taskType = static_cast(rpcScheduleInfo.tasktype()), .scheduleId = rpcScheduleInfo.scheduleid(), .taskData = stringToBytes(rpcScheduleInfo.data()), .count = rpcScheduleInfo.count(), @@ -533,9 +615,11 @@ void RemoteAccessService::printCurrentStatus(int fd) { dprintf(fd, "\nRemoteAccess HAL status \n" "Remote task callback registered: %s\n" - "Task receiving GRPC connection established: %s\n" + "GRPC server exist: %s\n" + "GRPC read channel for receiving tasks open: %s\n" "Received task count by clientId: \n%s\n", - boolToString(mRemoteTaskCallback.get()).c_str(), boolToString(mGrpcConnected).c_str(), + boolToString(mRemoteTaskCallback.get()).c_str(), boolToString(mGrpcServerExist).c_str(), + boolToString(mGrpcReadChannelOpen).c_str(), clientIdToTaskCountToStringLocked().c_str()); } diff --git a/automotive/remoteaccess/hal/default/test/RemoteAccessServiceUnitTest.cpp b/automotive/remoteaccess/hal/default/test/RemoteAccessServiceUnitTest.cpp index c0038c270bd1fe70ba05cc2dd0e7495f35f3fb24..7992a50f5e2e1c1797e231fe9d1078e9d7b0cb51 100644 --- a/automotive/remoteaccess/hal/default/test/RemoteAccessServiceUnitTest.cpp +++ b/automotive/remoteaccess/hal/default/test/RemoteAccessServiceUnitTest.cpp @@ -48,6 +48,7 @@ using ::android::frameworks::automotive::vhal::VhalClientResult; using ::aidl::android::hardware::automotive::remoteaccess::ApState; using ::aidl::android::hardware::automotive::remoteaccess::BnRemoteTaskCallback; using ::aidl::android::hardware::automotive::remoteaccess::ScheduleInfo; +using ::aidl::android::hardware::automotive::remoteaccess::TaskType; using ::aidl::android::hardware::automotive::vehicle::VehiclePropValue; using ::grpc::ClientAsyncReaderInterface; @@ -61,6 +62,7 @@ using ::grpc::testing::MockClientReader; using ::ndk::ScopedAStatus; using ::testing::_; using ::testing::DoAll; +using ::testing::ElementsAre; using ::testing::Return; using ::testing::SetArgPointee; @@ -93,9 +95,9 @@ class MockGrpcClientStub : public WakeupClient::StubInterface { MOCK_METHOD(Status, IsTaskScheduled, (ClientContext * context, const IsTaskScheduledRequest& request, IsTaskScheduledResponse* response)); - MOCK_METHOD(Status, GetAllScheduledTasks, - (ClientContext * context, const GetAllScheduledTasksRequest& request, - GetAllScheduledTasksResponse* response)); + MOCK_METHOD(Status, GetAllPendingScheduledTasks, + (ClientContext * context, const GetAllPendingScheduledTasksRequest& request, + GetAllPendingScheduledTasksResponse* response)); // Async methods which we do not care. MOCK_METHOD(ClientAsyncReaderInterface*, AsyncGetRemoteTasksRaw, (ClientContext * context, const GetRemoteTasksRequest& request, CompletionQueue* cq, @@ -139,13 +141,13 @@ class MockGrpcClientStub : public WakeupClient::StubInterface { PrepareAsyncIsTaskScheduledRaw, (ClientContext * context, const IsTaskScheduledRequest& request, CompletionQueue* cq)); - MOCK_METHOD(ClientAsyncResponseReaderInterface*, - AsyncGetAllScheduledTasksRaw, - (ClientContext * context, const GetAllScheduledTasksRequest& request, + MOCK_METHOD(ClientAsyncResponseReaderInterface*, + AsyncGetAllPendingScheduledTasksRaw, + (ClientContext * context, const GetAllPendingScheduledTasksRequest& request, CompletionQueue* cq)); - MOCK_METHOD(ClientAsyncResponseReaderInterface*, - PrepareAsyncGetAllScheduledTasksRaw, - (ClientContext * context, const GetAllScheduledTasksRequest& request, + MOCK_METHOD(ClientAsyncResponseReaderInterface*, + PrepareAsyncGetAllPendingScheduledTasksRaw, + (ClientContext * context, const GetAllPendingScheduledTasksRequest& request, CompletionQueue* cq)); }; @@ -434,6 +436,14 @@ TEST_F(RemoteAccessServiceUnitTest, TestIsTaskScheduleSupported) { EXPECT_TRUE(out); } +TEST_F(RemoteAccessServiceUnitTest, TestGetSupportedTaskTypesForScheduling) { + std::vector out; + ScopedAStatus status = getService()->getSupportedTaskTypesForScheduling(&out); + + EXPECT_TRUE(status.isOk()); + EXPECT_THAT(out, ElementsAre(TaskType::CUSTOM)); +} + TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask) { ScheduleTaskRequest grpcRequest = {}; EXPECT_CALL(*getGrpcWakeupClientStub(), ScheduleTask) @@ -463,7 +473,71 @@ TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask) { EXPECT_EQ(grpcRequest.scheduleinfo().periodicinseconds(), kTestPeriodicInSeconds); } -TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask_InvalidArg) { +TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask_InvalidCount) { + ScheduleInfo scheduleInfo = { + .clientId = kTestClientId, + .scheduleId = kTestScheduleId, + .taskData = kTestData, + .count = -1, + .startTimeInEpochSeconds = kTestStartTimeInEpochSeconds, + .periodicInSeconds = kTestPeriodicInSeconds, + }; + + ScopedAStatus status = getService()->scheduleTask(scheduleInfo); + + ASSERT_FALSE(status.isOk()); + ASSERT_EQ(status.getExceptionCode(), EX_ILLEGAL_ARGUMENT); +} + +TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask_InvalidStartTimeInEpochSeconds) { + ScheduleInfo scheduleInfo = { + .clientId = kTestClientId, + .scheduleId = kTestScheduleId, + .taskData = kTestData, + .count = kTestCount, + .startTimeInEpochSeconds = -1, + .periodicInSeconds = kTestPeriodicInSeconds, + }; + + ScopedAStatus status = getService()->scheduleTask(scheduleInfo); + + ASSERT_FALSE(status.isOk()); + ASSERT_EQ(status.getExceptionCode(), EX_ILLEGAL_ARGUMENT); +} + +TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask_InvalidPeriodicInSeconds) { + ScheduleInfo scheduleInfo = { + .clientId = kTestClientId, + .scheduleId = kTestScheduleId, + .taskData = kTestData, + .count = kTestCount, + .startTimeInEpochSeconds = kTestStartTimeInEpochSeconds, + .periodicInSeconds = -1, + }; + + ScopedAStatus status = getService()->scheduleTask(scheduleInfo); + + ASSERT_FALSE(status.isOk()); + ASSERT_EQ(status.getExceptionCode(), EX_ILLEGAL_ARGUMENT); +} + +TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask_TaskDataTooLarge) { + ScheduleInfo scheduleInfo = { + .clientId = kTestClientId, + .scheduleId = kTestScheduleId, + .taskData = std::vector(ScheduleInfo::MAX_TASK_DATA_SIZE_IN_BYTES + 1), + .count = kTestCount, + .startTimeInEpochSeconds = kTestStartTimeInEpochSeconds, + .periodicInSeconds = kTestPeriodicInSeconds, + }; + + ScopedAStatus status = getService()->scheduleTask(scheduleInfo); + + ASSERT_FALSE(status.isOk()); + ASSERT_EQ(status.getExceptionCode(), EX_ILLEGAL_ARGUMENT); +} + +TEST_F(RemoteAccessServiceUnitTest, TestScheduleTask_InvalidArgFromGrpcServer) { EXPECT_CALL(*getGrpcWakeupClientStub(), ScheduleTask) .WillOnce([]([[maybe_unused]] ClientContext* context, [[maybe_unused]] const ScheduleTaskRequest& request, @@ -563,13 +637,13 @@ TEST_F(RemoteAccessServiceUnitTest, TestIsTaskScheduled) { EXPECT_EQ(grpcRequest.scheduleid(), kTestScheduleId); } -TEST_F(RemoteAccessServiceUnitTest, testGetAllScheduledTasks) { +TEST_F(RemoteAccessServiceUnitTest, testGetAllPendingScheduledTasks) { std::vector result; - GetAllScheduledTasksRequest grpcRequest = {}; - EXPECT_CALL(*getGrpcWakeupClientStub(), GetAllScheduledTasks) + GetAllPendingScheduledTasksRequest grpcRequest = {}; + EXPECT_CALL(*getGrpcWakeupClientStub(), GetAllPendingScheduledTasks) .WillOnce([&grpcRequest]([[maybe_unused]] ClientContext* context, - const GetAllScheduledTasksRequest& request, - GetAllScheduledTasksResponse* response) { + const GetAllPendingScheduledTasksRequest& request, + GetAllPendingScheduledTasksResponse* response) { grpcRequest = request; GrpcScheduleInfo* newInfo = response->add_allscheduledtasks(); newInfo->set_clientid(kTestClientId); @@ -581,7 +655,7 @@ TEST_F(RemoteAccessServiceUnitTest, testGetAllScheduledTasks) { return Status(); }); - ScopedAStatus status = getService()->getAllScheduledTasks(kTestClientId, &result); + ScopedAStatus status = getService()->getAllPendingScheduledTasks(kTestClientId, &result); ASSERT_TRUE(status.isOk()); EXPECT_EQ(grpcRequest.clientid(), kTestClientId); diff --git a/automotive/remoteaccess/test_grpc_server/impl/include/TestWakeupClientServiceImpl.h b/automotive/remoteaccess/test_grpc_server/impl/include/TestWakeupClientServiceImpl.h index 2aab90442979312f8b264e061f1d68bd22e06eb7..74245717d3289a09ea51ffd95712b19b4a7e8516 100644 --- a/automotive/remoteaccess/test_grpc_server/impl/include/TestWakeupClientServiceImpl.h +++ b/automotive/remoteaccess/test_grpc_server/impl/include/TestWakeupClientServiceImpl.h @@ -30,6 +30,11 @@ namespace hardware { namespace automotive { namespace remoteaccess { +// The following are the same as VehicleApPowerBootupReason defined in VHAL. +constexpr int32_t BOOTUP_REASON_USER_POWER_ON = 0; +constexpr int32_t BOOTUP_REASON_SYSTEM_REMOTE_ACCESS = 2; +constexpr int32_t BOOTUP_REASON_SYSTEM_ENTER_GARAGE_MODE = 3; + // A class to generate fake task for testing. Not required for real implementation. In real // implementation, the task should come from remote task server. This class is thread-safe. class FakeTaskGenerator final { @@ -78,6 +83,7 @@ class TaskQueue final { void waitForTask(); void stopWait(); bool isEmpty(); + bool isStopped(); private: friend class TaskTimeoutMessageHandler; @@ -87,7 +93,7 @@ class TaskQueue final { GUARDED_BY(mLock); // A variable to notify mTasks is not empty. std::condition_variable mTasksNotEmptyCv; - std::atomic mStopped; + std::atomic mStopped = false; android::sp mLooper; android::sp mTaskTimeoutMessageHandler; std::atomic mTaskIdCounter = 0; @@ -97,50 +103,57 @@ class TaskQueue final { }; // forward-declaration -class TestWakeupClientServiceImpl; +class ServiceImpl; class TaskScheduleMsgHandler final : public android::MessageHandler { public: - TaskScheduleMsgHandler(TestWakeupClientServiceImpl* mImpl); + TaskScheduleMsgHandler(ServiceImpl* impl); void handleMessage(const android::Message& message) override; private: - TestWakeupClientServiceImpl* mImpl; + ServiceImpl* mImpl; }; -class TestWakeupClientServiceImpl : public WakeupClient::Service { +class ServiceImpl { public: - TestWakeupClientServiceImpl(); + ServiceImpl(); - ~TestWakeupClientServiceImpl(); + virtual ~ServiceImpl() = 0; // Stop the handling for all income requests. Prepare for shutdown. void stopServer(); grpc::Status GetRemoteTasks(grpc::ServerContext* context, const GetRemoteTasksRequest* request, - grpc::ServerWriter* writer) override; + grpc::ServerWriter* writer); grpc::Status NotifyWakeupRequired(grpc::ServerContext* context, const NotifyWakeupRequiredRequest* request, - NotifyWakeupRequiredResponse* response) override; + NotifyWakeupRequiredResponse* response); grpc::Status ScheduleTask(grpc::ServerContext* context, const ScheduleTaskRequest* request, - ScheduleTaskResponse* response) override; + ScheduleTaskResponse* response); grpc::Status UnscheduleTask(grpc::ServerContext* context, const UnscheduleTaskRequest* request, - UnscheduleTaskResponse* response) override; + UnscheduleTaskResponse* response); grpc::Status UnscheduleAllTasks(grpc::ServerContext* context, const UnscheduleAllTasksRequest* request, - UnscheduleAllTasksResponse* response) override; + UnscheduleAllTasksResponse* response); grpc::Status IsTaskScheduled(grpc::ServerContext* context, const IsTaskScheduledRequest* request, - IsTaskScheduledResponse* response) override; + IsTaskScheduledResponse* response); + + grpc::Status GetAllPendingScheduledTasks(grpc::ServerContext* context, + const GetAllPendingScheduledTasksRequest* request, + GetAllPendingScheduledTasksResponse* response); + + grpc::Status IsVehicleInUse(grpc::ServerContext* context, const IsVehicleInUseRequest* request, + IsVehicleInUseResponse* response); - grpc::Status GetAllScheduledTasks(grpc::ServerContext* context, - const GetAllScheduledTasksRequest* request, - GetAllScheduledTasksResponse* response) override; + grpc::Status GetApPowerBootupReason(grpc::ServerContext* context, + const GetApPowerBootupReasonRequest* request, + GetApPowerBootupReasonResponse* response); /** * Starts generating fake tasks for the specific client repeatedly. @@ -176,7 +189,7 @@ class TestWakeupClientServiceImpl : public WakeupClient::Service { * This must be implemented by child class and contains device specific logic. E.g. this might * be sending QEMU commands for the emulator device. */ - virtual void wakeupApplicationProcessor() = 0; + virtual void wakeupApplicationProcessor(int32_t bootupReason) = 0; /** * Cleans up a scheduled task info. @@ -184,6 +197,16 @@ class TestWakeupClientServiceImpl : public WakeupClient::Service { void cleanupScheduledTaskLocked(const std::string& clientId, const std::string& scheduleId) REQUIRES(mLock); + /** + * Sets whether vehicle is in use. + */ + void setVehicleInUse(bool vehicleInUse); + + /** + * Sets the bootup reason. + */ + void setBootupReason(int32_t bootupReason); + private: friend class TaskScheduleMsgHandler; @@ -214,9 +237,11 @@ class TestWakeupClientServiceImpl : public WakeupClient::Service { std::atomic mRemoteTaskConnectionAlive = false; std::mutex mLock; bool mGeneratingFakeTask GUARDED_BY(mLock); - std::atomic mServerStopped; + std::atomic mServerStopped = false; std::unordered_map> mInfoByScheduleIdByClientId GUARDED_BY(mLock); + std::atomic mVehicleInUse = false; + std::atomic mBootupReason = BOOTUP_REASON_USER_POWER_ON; // Thread-safe. For test impl only. FakeTaskGenerator mFakeTaskGenerator; @@ -231,6 +256,72 @@ class TestWakeupClientServiceImpl : public WakeupClient::Service { void loop(); }; +class WakeupClientServiceImpl : public WakeupClient::Service { + public: + WakeupClientServiceImpl(ServiceImpl* impl) { mImpl = impl; } + + grpc::Status GetRemoteTasks(grpc::ServerContext* context, const GetRemoteTasksRequest* request, + grpc::ServerWriter* writer) override { + return mImpl->GetRemoteTasks(context, request, writer); + } + + grpc::Status NotifyWakeupRequired(grpc::ServerContext* context, + const NotifyWakeupRequiredRequest* request, + NotifyWakeupRequiredResponse* response) override { + return mImpl->NotifyWakeupRequired(context, request, response); + } + + grpc::Status ScheduleTask(grpc::ServerContext* context, const ScheduleTaskRequest* request, + ScheduleTaskResponse* response) override { + return mImpl->ScheduleTask(context, request, response); + } + + grpc::Status UnscheduleTask(grpc::ServerContext* context, const UnscheduleTaskRequest* request, + UnscheduleTaskResponse* response) override { + return mImpl->UnscheduleTask(context, request, response); + } + + grpc::Status UnscheduleAllTasks(grpc::ServerContext* context, + const UnscheduleAllTasksRequest* request, + UnscheduleAllTasksResponse* response) override { + return mImpl->UnscheduleAllTasks(context, request, response); + } + + grpc::Status IsTaskScheduled(grpc::ServerContext* context, + const IsTaskScheduledRequest* request, + IsTaskScheduledResponse* response) override { + return mImpl->IsTaskScheduled(context, request, response); + } + + grpc::Status GetAllPendingScheduledTasks( + grpc::ServerContext* context, const GetAllPendingScheduledTasksRequest* request, + GetAllPendingScheduledTasksResponse* response) override { + return mImpl->GetAllPendingScheduledTasks(context, request, response); + } + + private: + ServiceImpl* mImpl; +}; + +class PowerControllerServiceImpl : public PowerController::Service { + public: + PowerControllerServiceImpl(ServiceImpl* impl) { mImpl = impl; } + + grpc::Status IsVehicleInUse(grpc::ServerContext* context, const IsVehicleInUseRequest* request, + IsVehicleInUseResponse* response) override { + return mImpl->IsVehicleInUse(context, request, response); + } + + grpc::Status GetApPowerBootupReason(grpc::ServerContext* context, + const GetApPowerBootupReasonRequest* request, + GetApPowerBootupReasonResponse* response) override { + return mImpl->GetApPowerBootupReason(context, request, response); + } + + private: + ServiceImpl* mImpl; +}; + } // namespace remoteaccess } // namespace automotive } // namespace hardware diff --git a/automotive/remoteaccess/test_grpc_server/impl/src/TestWakeupClientServiceImpl.cpp b/automotive/remoteaccess/test_grpc_server/impl/src/TestWakeupClientServiceImpl.cpp index 1db991c8b0769a4af34f22c0667afa03be1e69fa..5d33fcb63284cb6f24740115ea62c0ec92e83ad8 100644 --- a/automotive/remoteaccess/test_grpc_server/impl/src/TestWakeupClientServiceImpl.cpp +++ b/automotive/remoteaccess/test_grpc_server/impl/src/TestWakeupClientServiceImpl.cpp @@ -38,7 +38,7 @@ using ::grpc::ServerWriter; using ::grpc::Status; constexpr int64_t kTaskIntervalInMs = 5'000; -constexpr int64_t kTaskTimeoutInMs = 20'000; +constexpr int64_t kTaskTimeoutInMs = 60'000; int64_t msToNs(int64_t ms) { return std::chrono::duration_cast(std::chrono::milliseconds(ms)) @@ -105,6 +105,10 @@ void TaskQueue::waitForTask() { }); } +bool TaskQueue::isStopped() { + return mStopped; +} + void TaskQueue::stopWait() { mStopped = true; { @@ -136,21 +140,21 @@ void TaskQueue::handleTaskTimeout() { } } -TestWakeupClientServiceImpl::TestWakeupClientServiceImpl() { +ServiceImpl::ServiceImpl() { mTaskScheduleMsgHandler = android::sp::make(this); mLooper = android::sp::make(/*opts=*/0); mLooperThread = std::thread([this] { loop(); }); mTaskQueue = std::make_unique(mLooper); } -TestWakeupClientServiceImpl::~TestWakeupClientServiceImpl() { +ServiceImpl::~ServiceImpl() { if (mServerStopped) { return; } stopServer(); } -void TestWakeupClientServiceImpl::stopServer() { +void ServiceImpl::stopServer() { mTaskQueue->stopWait(); stopGeneratingFakeTask(); // Set the flag so that the loop thread will exit. @@ -161,7 +165,7 @@ void TestWakeupClientServiceImpl::stopServer() { } } -void TestWakeupClientServiceImpl::loop() { +void ServiceImpl::loop() { Looper::setForThread(mLooper); while (true) { @@ -172,23 +176,22 @@ void TestWakeupClientServiceImpl::loop() { } } -void TestWakeupClientServiceImpl::injectTask(const std::string& taskData, - const std::string& clientId) { +void ServiceImpl::injectTask(const std::string& taskData, const std::string& clientId) { GetRemoteTasksResponse response; response.set_data(taskData); response.set_clientid(clientId); injectTaskResponse(response); } -void TestWakeupClientServiceImpl::injectTaskResponse(const GetRemoteTasksResponse& response) { +void ServiceImpl::injectTaskResponse(const GetRemoteTasksResponse& response) { printf("Receive a new task\n"); mTaskQueue->add(response); if (mWakeupRequired) { - wakeupApplicationProcessor(); + wakeupApplicationProcessor(BOOTUP_REASON_SYSTEM_REMOTE_ACCESS); } } -void TestWakeupClientServiceImpl::startGeneratingFakeTask(const std::string& clientId) { +void ServiceImpl::startGeneratingFakeTask(const std::string& clientId) { std::lock_guard lockGuard(mLock); if (mGeneratingFakeTask) { printf("Fake task is already being generated\n"); @@ -199,7 +202,7 @@ void TestWakeupClientServiceImpl::startGeneratingFakeTask(const std::string& cli printf("Started generating fake tasks\n"); } -void TestWakeupClientServiceImpl::stopGeneratingFakeTask() { +void ServiceImpl::stopGeneratingFakeTask() { { std::lock_guard lockGuard(mLock); if (!mGeneratingFakeTask) { @@ -215,7 +218,7 @@ void TestWakeupClientServiceImpl::stopGeneratingFakeTask() { printf("Stopped generating fake tasks\n"); } -void TestWakeupClientServiceImpl::fakeTaskGenerateLoop(const std::string& clientId) { +void ServiceImpl::fakeTaskGenerateLoop(const std::string& clientId) { // In actual implementation, this should communicate with the remote server and receives tasks // from it. Here we simulate receiving one remote task every {kTaskIntervalInMs}ms. while (true) { @@ -233,15 +236,14 @@ void TestWakeupClientServiceImpl::fakeTaskGenerateLoop(const std::string& client } } -Status TestWakeupClientServiceImpl::GetRemoteTasks(ServerContext* context, - const GetRemoteTasksRequest* request, - ServerWriter* writer) { +Status ServiceImpl::GetRemoteTasks(ServerContext* context, const GetRemoteTasksRequest* request, + ServerWriter* writer) { printf("GetRemoteTasks called\n"); mRemoteTaskConnectionAlive = true; while (true) { mTaskQueue->waitForTask(); - if (mServerStopped) { + if (mTaskQueue->isStopped()) { // Server stopped, exit the loop. printf("Server stopped exit loop\n"); break; @@ -250,11 +252,13 @@ Status TestWakeupClientServiceImpl::GetRemoteTasks(ServerContext* context, while (true) { auto maybeTask = mTaskQueue->maybePopOne(); if (!maybeTask.has_value()) { + printf("no task left\n"); // No task left, loop again and wait for another task(s). break; } // Loop through all the task in the queue but obtain lock for each element so we don't // hold lock while writing the response. + printf("Sending one remote task\n"); const GetRemoteTasksResponse& response = maybeTask.value(); if (!writer->Write(response)) { // Broken stream, maybe the client is shutting down. @@ -271,15 +275,15 @@ Status TestWakeupClientServiceImpl::GetRemoteTasks(ServerContext* context, return Status::CANCELLED; } -Status TestWakeupClientServiceImpl::NotifyWakeupRequired(ServerContext* context, - const NotifyWakeupRequiredRequest* request, - NotifyWakeupRequiredResponse* response) { +Status ServiceImpl::NotifyWakeupRequired(ServerContext* context, + const NotifyWakeupRequiredRequest* request, + NotifyWakeupRequiredResponse* response) { printf("NotifyWakeupRequired called\n"); if (request->iswakeuprequired() && !mWakeupRequired && !mTaskQueue->isEmpty()) { // If wakeup is now required and previously not required, this means we have finished // shutting down the device. If there are still pending tasks, try waking up AP again // to finish executing those tasks. - wakeupApplicationProcessor(); + wakeupApplicationProcessor(BOOTUP_REASON_SYSTEM_REMOTE_ACCESS); } mWakeupRequired = request->iswakeuprequired(); if (mWakeupRequired) { @@ -290,23 +294,22 @@ Status TestWakeupClientServiceImpl::NotifyWakeupRequired(ServerContext* context, return Status::OK; } -void TestWakeupClientServiceImpl::cleanupScheduledTaskLocked(const std::string& clientId, - const std::string& scheduleId) { +void ServiceImpl::cleanupScheduledTaskLocked(const std::string& clientId, + const std::string& scheduleId) { mInfoByScheduleIdByClientId[clientId].erase(scheduleId); if (mInfoByScheduleIdByClientId[clientId].size() == 0) { mInfoByScheduleIdByClientId.erase(clientId); } } -TaskScheduleMsgHandler::TaskScheduleMsgHandler(TestWakeupClientServiceImpl* impl) : mImpl(impl) {} +TaskScheduleMsgHandler::TaskScheduleMsgHandler(ServiceImpl* impl) : mImpl(impl) {} void TaskScheduleMsgHandler::handleMessage(const android::Message& message) { mImpl->handleAddTask(message.what); } -Status TestWakeupClientServiceImpl::ScheduleTask(ServerContext* context, - const ScheduleTaskRequest* request, - ScheduleTaskResponse* response) { +Status ServiceImpl::ScheduleTask(ServerContext* context, const ScheduleTaskRequest* request, + ScheduleTaskResponse* response) { std::lock_guard lockGuard(mLock); const GrpcScheduleInfo& grpcScheduleInfo = request->scheduleinfo(); @@ -353,8 +356,7 @@ Status TestWakeupClientServiceImpl::ScheduleTask(ServerContext* context, return Status::OK; } -bool TestWakeupClientServiceImpl::getScheduleInfoLocked(int scheduleMsgId, - ScheduleInfo** outScheduleInfoPtr) { +bool ServiceImpl::getScheduleInfoLocked(int scheduleMsgId, ScheduleInfo** outScheduleInfoPtr) { for (auto& [_, infoByScheduleId] : mInfoByScheduleIdByClientId) { for (auto& [_, scheduleInfo] : infoByScheduleId) { if (scheduleInfo.scheduleMsgId == scheduleMsgId) { @@ -366,7 +368,7 @@ bool TestWakeupClientServiceImpl::getScheduleInfoLocked(int scheduleMsgId, return false; } -void TestWakeupClientServiceImpl::handleAddTask(int scheduleMsgId) { +void ServiceImpl::handleAddTask(int scheduleMsgId) { std::lock_guard lockGuard(mLock); ScheduleInfo* scheduleInfoPtr; @@ -379,15 +381,27 @@ void TestWakeupClientServiceImpl::handleAddTask(int scheduleMsgId) { const GrpcScheduleInfo& grpcScheduleInfo = *scheduleInfoPtr->grpcScheduleInfo; const std::string scheduleId = grpcScheduleInfo.scheduleid(); const std::string clientId = grpcScheduleInfo.clientid(); - - GetRemoteTasksResponse injectResponse; - injectResponse.set_data(grpcScheduleInfo.data().data(), grpcScheduleInfo.data().size()); - injectResponse.set_clientid(clientId); - injectTaskResponse(injectResponse); scheduleInfoPtr->currentCount++; - - printf("Sending scheduled tasks for scheduleId: %s, clientId: %s, taskCount: %d\n", - scheduleId.c_str(), clientId.c_str(), scheduleInfoPtr->currentCount); + ScheduleTaskType taskType = grpcScheduleInfo.tasktype(); + printf("Sending scheduled tasks for scheduleId: %s, clientId: %s, taskCount: %d, " + "taskType: %d\n", + scheduleId.c_str(), clientId.c_str(), scheduleInfoPtr->currentCount, + static_cast(taskType)); + + if (taskType == ScheduleTaskType::ENTER_GARAGE_MODE) { + if (mWakeupRequired) { + wakeupApplicationProcessor(BOOTUP_REASON_SYSTEM_ENTER_GARAGE_MODE); + } else { + printf("Ignore ENTER_GARAGE_MODE task type because the head unit is already running"); + } + } else if (grpcScheduleInfo.tasktype() == ScheduleTaskType::CUSTOM) { + GetRemoteTasksResponse injectResponse; + injectResponse.set_data(grpcScheduleInfo.data().data(), grpcScheduleInfo.data().size()); + injectResponse.set_clientid(clientId); + injectTaskResponse(injectResponse); + } else { + printf("Unknown task type: %d\n", static_cast(taskType)); + } if (scheduleInfoPtr->totalCount != 0 && scheduleInfoPtr->currentCount == scheduleInfoPtr->totalCount) { @@ -401,9 +415,8 @@ void TestWakeupClientServiceImpl::handleAddTask(int scheduleMsgId) { android::Message(scheduleMsgId)); } -Status TestWakeupClientServiceImpl::UnscheduleTask(ServerContext* context, - const UnscheduleTaskRequest* request, - UnscheduleTaskResponse* response) { +Status ServiceImpl::UnscheduleTask(ServerContext* context, const UnscheduleTaskRequest* request, + UnscheduleTaskResponse* response) { std::lock_guard lockGuard(mLock); const std::string& clientId = request->clientid(); @@ -425,9 +438,9 @@ Status TestWakeupClientServiceImpl::UnscheduleTask(ServerContext* context, return Status::OK; } -Status TestWakeupClientServiceImpl::UnscheduleAllTasks(ServerContext* context, - const UnscheduleAllTasksRequest* request, - UnscheduleAllTasksResponse* response) { +Status ServiceImpl::UnscheduleAllTasks(ServerContext* context, + const UnscheduleAllTasksRequest* request, + UnscheduleAllTasksResponse* response) { std::lock_guard lockGuard(mLock); const std::string& clientId = request->clientid(); @@ -446,9 +459,8 @@ Status TestWakeupClientServiceImpl::UnscheduleAllTasks(ServerContext* context, return Status::OK; } -Status TestWakeupClientServiceImpl::IsTaskScheduled(ServerContext* context, - const IsTaskScheduledRequest* request, - IsTaskScheduledResponse* response) { +Status ServiceImpl::IsTaskScheduled(ServerContext* context, const IsTaskScheduledRequest* request, + IsTaskScheduledResponse* response) { std::lock_guard lockGuard(mLock); const std::string& clientId = request->clientid(); @@ -469,11 +481,11 @@ Status TestWakeupClientServiceImpl::IsTaskScheduled(ServerContext* context, return Status::OK; } -Status TestWakeupClientServiceImpl::GetAllScheduledTasks(ServerContext* context, - const GetAllScheduledTasksRequest* request, - GetAllScheduledTasksResponse* response) { +Status ServiceImpl::GetAllPendingScheduledTasks(ServerContext* context, + const GetAllPendingScheduledTasksRequest* request, + GetAllPendingScheduledTasksResponse* response) { const std::string& clientId = request->clientid(); - printf("GetAllScheduledTasks called with client Id: %s\n", clientId.c_str()); + printf("GetAllPendingScheduledTasks called with client Id: %s\n", clientId.c_str()); response->clear_allscheduledtasks(); { std::unique_lock lk(mLock); @@ -487,14 +499,35 @@ Status TestWakeupClientServiceImpl::GetAllScheduledTasks(ServerContext* context, return Status::OK; } -bool TestWakeupClientServiceImpl::isWakeupRequired() { +Status ServiceImpl::IsVehicleInUse(ServerContext* context, const IsVehicleInUseRequest* request, + IsVehicleInUseResponse* response) { + response->set_isvehicleinuse(mVehicleInUse); + return Status::OK; +} + +Status ServiceImpl::GetApPowerBootupReason(ServerContext* context, + const GetApPowerBootupReasonRequest* request, + GetApPowerBootupReasonResponse* response) { + response->set_bootupreason(mBootupReason); + return Status::OK; +} + +bool ServiceImpl::isWakeupRequired() { return mWakeupRequired; } -bool TestWakeupClientServiceImpl::isRemoteTaskConnectionAlive() { +bool ServiceImpl::isRemoteTaskConnectionAlive() { return mRemoteTaskConnectionAlive; } +void ServiceImpl::setVehicleInUse(bool vehicleInUse) { + mVehicleInUse = vehicleInUse; +} + +void ServiceImpl::setBootupReason(int32_t bootupReason) { + mBootupReason = bootupReason; +} + } // namespace remoteaccess } // namespace automotive } // namespace hardware diff --git a/automotive/remoteaccess/test_grpc_server/impl/src/main.cpp b/automotive/remoteaccess/test_grpc_server/impl/src/main.cpp index 5443ad9c36a500b95cfa6ecf4ec5aa27ecb84e3f..e1ee3203fead4e81b8e718ef8c4da7056c455696 100644 --- a/automotive/remoteaccess/test_grpc_server/impl/src/main.cpp +++ b/automotive/remoteaccess/test_grpc_server/impl/src/main.cpp @@ -33,26 +33,40 @@ #include #include -using ::android::hardware::automotive::remoteaccess::TestWakeupClientServiceImpl; +namespace { + +using ::android::hardware::automotive::remoteaccess::BOOTUP_REASON_SYSTEM_ENTER_GARAGE_MODE; +using ::android::hardware::automotive::remoteaccess::BOOTUP_REASON_SYSTEM_REMOTE_ACCESS; +using ::android::hardware::automotive::remoteaccess::BOOTUP_REASON_USER_POWER_ON; +using ::android::hardware::automotive::remoteaccess::PowerControllerServiceImpl; +using ::android::hardware::automotive::remoteaccess::ServiceImpl; +using ::android::hardware::automotive::remoteaccess::WakeupClientServiceImpl; using ::grpc::Server; using ::grpc::ServerBuilder; using ::grpc::ServerWriter; constexpr int SHUTDOWN_REQUEST = 289410889; constexpr int VEHICLE_IN_USE = 287313738; -const char* COMMAND_RUN_EMU = "source ~/.aae-toolbox/bin/bashrc && aae emulator run"; -const char* COMMAND_SET_VHAL_PROP = +constexpr char COMMAND_RUN_EMU_LOCAL_IMAGE[] = + "source ~/.aae-toolbox/bin/bashrc && aae emulator run"; +constexpr char COMMAND_RUN_EMU[] = "./launch_emu.sh -v \"-writable-system -selinux permissive\""; +constexpr char COMMAND_SET_VHAL_PROP[] = "adb -s emulator-5554 wait-for-device && adb -s emulator-5554 root " "&& sleep 1 && adb -s emulator-5554 wait-for-device && adb -s emulator-5554 shell " "dumpsys android.hardware.automotive.vehicle.IVehicle/default --set %d -i %d"; pid_t emuPid = 0; +const char* runEmuCommand = COMMAND_RUN_EMU; + +} // namespace -void RunServer(const std::string& serviceAddr, - std::shared_ptr service) { +void RunServer(const std::string& serviceAddr, std::shared_ptr service) { ServerBuilder builder; builder.AddListeningPort(serviceAddr, grpc::InsecureServerCredentials()); - builder.RegisterService(service.get()); + WakeupClientServiceImpl wakeupClientService(service.get()); + builder.RegisterService(&wakeupClientService); + PowerControllerServiceImpl powerControllerService(service.get()); + builder.RegisterService(&powerControllerService); std::unique_ptr server(builder.BuildAndStart()); printf("Test Remote Access GRPC Server listening on %s\n", serviceAddr.c_str()); server->Wait(); @@ -81,20 +95,21 @@ void updateEmuStatus() { } } -bool powerOnEmu() { +bool powerOnEmu(ServiceImpl* service, int32_t bootupReason) { updateEmuStatus(); if (emuPid != 0) { printf("The emulator is already running\n"); return false; } - emuPid = runCommand(COMMAND_RUN_EMU); + service->setBootupReason(bootupReason); + emuPid = runCommand(runEmuCommand); printf("Emulator started in process: %d\n", emuPid); return true; } -bool powerOn() { +bool powerOn(ServiceImpl* service, int32_t bootupReason) { #ifdef HOST - return powerOnEmu(); + return powerOnEmu(service, bootupReason); #else printf("power on is only supported on host\n"); return false; @@ -133,21 +148,6 @@ void powerOff() { #endif } -void setVehicleInUse(bool vehicleInUse) { -#ifdef HOST - printf("Set vehicleInUse to %d\n", vehicleInUse); - int value = 0; - if (vehicleInUse) { - value = 1; - } - const char* command = getSetPropCommand(VEHICLE_IN_USE, value); - runCommand(command); - delete[] command; -#else - printf("set vehicleInUse is only supported on host\n"); -#endif -} - void help() { std::cout << "Remote Access Host Test Utility" << std::endl << "help:\t" @@ -171,8 +171,7 @@ void help() { << "(only supported on host)" << std::endl; } -void parseCommand(const std::string& userInput, - std::shared_ptr service) { +void parseCommand(const std::string& userInput, std::shared_ptr service) { if (userInput == "") { // ignore empty line. } else if (userInput == "help") { @@ -199,8 +198,10 @@ void parseCommand(const std::string& userInput, printf("isWakeupRequired: %B, isRemoteTaskConnectionAlive: %B\n", service->isWakeupRequired(), service->isRemoteTaskConnectionAlive()); } else if (userInput == "power on") { - powerOn(); + service->setVehicleInUse(true); + powerOn(service.get(), BOOTUP_REASON_USER_POWER_ON); } else if (userInput == "power off") { + service->setVehicleInUse(false); powerOff(); } else if (userInput.rfind("inject task", 0) == 0) { std::stringstream ss; @@ -226,7 +227,7 @@ void parseCommand(const std::string& userInput, printf("Remote task with client ID: %s, data: %s injected\n", clientId.c_str(), taskData.c_str()); } else if (userInput == "set vehicleInUse") { - setVehicleInUse(true); + service->setVehicleInUse(true); } else { printf("Unknown command, see 'help'\n"); } @@ -242,28 +243,30 @@ void saHandler(int signum) { exit(-1); } -class MyTestWakeupClientServiceImpl final : public TestWakeupClientServiceImpl { +class MyServiceImpl final : public ServiceImpl { public: - void wakeupApplicationProcessor() override { + void wakeupApplicationProcessor(int32_t bootupReason) override { #ifdef HOST - if (powerOnEmu()) { - // If we wake up AP to execute remote task, vehicle in use should be false. - setVehicleInUse(false); - } + powerOnEmu(this, bootupReason); #else wakeupAp(); #endif }; }; +// Usage: TestWakeupClientServerHost [--local-image] [service_address_to_start] int main(int argc, char** argv) { std::string serviceAddr = GRPC_SERVICE_ADDRESS; - if (argc > 1) { - serviceAddr = argv[1]; + for (int i = 1; i < argc; i++) { + char* arg = argv[1]; + if (strcmp(arg, "--local-image") == 0) { + runEmuCommand = COMMAND_RUN_EMU_LOCAL_IMAGE; + continue; + } + serviceAddr = arg; } // Let the server thread run, we will force kill the server when we exit the program. - std::shared_ptr service = - std::make_shared(); + std::shared_ptr service = std::make_shared(); std::thread serverThread([serviceAddr, service] { RunServer(serviceAddr, service); }); // Register the signal handler for SIGTERM and SIGINT so that we can stop the emulator before diff --git a/automotive/remoteaccess/test_grpc_server/impl/test/TestWakeupClientServiceImplUnitTest.cpp b/automotive/remoteaccess/test_grpc_server/impl/test/TestWakeupClientServiceImplUnitTest.cpp index 960020d9956c14d9e16069078d70cf050a0c9e41..4bc008697de1353de5797a8e482c5055549e7dd1 100644 --- a/automotive/remoteaccess/test_grpc_server/impl/test/TestWakeupClientServiceImplUnitTest.cpp +++ b/automotive/remoteaccess/test_grpc_server/impl/test/TestWakeupClientServiceImplUnitTest.cpp @@ -43,9 +43,9 @@ constexpr int64_t kTestStartTimeInEpochSeconds = 2345; constexpr int64_t kTestPeriodicInSeconds = 123; const std::string kTestGrpcAddr = "localhost:50051"; -class MyTestWakeupClientServiceImpl final : public TestWakeupClientServiceImpl { +class MyTestWakeupClientServiceImpl final : public ServiceImpl { public: - void wakeupApplicationProcessor() override { + void wakeupApplicationProcessor([[maybe_unused]] int32_t bootupReason) override { // Do nothing. } }; @@ -54,13 +54,14 @@ class TestWakeupClientServiceImplUnitTest : public ::testing::Test { public: virtual void SetUp() override { mServerThread = std::thread([this] { + mService = std::make_unique(); + ServerBuilder builder; + builder.AddListeningPort(kTestGrpcAddr, grpc::InsecureServerCredentials()); + WakeupClientServiceImpl wakeupClientService(mService.get()); + builder.RegisterService(&wakeupClientService); + mServer = builder.BuildAndStart(); { std::unique_lock lock(mLock); - mService = std::make_unique(); - ServerBuilder builder; - builder.AddListeningPort(kTestGrpcAddr, grpc::InsecureServerCredentials()); - builder.RegisterService(mService.get()); - mServer = builder.BuildAndStart(); mServerStartCv.notify_one(); } mServer->Wait(); @@ -124,6 +125,7 @@ class TestWakeupClientServiceImplUnitTest : public ::testing::Test { std::chrono::system_clock::now().time_since_epoch()) .count(); request.mutable_scheduleinfo()->set_clientid(kTestClientId); + request.mutable_scheduleinfo()->set_tasktype(ScheduleTaskType::CUSTOM); request.mutable_scheduleinfo()->set_scheduleid(scheduleId); request.mutable_scheduleinfo()->set_data(kTestData.data(), kTestData.size()); request.mutable_scheduleinfo()->set_count(count); @@ -156,6 +158,7 @@ TEST_F(TestWakeupClientServiceImplUnitTest, TestScheduleTask) { ScheduleTaskResponse response = {}; request.mutable_scheduleinfo()->set_clientid(kTestClientId); + request.mutable_scheduleinfo()->set_tasktype(ScheduleTaskType::CUSTOM); request.mutable_scheduleinfo()->set_scheduleid(kTestScheduleId); request.mutable_scheduleinfo()->set_data(kTestData.data(), kTestData.size()); request.mutable_scheduleinfo()->set_count(2); @@ -191,6 +194,7 @@ TEST_F(TestWakeupClientServiceImplUnitTest, TestScheduleTask_conflictScheduleId) request.mutable_scheduleinfo()->set_clientid(kTestClientId); request.mutable_scheduleinfo()->set_scheduleid(kTestScheduleId); + request.mutable_scheduleinfo()->set_tasktype(ScheduleTaskType::CUSTOM); request.mutable_scheduleinfo()->set_data(kTestData.data(), kTestData.size()); request.mutable_scheduleinfo()->set_count(2); request.mutable_scheduleinfo()->set_starttimeinepochseconds(getNow() + 1); @@ -280,7 +284,7 @@ TEST_F(TestWakeupClientServiceImplUnitTest, TestUnscheduleAllTasks) { EXPECT_EQ(getRemoteTaskResponses().size(), 0); } -TEST_F(TestWakeupClientServiceImplUnitTest, TestGetAllScheduledTasks) { +TEST_F(TestWakeupClientServiceImplUnitTest, TestGetAllPendingScheduledTasks) { std::string scheduleId1 = "scheduleId1"; std::string scheduleId2 = "scheduleId2"; int64_t time1 = getNow(); @@ -296,25 +300,26 @@ TEST_F(TestWakeupClientServiceImplUnitTest, TestGetAllScheduledTasks) { ASSERT_TRUE(status.ok()); ClientContext context; - GetAllScheduledTasksRequest request; - GetAllScheduledTasksResponse response; + GetAllPendingScheduledTasksRequest request; + GetAllPendingScheduledTasksResponse response; request.set_clientid("invalid client Id"); - status = getStub()->GetAllScheduledTasks(&context, request, &response); + status = getStub()->GetAllPendingScheduledTasks(&context, request, &response); ASSERT_TRUE(status.ok()); EXPECT_EQ(response.allscheduledtasks_size(), 0); ClientContext context2; - GetAllScheduledTasksRequest request2; - GetAllScheduledTasksResponse response2; + GetAllPendingScheduledTasksRequest request2; + GetAllPendingScheduledTasksResponse response2; request2.set_clientid(kTestClientId); - status = getStub()->GetAllScheduledTasks(&context2, request2, &response2); + status = getStub()->GetAllPendingScheduledTasks(&context2, request2, &response2); ASSERT_TRUE(status.ok()); ASSERT_EQ(response2.allscheduledtasks_size(), 2); for (int i = 0; i < 2; i++) { EXPECT_EQ(response2.allscheduledtasks(i).clientid(), kTestClientId); if (response2.allscheduledtasks(i).scheduleid() == scheduleId1) { + EXPECT_EQ(response2.allscheduledtasks(i).tasktype(), ScheduleTaskType::CUSTOM); EXPECT_EQ(response2.allscheduledtasks(i).data(), std::string(kTestData.begin(), kTestData.end())); EXPECT_EQ(response2.allscheduledtasks(i).count(), count1); @@ -322,6 +327,7 @@ TEST_F(TestWakeupClientServiceImplUnitTest, TestGetAllScheduledTasks) { EXPECT_EQ(response2.allscheduledtasks(i).periodicinseconds(), periodicInSeconds1); } else { EXPECT_EQ(response2.allscheduledtasks(i).scheduleid(), scheduleId2); + EXPECT_EQ(response2.allscheduledtasks(i).tasktype(), ScheduleTaskType::CUSTOM); EXPECT_EQ(response2.allscheduledtasks(i).data(), std::string(kTestData.begin(), kTestData.end())); EXPECT_EQ(response2.allscheduledtasks(i).count(), count2); diff --git a/automotive/remoteaccess/vts/Android.bp b/automotive/remoteaccess/vts/Android.bp new file mode 100644 index 0000000000000000000000000000000000000000..8acd6a1b982326c58979ab7847355c7ae40386df --- /dev/null +++ b/automotive/remoteaccess/vts/Android.bp @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "hardware_interfaces_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +cc_test { + name: "VtsHalAutomotiveRemoteAccess_TargetTest", + srcs: [ + "src/*.cpp", + ], + static_libs: [ + "android.hardware.automotive.remoteaccess-V2-ndk", + "libgtest", + "libgmock", + ], + shared_libs: [ + "libbinder_ndk", + ], + test_suites: [ + "general-tests", + "vts", + "automotive-tests", + "automotive-general-tests", + ], + defaults: [ + "use_libaidlvintf_gtest_helper_static", + ], + require_root: true, + disable_framework: true, +} diff --git a/automotive/remoteaccess/vts/src/VtsHalAutomotiveRemoteAccess_TargetTest.cpp b/automotive/remoteaccess/vts/src/VtsHalAutomotiveRemoteAccess_TargetTest.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0fb743e4b3679a4259b98144acb50f348677b42c --- /dev/null +++ b/automotive/remoteaccess/vts/src/VtsHalAutomotiveRemoteAccess_TargetTest.cpp @@ -0,0 +1,453 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "VtsHalAutomotiveRemoteAccess" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +using ::aidl::android::hardware::automotive::remoteaccess::ApState; +using ::aidl::android::hardware::automotive::remoteaccess::BnRemoteTaskCallback; +using ::aidl::android::hardware::automotive::remoteaccess::IRemoteAccess; +using ::aidl::android::hardware::automotive::remoteaccess::ScheduleInfo; +using ::aidl::android::hardware::automotive::remoteaccess::TaskType; +using ::android::getAidlHalInstanceNames; +using ::android::PrintInstanceNameToString; +using ::android::base::ScopedLockAssertion; +using ::ndk::ScopedAStatus; +using ::ndk::SharedRefBase; +using ::ndk::SpAIBinder; +using ::testing::UnorderedElementsAre; + +namespace { + +const std::string TEST_CLIENT_ID = "TEST CLIENT ID"; +const std::string TEST_SCHEDULE_ID = "TEST SCHEDULE ID"; +const std::string TEST_SCHEDULE_ID_1 = "TEST SCHEDULE ID 1"; +const std::string TEST_SCHEDULE_ID_2 = "TEST SCHEDULE ID 2"; +const std::vector TEST_TASK_DATA = + std::vector({static_cast(0xde), static_cast(0xad), + static_cast(0xbe), static_cast(0xef)}); +const int32_t JOB_DELAY_IN_SECONDS = 5; + +} // namespace + +class VtsHalAutomotiveRemoteAccessTargetTest : public testing::TestWithParam { + public: + virtual void SetUp() override { + const std::string& name = GetParam(); + mHal = IRemoteAccess::fromBinder(SpAIBinder(AServiceManager_waitForService(name.c_str()))); + ASSERT_NE(mHal, nullptr) << "Failed to connect to remote access HAL: " << name; + } + + virtual void TearDown() override { + if (mHal != nullptr) { + mHal->clearRemoteTaskCallback(); + mHal->unscheduleAllTasks(TEST_CLIENT_ID); + } + } + + protected: + std::shared_ptr mHal; + + bool isTaskScheduleSupported(); + int32_t getInterfaceVersion(); + ScheduleInfo getTestScheduleInfo(int32_t delayInSeconds, int32_t count, + int32_t periodicInSeconds); + void setTaskCallbackAndReadyForTask(std::shared_ptr testCallback); +}; + +class TestRemoteTaskCallback final : public BnRemoteTaskCallback { + public: + ScopedAStatus onRemoteTaskRequested(const std::string& clientId, + const std::vector& data) override { + { + std::unique_lock lockGuard(mLock); + mClientIds.push_back(clientId); + mDataList.push_back(data); + } + mCv.notify_one(); + return ScopedAStatus::ok(); + } + + const std::vector getCalledClientIds() { + std::lock_guard lockGuard(mLock); + return mClientIds; + } + + const std::vector> getCalledDataList() { + std::lock_guard lockGuard(mLock); + return mDataList; + } + + bool waitForCallbacks(size_t count, int32_t timeoutInSeconds) { + std::unique_lock lk(mLock); + return mCv.wait_for(lk, std::chrono::seconds(timeoutInSeconds), [this, count] { + ScopedLockAssertion lockAssertion(mLock); + return mClientIds.size() >= count; + }); + } + + private: + std::mutex mLock; + std::vector mClientIds GUARDED_BY(mLock); + std::vector> mDataList GUARDED_BY(mLock); + std::condition_variable mCv; +}; + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testGetVehicleId) { + std::string vehicleId; + + ScopedAStatus status = mHal->getVehicleId(&vehicleId); + + ASSERT_TRUE(status.isOk()) << "Failed to call getVehicleId"; + ASSERT_FALSE(vehicleId.empty()) << "Vehicle ID must not be empty"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testGetWakeupServiceName) { + std::string wakeupServiceName; + + ScopedAStatus status = mHal->getWakeupServiceName(&wakeupServiceName); + + ASSERT_TRUE(status.isOk()) << "Failed to call getWakeupServiceName"; + ASSERT_FALSE(wakeupServiceName.empty()) << "Wakeup service name must not be empty"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testGetProcessorId) { + std::string processorId; + + ScopedAStatus status = mHal->getProcessorId(&processorId); + + ASSERT_TRUE(status.isOk()) << "Failed to call getProcessorId"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testSetClearRemoteTaskCallback) { + std::shared_ptr testCallback = + SharedRefBase::make(); + + ScopedAStatus status = mHal->setRemoteTaskCallback(testCallback); + + ASSERT_TRUE(status.isOk()) << "Failed to call setRemoteTaskCallback"; + + status = mHal->clearRemoteTaskCallback(); + + ASSERT_TRUE(status.isOk()) << "Failed to call clearRemoteTaskCallback"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testNotifyApStateChange) { + ApState apState = ApState{ + .isReadyForRemoteTask = false, + .isWakeupRequired = false, + }; + + ScopedAStatus status = mHal->notifyApStateChange(apState); + + ASSERT_TRUE(status.isOk()) << "Failed to call notifyApStateChange with state: " + << apState.toString(); + + apState = ApState{ + .isReadyForRemoteTask = true, + .isWakeupRequired = false, + }; + + ASSERT_TRUE(status.isOk()) << "Failed to call notifyApStateChange with state: " + << apState.toString(); +} + +int32_t VtsHalAutomotiveRemoteAccessTargetTest::getInterfaceVersion() { + int32_t interfaceVersion = 0; + mHal->getInterfaceVersion(&interfaceVersion); + return interfaceVersion; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testIsTaskScheduleSupported) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + bool supported; + + ScopedAStatus status = mHal->isTaskScheduleSupported(&supported); + + ASSERT_TRUE(status.isOk()) << "Failed to call isTaskScheduleSupported"; +} + +bool VtsHalAutomotiveRemoteAccessTargetTest::isTaskScheduleSupported() { + bool supported = false; + mHal->isTaskScheduleSupported(&supported); + return supported; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testGetSupportedTaskTypesForScheduling) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + std::vector supportedTaskTypes; + + ScopedAStatus status = mHal->getSupportedTaskTypesForScheduling(&supportedTaskTypes); + + ASSERT_TRUE(status.isOk()) << "Failed to call getSupportedTaskTypesForScheduling"; + + if (!isTaskScheduleSupported()) { + ASSERT_TRUE(supportedTaskTypes.empty()) + << "getSupportedTaskTypesForScheduling must return empty array " + << "if isTaskScheduleSupported is false"; + return; + } + + ASSERT_TRUE(std::find(supportedTaskTypes.begin(), supportedTaskTypes.end(), TaskType::CUSTOM) != + supportedTaskTypes.end()) + << "getSupportedTaskTypesForScheduling must contain TaskType::CUSTOM"; +} + +ScheduleInfo VtsHalAutomotiveRemoteAccessTargetTest::getTestScheduleInfo( + int32_t delayInSeconds, int32_t count, int32_t periodicInSeconds) { + auto nowInEpochSeconds = std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()) + .count(); + + return ScheduleInfo{ + .clientId = TEST_CLIENT_ID, + .scheduleId = TEST_SCHEDULE_ID, + .taskType = TaskType::CUSTOM, + .taskData = TEST_TASK_DATA, + .count = count, + .startTimeInEpochSeconds = nowInEpochSeconds + delayInSeconds, + .periodicInSeconds = periodicInSeconds, + }; +} + +void VtsHalAutomotiveRemoteAccessTargetTest::setTaskCallbackAndReadyForTask( + std::shared_ptr testCallback) { + mHal->setRemoteTaskCallback(testCallback); + // Notify isReadForRemoteTask to be true. + mHal->notifyApStateChange(ApState{ + .isReadyForRemoteTask = true, + .isWakeupRequired = false, + }); +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testScheduleTask) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + std::shared_ptr testCallback = + SharedRefBase::make(); + setTaskCallbackAndReadyForTask(testCallback); + + int32_t count = 2; + ScheduleInfo scheduleInfo = getTestScheduleInfo( + /*delayInSeconds=*/JOB_DELAY_IN_SECONDS, count, /*periodicInSeconds=*/1); + ScopedAStatus status = mHal->scheduleTask(scheduleInfo); + + if (!isTaskScheduleSupported()) { + ASSERT_FALSE(status.isOk()) << "scheduleTask must return EX_ILLEGAL_ARGUMENT " + << "if isTaskScheduleSupported is false"; + ASSERT_EQ(status.getExceptionCode(), EX_ILLEGAL_ARGUMENT) + << "scheduleTask must return EX_ILLEGAL_ARGUMENT " + << "if isTaskScheduleSupported is false"; + return; + } + + ASSERT_TRUE(status.isOk()) << "Failed to call scheduleTask with scheduleInfo: " + << scheduleInfo.toString(); + + int32_t timeoutInSeconds = JOB_DELAY_IN_SECONDS + 5; + bool gotCallbacks = testCallback->waitForCallbacks(count, timeoutInSeconds); + // unschedule the task before checking the result. + mHal->unscheduleTask(TEST_CLIENT_ID, TEST_SCHEDULE_ID); + + ASSERT_TRUE(gotCallbacks) << "Callbacks is not called enough times before timeout: " + << timeoutInSeconds << "s"; + std::vector> dataList = testCallback->getCalledDataList(); + std::vector clientIds = testCallback->getCalledClientIds(); + + for (size_t i = 0; i < dataList.size(); i++) { + EXPECT_EQ(dataList[i], TEST_TASK_DATA) << "Must receive expected task data"; + EXPECT_EQ(clientIds[i], TEST_CLIENT_ID) << "Must receive expected client id"; + } +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testUnscheduleTask) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + std::shared_ptr testCallback = + SharedRefBase::make(); + setTaskCallbackAndReadyForTask(testCallback); + + ScheduleInfo scheduleInfo = getTestScheduleInfo( + /*delayInSeconds=*/JOB_DELAY_IN_SECONDS, /*count=*/1, /*periodicInSeconds=*/0); + mHal->scheduleTask(scheduleInfo); + ScopedAStatus status = mHal->unscheduleTask(TEST_CLIENT_ID, TEST_SCHEDULE_ID); + + ASSERT_TRUE(status.isOk()) << "Failed to call unscheduleTask"; + + // If not cancelled, should be called in 5s, wait for 6s and make sure no task arrives. + std::this_thread::sleep_for(std::chrono::seconds(JOB_DELAY_IN_SECONDS + 1)); + + ASSERT_TRUE(testCallback->getCalledClientIds().empty()) + << "Remote task callback must not be called if the task is cancelled"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testUnscheduleAllTasks) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + std::shared_ptr testCallback = + SharedRefBase::make(); + setTaskCallbackAndReadyForTask(testCallback); + + ScheduleInfo scheduleInfo = getTestScheduleInfo( + /*delayInSeconds=*/JOB_DELAY_IN_SECONDS, /*count=*/1, /*periodicInSeconds=*/0); + mHal->scheduleTask(scheduleInfo); + ScopedAStatus status = mHal->unscheduleAllTasks(TEST_CLIENT_ID); + + ASSERT_TRUE(status.isOk()) << "Failed to call unscheduleAllTasks"; + + // If not cancelled, should be called in 5s, wait for 6s and make sure no task arrives. + std::this_thread::sleep_for(std::chrono::seconds(JOB_DELAY_IN_SECONDS + 1)); + + ASSERT_TRUE(testCallback->getCalledClientIds().empty()) + << "Remote task callback must not be called if the task is cancelled"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testIsTaskScheduled) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + std::shared_ptr testCallback = + SharedRefBase::make(); + setTaskCallbackAndReadyForTask(testCallback); + + ScheduleInfo scheduleInfo = getTestScheduleInfo( + /*delayInSeconds=*/JOB_DELAY_IN_SECONDS, /*count=*/1, /*periodicInSeconds=*/0); + mHal->scheduleTask(scheduleInfo); + + bool scheduled; + ScopedAStatus status = mHal->isTaskScheduled(TEST_CLIENT_ID, TEST_SCHEDULE_ID, &scheduled); + + ASSERT_TRUE(status.isOk()) << "Failed to call unscheduleTask"; + + if (!isTaskScheduleSupported()) { + ASSERT_FALSE(scheduled) << "isTaskScheduled must return false " + << "if isTaskScheduleSupported is false"; + return; + } + + ASSERT_TRUE(scheduled) << "isTaskScheduled must return true if the task is scheduled"; + + mHal->unscheduleAllTasks(TEST_CLIENT_ID); + status = mHal->isTaskScheduled(TEST_CLIENT_ID, TEST_SCHEDULE_ID, &scheduled); + + ASSERT_TRUE(status.isOk()) << "Failed to call unscheduleTask"; + ASSERT_FALSE(scheduled) << "isTaskScheduled must return false if the task is not scheduled"; +} + +TEST_P(VtsHalAutomotiveRemoteAccessTargetTest, testGetAllPendingScheduledTasks) { + if (getInterfaceVersion() < 2) { + GTEST_SKIP() << "Require RemoteAccess HAL v2"; + } + + std::shared_ptr testCallback = + SharedRefBase::make(); + setTaskCallbackAndReadyForTask(testCallback); + + auto nowInEpochSeconds = std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()) + .count(); + + ScheduleInfo scheduleInfo1 = ScheduleInfo{ + .clientId = TEST_CLIENT_ID, + .scheduleId = TEST_SCHEDULE_ID_1, + .taskType = TaskType::CUSTOM, + .taskData = TEST_TASK_DATA, + .count = 1, + .startTimeInEpochSeconds = nowInEpochSeconds + 5, + .periodicInSeconds = 0, + }; + ScheduleInfo scheduleInfo2 = ScheduleInfo{ + .clientId = TEST_CLIENT_ID, + .scheduleId = TEST_SCHEDULE_ID_2, + .taskType = TaskType::CUSTOM, + .taskData = TEST_TASK_DATA, + .count = 10, + .startTimeInEpochSeconds = nowInEpochSeconds + 10, + .periodicInSeconds = 1, + }; + mHal->scheduleTask(scheduleInfo1); + mHal->scheduleTask(scheduleInfo2); + + std::vector outScheduleInfo; + ScopedAStatus status = mHal->getAllPendingScheduledTasks(TEST_CLIENT_ID, &outScheduleInfo); + + ASSERT_TRUE(status.isOk()) << "Failed to call getAllPendingScheduledTasks"; + + if (!isTaskScheduleSupported()) { + ASSERT_TRUE(outScheduleInfo.empty()) + << "Must return empty array for getAllPendingScheduledTasks " + << "if isTaskScheduleSupported is false"; + return; + } + + ASSERT_THAT(outScheduleInfo, UnorderedElementsAre(scheduleInfo1, scheduleInfo2)) + << "expected all pending schedule info mismatch"; + + mHal->unscheduleTask(TEST_CLIENT_ID, TEST_SCHEDULE_ID_1); + + status = mHal->getAllPendingScheduledTasks(TEST_CLIENT_ID, &outScheduleInfo); + + ASSERT_TRUE(status.isOk()) << "Failed to call getAllPendingScheduledTasks"; + + ASSERT_THAT(outScheduleInfo, UnorderedElementsAre(scheduleInfo2)) + << "expected all pending schedule info mismatch"; +} + +// It is possible that no remote access HAL is registered. +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(VtsHalAutomotiveRemoteAccessTargetTest); + +INSTANTIATE_TEST_SUITE_P(PerInstance, VtsHalAutomotiveRemoteAccessTargetTest, + testing::ValuesIn(getAidlHalInstanceNames(IRemoteAccess::descriptor)), + PrintInstanceNameToString); + +int main(int argc, char** argv) { + ::testing::InitGoogleTest(&argc, argv); + // Starts a process pool for callbacks. + ABinderProcess_setThreadPoolMaxThreadCount(1); + ABinderProcess_startThreadPool(); + return RUN_ALL_TESTS(); +} diff --git a/automotive/vehicle/2.0/default/common/src/VehicleUtils.cpp b/automotive/vehicle/2.0/default/common/src/VehicleUtils.cpp index c16b29a2e7367c6b3df4ea875719f86253711034..03a9df579bd1fb8cc476b657d5aeed8d11ce89ad 100644 --- a/automotive/vehicle/2.0/default/common/src/VehicleUtils.cpp +++ b/automotive/vehicle/2.0/default/common/src/VehicleUtils.cpp @@ -30,7 +30,7 @@ namespace V2_0 { std::unique_ptr createVehiclePropValue( VehiclePropertyType type, size_t vecSize) { - auto val = std::unique_ptr(new VehiclePropValue); + auto val = std::unique_ptr(new VehiclePropValue()); switch (type) { case VehiclePropertyType::INT32: // fall through case VehiclePropertyType::INT32_VEC: // fall through diff --git a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp index b56a1907c83660e45d93b14235df6081a152ec4a..82e357f34ffa1dae8a8521626697572b7c82b08e 100644 --- a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp +++ b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultVehicleHal.cpp @@ -494,7 +494,11 @@ void DefaultVehicleHal::onContinuousPropertyTimer(const std::vector& pr } for (int areaId : areaIds) { - auto v = pool.obtain(*mPropStore->refreshTimestamp(property, areaId)); + auto refreshedProp = mPropStore->refreshTimestamp(property, areaId); + VehiclePropValuePtr v = nullptr; + if (refreshedProp != nullptr) { + v = pool.obtain(*refreshedProp); + } if (v.get()) { events.push_back(std::move(v)); } diff --git a/automotive/vehicle/Android.bp b/automotive/vehicle/Android.bp index 3549519ead8506f242a5dd88b43518ec5d8b18fe..e6149378b091cc0b6fd2b5614fc451decbf9ba34 100644 --- a/automotive/vehicle/Android.bp +++ b/automotive/vehicle/Android.bp @@ -25,3 +25,11 @@ cc_defaults { "android.hardware.automotive.vehicle.property-V3-ndk", ], } + +rust_defaults { + name: "VehicleHalInterfaceRustDefaults", + rustlibs: [ + "android.hardware.automotive.vehicle-V3-rust", + "android.hardware.automotive.vehicle.property-V3-rust", + ], +} diff --git a/automotive/vehicle/TEST_MAPPING b/automotive/vehicle/TEST_MAPPING index e1a90cba396012d2df7ca500b42cf2ca668b95b4..7306b47fa8295b4b2b8bbd4c6497ab4d84c1c039 100644 --- a/automotive/vehicle/TEST_MAPPING +++ b/automotive/vehicle/TEST_MAPPING @@ -24,9 +24,6 @@ { "name": "VehiclePropertyAnnotationJavaTest" }, - { - "name": "FakeVehicleHardwareTest" - }, { "name": "FakeVehicleHalValueGeneratorsTest" }, @@ -44,6 +41,9 @@ { "name": "VtsHalAutomotiveVehicle_TargetTest" }, + { + "name": "FakeVehicleHardwareTest" + }, { "name": "CarServiceUnitTest", "options" : [ diff --git a/automotive/vehicle/aidl/Android.bp b/automotive/vehicle/aidl/Android.bp index 3be0f28392a0be144b38f6a7d8fdb86160d104e6..ed18ebcb4b130e2b9079b8674db96613ac70b473 100644 --- a/automotive/vehicle/aidl/Android.bp +++ b/automotive/vehicle/aidl/Android.bp @@ -27,7 +27,7 @@ aidl_interface { srcs: [ "android/hardware/automotive/vehicle/*.aidl", ], - frozen: false, + frozen: true, stability: "vintf", backend: { cpp: { @@ -41,6 +41,9 @@ aidl_interface { "com.android.car.framework", ], }, + rust: { + enabled: true, + }, }, versions_with_info: [ { @@ -51,6 +54,10 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, ], diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/.hash b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..312f8580edce993ebe5f6b6a402981817e785151 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/.hash @@ -0,0 +1 @@ +c6f1cc74f83dc53c6a5c08e6dbbb6e25e83e3a6b diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequest.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d88cd8b076cb7aa8966b3ea8e1b3abb318dc3660 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequest.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable GetValueRequest { + long requestId; + android.hardware.automotive.vehicle.VehiclePropValue prop; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequests.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequests.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a7df2ff24d793f86f408765b35015893cf00ff05 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueRequests.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable GetValueRequests { + android.hardware.automotive.vehicle.GetValueRequest[] payloads; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResult.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..25f357586293c5c7a859c94adb74b57499c68958 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResult.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable GetValueResult { + long requestId; + android.hardware.automotive.vehicle.StatusCode status = android.hardware.automotive.vehicle.StatusCode.OK; + @nullable android.hardware.automotive.vehicle.VehiclePropValue prop; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResults.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResults.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4c365b10741d68d2e9eada47dd58ab43ee172b20 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/GetValueResults.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable GetValueResults { + android.hardware.automotive.vehicle.GetValueResult[] payloads; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicle.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicle.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b5f62aa3bf5c7630fd755441a35bcbb0efca6a62 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicle.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@VintfStability +interface IVehicle { + android.hardware.automotive.vehicle.VehiclePropConfigs getAllPropConfigs(); + android.hardware.automotive.vehicle.VehiclePropConfigs getPropConfigs(in int[] props); + void getValues(android.hardware.automotive.vehicle.IVehicleCallback callback, in android.hardware.automotive.vehicle.GetValueRequests requests); + void setValues(android.hardware.automotive.vehicle.IVehicleCallback callback, in android.hardware.automotive.vehicle.SetValueRequests requests); + void subscribe(in android.hardware.automotive.vehicle.IVehicleCallback callback, in android.hardware.automotive.vehicle.SubscribeOptions[] options, int maxSharedMemoryFileCount); + void unsubscribe(in android.hardware.automotive.vehicle.IVehicleCallback callback, in int[] propIds); + void returnSharedMemory(in android.hardware.automotive.vehicle.IVehicleCallback callback, long sharedMemoryId); + const long INVALID_MEMORY_ID = 0; + const int MAX_SHARED_MEMORY_FILES_PER_CLIENT = 3; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicleCallback.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicleCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2c5a333ddefd39ed3bf03892da986d12dba53eec --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/IVehicleCallback.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@VintfStability +interface IVehicleCallback { + oneway void onGetValues(in android.hardware.automotive.vehicle.GetValueResults responses); + oneway void onSetValues(in android.hardware.automotive.vehicle.SetValueResults responses); + oneway void onPropertyEvent(in android.hardware.automotive.vehicle.VehiclePropValues propValues, int sharedMemoryFileCount); + oneway void onPropertySetError(in android.hardware.automotive.vehicle.VehiclePropErrors errors); +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/RawPropValues.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/RawPropValues.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e7b0a137cfc384484c62f4b7effe508a2986a952 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/RawPropValues.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable RawPropValues { + int[] int32Values = {}; + float[] floatValues; + long[] int64Values; + byte[] byteValues; + @utf8InCpp String stringValue; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequest.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6a65307f3cc448dd17f52fea9d7851ed8476bc66 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequest.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SetValueRequest { + long requestId; + android.hardware.automotive.vehicle.VehiclePropValue value; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequests.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequests.aidl new file mode 100644 index 0000000000000000000000000000000000000000..15fd7ea8a8b5975710630c962e0fa3406af0e363 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueRequests.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SetValueRequests { + android.hardware.automotive.vehicle.SetValueRequest[] payloads; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResult.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ec5fabb0b4280d1542be473ebdef445497446ed4 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResult.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SetValueResult { + long requestId; + android.hardware.automotive.vehicle.StatusCode status = android.hardware.automotive.vehicle.StatusCode.OK; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResults.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResults.aidl new file mode 100644 index 0000000000000000000000000000000000000000..47f16563ce555a0dc64236c50482c387b529ecee --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SetValueResults.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SetValueResults { + android.hardware.automotive.vehicle.SetValueResult[] payloads; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/StatusCode.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/StatusCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f7e8c5abf750a44c41b240fbd1e2a48bf39d7e16 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/StatusCode.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum StatusCode { + OK = 0, + TRY_AGAIN = 1, + INVALID_ARG = 2, + NOT_AVAILABLE = 3, + ACCESS_DENIED = 4, + INTERNAL_ERROR = 5, + NOT_AVAILABLE_DISABLED = 6, + NOT_AVAILABLE_SPEED_LOW = 7, + NOT_AVAILABLE_SPEED_HIGH = 8, + NOT_AVAILABLE_POOR_VISIBILITY = 9, + NOT_AVAILABLE_SAFETY = 10, +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SubscribeOptions.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SubscribeOptions.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1b1696b240c1920c92d18b5b41632704ebce44b3 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/SubscribeOptions.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SubscribeOptions { + int propId; + int[] areaIds; + float sampleRate; + float resolution = 0.0f; + boolean enableVariableUpdateRate; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..08d4ee46e8db345509c2a7ec172bbd1d0f639cdb --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehicleAreaConfig { + int areaId; + int minInt32Value; + int maxInt32Value; + long minInt64Value; + long maxInt64Value; + float minFloatValue; + float maxFloatValue; + @nullable long[] supportedEnumValues; + android.hardware.automotive.vehicle.VehiclePropertyAccess access = android.hardware.automotive.vehicle.VehiclePropertyAccess.NONE; + boolean supportVariableUpdateRate; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfig.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8602d2d03d8d72e799d52d18251e2fb9e78f8c81 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfig.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehiclePropConfig { + int prop; + android.hardware.automotive.vehicle.VehiclePropertyAccess access = android.hardware.automotive.vehicle.VehiclePropertyAccess.NONE; + android.hardware.automotive.vehicle.VehiclePropertyChangeMode changeMode = android.hardware.automotive.vehicle.VehiclePropertyChangeMode.STATIC; + android.hardware.automotive.vehicle.VehicleAreaConfig[] areaConfigs; + int[] configArray; + @utf8InCpp String configString; + float minSampleRate; + float maxSampleRate; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfigs.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfigs.aidl new file mode 100644 index 0000000000000000000000000000000000000000..04c8006983c348a7cedcd49fee944b356e74b9f0 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropConfigs.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehiclePropConfigs { + android.hardware.automotive.vehicle.VehiclePropConfig[] payloads; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropError.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropError.aidl new file mode 100644 index 0000000000000000000000000000000000000000..983529542f2667019c1b1b686957d9ad3645e10e --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropError.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehiclePropError { + int propId; + int areaId; + android.hardware.automotive.vehicle.StatusCode errorCode = android.hardware.automotive.vehicle.StatusCode.OK; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropErrors.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropErrors.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9dcb10bc9e7ba2af846ee1729404776a3e338d4e --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropErrors.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehiclePropErrors { + android.hardware.automotive.vehicle.VehiclePropError[] payloads; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValue.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValue.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c87379fd9bc02998a6654c6a20597c23b39403c9 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValue.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehiclePropValue { + long timestamp; + int areaId; + int prop; + android.hardware.automotive.vehicle.VehiclePropertyStatus status = android.hardware.automotive.vehicle.VehiclePropertyStatus.AVAILABLE; + android.hardware.automotive.vehicle.RawPropValues value; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValues.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValues.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e09a6b95df9c4f731ab0dd4622784cbe9fbc0f1a --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropValues.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VehiclePropValues { + android.hardware.automotive.vehicle.VehiclePropValue[] payloads; + long sharedMemoryId; + @nullable ParcelFileDescriptor sharedMemoryFd; +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyAccess.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyAccess.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dde9a88fd385bab75be610ae064d48b480c872a8 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyAccess.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehiclePropertyAccess { + NONE = 0x00, + READ = 0x01, + WRITE = 0x02, + READ_WRITE = 0x03, +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyChangeMode.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyChangeMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2f9d107e88cf414c94cdfc521f2690b0d34dc216 --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyChangeMode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehiclePropertyChangeMode { + STATIC = 0x00, + ON_CHANGE = 0x01, + CONTINUOUS = 0x02, +} diff --git a/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyStatus.aidl b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..642ce83f214a01a8f656740e8018fedb0a5a694d --- /dev/null +++ b/automotive/vehicle/aidl/aidl_api/android.hardware.automotive.vehicle/3/android/hardware/automotive/vehicle/VehiclePropertyStatus.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehiclePropertyStatus { + AVAILABLE = 0x00, + UNAVAILABLE = 0x01, + ERROR = 0x02, +} diff --git a/automotive/vehicle/aidl/android/hardware/automotive/vehicle/SubscribeOptions.aidl b/automotive/vehicle/aidl/android/hardware/automotive/vehicle/SubscribeOptions.aidl index 69f6190363c4bf7ccb1a5e0cbd93cc3cbcabae13..14469b547f3748e9abfcd70ea4c18938271bcb2e 100644 --- a/automotive/vehicle/aidl/android/hardware/automotive/vehicle/SubscribeOptions.aidl +++ b/automotive/vehicle/aidl/android/hardware/automotive/vehicle/SubscribeOptions.aidl @@ -45,8 +45,8 @@ parcelable SubscribeOptions { * * This value indicates the resolution at which continuous property updates should be sent to * the platform. For example, if resolution is 0.01, the subscribed property value should be - * rounded to two decimal places. If the incoming resolution value is not an integer multiple of - * 10, VHAL should return a StatusCode::INVALID_ARG. + * rounded to two decimal places. If the incoming resolution value is not an integer power of + * 10 (i.e. 10^-2, 10^-1, 10^2, etc.), VHAL should return a StatusCode::INVALID_ARG. */ float resolution = 0.0f; diff --git a/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl b/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl index aab3c46d760257ef986e62c3c410885599ad84ff..96c4a745281853060d5bf430bda2d2185b4c4545 100644 --- a/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl +++ b/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehicleAreaConfig.aidl @@ -53,21 +53,25 @@ parcelable VehicleAreaConfig { /** * Defines if the area ID for this property is READ, WRITE or READ_WRITE. This only applies if * the property is defined in the framework as a READ_WRITE property. Access (if set) should be - * equal to, or a superset of, the VehiclePropConfig.access of the property. + * equal to, or a superset of, the VehiclePropConfig.access of the property. If access is not + * set for this VehicleAreaConfig (i.e. access == VehiclePropertyAccess.NONE), then it will + * automatically be assumed that the areaId access is the same as the VehiclePropConfig.access + * of the property. * * For example, if a property is defined as READ_WRITE, but the OEM wants to specify certain * area Ids as READ-only, the corresponding areaIds should have an access set to READ, while the * others must be set to READ_WRITE. We do not support setting specific area Ids to WRITE-only * when the property is READ-WRITE. * - * Exclusively one of VehiclePropConfig and the VehicleAreaConfigs should be specified for a - * single property. If VehiclePropConfig.access is populated, none of the - * VehicleAreaConfig.access values should be populated. If VehicleAreaConfig.access values are - * populated, VehiclePropConfig.access must not be populated. + * VehiclePropConfig.access should be equal the maximal subset of the accesses set in + * VehiclePropConfig.areaConfigs, excluding those with access == VehiclePropertyAccess.NONE. For + * example, if a VehiclePropConfig has some area configs with an access of + * VehiclePropertyAccess.READ and others with an access of VehiclePropertyAccess.READ_WRITE, the + * VehiclePropConfig object's access should be VehiclePropertyAccess.READ. * - * VehicleAreaConfigs should not be partially populated with access. If the OEM wants to specify - * access for one area Id, all other configs should be populated with their access levels as - * well. + * In the scenario where the OEM actually wants to set VehicleAreaConfig.access = + * VehiclePropertyAccess.NONE, the maximal subset rule should apply with this area config + * included, making the VehiclePropConfig.access = VehiclePropertyAccess.NONE. */ VehiclePropertyAccess access = VehiclePropertyAccess.NONE; diff --git a/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehiclePropConfig.aidl b/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehiclePropConfig.aidl index 1135b267bb73855e77ca104774926767b2b0df55..c629b821a789c42510f4001c1ed8b4c6f2401fa2 100644 --- a/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehiclePropConfig.aidl +++ b/automotive/vehicle/aidl/android/hardware/automotive/vehicle/VehiclePropConfig.aidl @@ -29,9 +29,20 @@ parcelable VehiclePropConfig { /** * Defines if the property is read or write or both. * - * If populating VehicleAreaConfig.access fields for this property, this field should not be - * populated. If the OEM decides to populate this field, none of the VehicleAreaConfig.access - * fields should be populated. + * If any VehicleAreaConfig.access is not set (i.e. VehicleAreaConfig.access == + * VehiclePropertyAccess.NONE) for this property, it will automatically be assumed that the + * areaId access is the same as the VehiclePropConfig.access. + * + * VehiclePropConfig.access should be equal the maximal subset of the accesses set in its + * areaConfigs, excluding those with access == VehiclePropertyAccess.NONE. For example, if a + * VehiclePropConfig has some area configs with an access of VehiclePropertyAccess.READ and + * others with an access of VehiclePropertyAccess.READ_WRITE, the VehiclePropConfig object's + * access should be VehiclePropertyAccess.READ. + * + * In the scenario where the OEM actually wants to set VehicleAreaConfig.access = + * VehiclePropertyAccess.NONE for a particular area config, the maximal subset rule should apply + * with this area config included, making the VehiclePropConfig.access = + * VehiclePropertyAccess.NONE. */ VehiclePropertyAccess access = VehiclePropertyAccess.NONE; diff --git a/automotive/vehicle/aidl/emu_metadata/Android.bp b/automotive/vehicle/aidl/emu_metadata/Android.bp new file mode 100644 index 0000000000000000000000000000000000000000..64f895fefdd57ff8d881c55f6e520550c0496efa --- /dev/null +++ b/automotive/vehicle/aidl/emu_metadata/Android.bp @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +filegroup { + name: "android.hardware.automotive.vehicle-types-meta", + srcs: [ + "android.hardware.automotive.vehicle-types-meta.json", + ], +} diff --git a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json index e312a3ae9dd90cb54e1c8c3df01fb040593c812d..c812326d2e6dbced596fb59b3ddb11bc77a5d739 100644 --- a/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json +++ b/automotive/vehicle/aidl/emu_metadata/android.hardware.automotive.vehicle-types-meta.json @@ -1,3460 +1,2929 @@ [ - { - "name": "VehicleApPowerStateReqIndex", - "values": [ - { - "name": "STATE", - "value": 0 - }, - { - "name": "ADDITIONAL", - "value": 1 - } - ] - }, - { - "name": "EvChargeState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "CHARGING", - "value": 1 - }, - { - "name": "FULLY_CHARGED", - "value": 2 - }, - { - "name": "NOT_CHARGING", - "value": 3 - }, - { - "name": "ERROR", - "value": 4 - } - ] - }, - { - "name": "TrailerState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "NOT_PRESENT", - "value": 1 - }, - { - "name": "PRESENT", - "value": 2 - }, - { - "name": "ERROR", - "value": 3 - } - ] - }, - { - "name": "ProcessTerminationReason", - "values": [ - { - "name": "NOT_RESPONDING", - "value": 1 - }, - { - "name": "IO_OVERUSE", - "value": 2 - }, - { - "name": "MEMORY_OVERUSE", - "value": 3 - } - ] - }, - { - "name": "VehicleApPowerStateConfigFlag", - "values": [ - { - "name": "ENABLE_DEEP_SLEEP_FLAG", - "value": 1 - }, - { - "name": "CONFIG_SUPPORT_TIMER_POWER_ON_FLAG", - "value": 2 - }, - { - "name": "ENABLE_HIBERNATION_FLAG", - "value": 3 - } - ] - }, - { - "name": "Obd2FuelType", - "values": [ - { - "name": "NOT_AVAILABLE", - "value": 0 - }, - { - "name": "GASOLINE", - "value": 1 - }, - { - "name": "METHANOL", - "value": 2 - }, - { - "name": "ETHANOL", - "value": 3 - }, - { - "name": "DIESEL", - "value": 4 - }, - { - "name": "LPG", - "value": 5 - }, - { - "name": "CNG", - "value": 6 - }, - { - "name": "PROPANE", - "value": 7 - }, - { - "name": "ELECTRIC", - "value": 8 - }, - { - "name": "BIFUEL_RUNNING_GASOLINE", - "value": 9 - }, - { - "name": "BIFUEL_RUNNING_METHANOL", - "value": 10 - }, - { - "name": "BIFUEL_RUNNING_ETHANOL", - "value": 11 - }, - { - "name": "BIFUEL_RUNNING_LPG", - "value": 12 - }, - { - "name": "BIFUEL_RUNNING_CNG", - "value": 13 - }, - { - "name": "BIFUEL_RUNNING_PROPANE", - "value": 14 - }, - { - "name": "BIFUEL_RUNNING_ELECTRIC", - "value": 15 - }, - { - "name": "BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION", - "value": 16 - }, - { - "name": "HYBRID_GASOLINE", - "value": 17 - }, - { - "name": "HYBRID_ETHANOL", - "value": 18 - }, - { - "name": "HYBRID_DIESEL", - "value": 19 - }, - { - "name": "HYBRID_ELECTRIC", - "value": 20 - }, - { - "name": "HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION", - "value": 21 - }, - { - "name": "HYBRID_REGENERATIVE", - "value": 22 - }, - { - "name": "BIFUEL_RUNNING_DIESEL", - "value": 23 - } - ] - }, - { - "name": "VmsSubscriptionsStateIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "SEQUENCE_NUMBER", - "value": 1 - }, - { - "name": "NUMBER_OF_LAYERS", - "value": 2 - }, - { - "name": "NUMBER_OF_ASSOCIATED_LAYERS", - "value": 3 - }, - { - "name": "SUBSCRIPTIONS_START", - "value": 4 - } - ] - }, - { - "name": "VehicleArea", - "values": [ - { - "name": "GLOBAL", - "value": 16777216 - }, - { - "name": "WINDOW", - "value": 50331648 - }, - { - "name": "MIRROR", - "value": 67108864 - }, - { - "name": "SEAT", - "value": 83886080 - }, - { - "name": "DOOR", - "value": 100663296 - }, - { - "name": "WHEEL", - "value": 117440512 - }, - { - "name": "MASK", - "value": 251658240 - } - ] - }, - { - "name": "VehicleAreaWindow", - "values": [ - { - "name": "FRONT_WINDSHIELD", - "value": 1 - }, - { - "name": "REAR_WINDSHIELD", - "value": 2 - }, - { - "name": "ROW_1_LEFT", - "value": 16 - }, - { - "name": "ROW_1_RIGHT", - "value": 64 - }, - { - "name": "ROW_2_LEFT", - "value": 256 - }, - { - "name": "ROW_2_RIGHT", - "value": 1024 - }, - { - "name": "ROW_3_LEFT", - "value": 4096 - }, - { - "name": "ROW_3_RIGHT", - "value": 16384 - }, - { - "name": "ROOF_TOP_1", - "value": 65536 - }, - { - "name": "ROOF_TOP_2", - "value": 131072 - } - ] - }, - { - "name": "ElectronicTollCollectionCardStatus", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_VALID", - "value": 1 - }, - { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_INVALID", - "value": 2 - }, - { - "name": "ELECTRONIC_TOLL_COLLECTION_CARD_NOT_INSERTED", - "value": 3 - } - ] - }, - { - "name": "VehiclePropertyType", - "values": [ - { - "name": "STRING", - "value": 1048576 - }, - { - "name": "BOOLEAN", - "value": 2097152 - }, - { - "name": "INT32", - "value": 4194304 - }, - { - "name": "INT32_VEC", - "value": 4259840 - }, - { - "name": "INT64", - "value": 5242880 - }, - { - "name": "INT64_VEC", - "value": 5308416 - }, - { - "name": "FLOAT", - "value": 6291456 - }, - { - "name": "FLOAT_VEC", - "value": 6356992 - }, - { - "name": "BYTES", - "value": 7340032 - }, - { - "name": "MIXED", - "value": 14680064 - }, - { - "name": "MASK", - "value": 16711680 - } - ] - }, - { - "name": "StatusCode", - "values": [ - { - "name": "OK", - "value": 0 - }, - { - "name": "TRY_AGAIN", - "value": 1 - }, - { - "name": "INVALID_ARG", - "value": 2 - }, - { - "name": "NOT_AVAILABLE", - "value": 3 - }, - { - "name": "ACCESS_DENIED", - "value": 4 - }, - { - "name": "INTERNAL_ERROR", - "value": 5 - } - ] - }, - { - "name": "CreateUserStatus", - "values": [ - { - "name": "SUCCESS", - "value": 1 - }, - { - "name": "FAILURE", - "value": 2 - } - ] - }, - { - "name": "ElectronicTollCollectionCardType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD", - "value": 1 - }, - { - "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD_V2", - "value": 2 - } - ] - }, - { - "name": "VehicleAreaMirror", - "values": [ - { - "name": "DRIVER_LEFT", - "value": 1 - }, - { - "name": "DRIVER_RIGHT", - "value": 2 - }, - { - "name": "DRIVER_CENTER", - "value": 4 - } - ] - }, - { - "name": "InitialUserInfoResponseAction", - "values": [ - { - "name": "DEFAULT", - "value": 0 - }, - { - "name": "SWITCH", - "value": 1 - }, - { - "name": "CREATE", - "value": 2 - } - ] - }, - { - "name": "VehicleHvacFanDirection", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "FACE", - "value": 1 - }, - { - "name": "FLOOR", - "value": 2 - }, - { - "name": "FACE_AND_FLOOR", - "value": 3 - }, - { - "name": "DEFROST", - "value": 4 - }, - { - "name": "DEFROST_AND_FLOOR", - "value": 6 - } - ] - }, - { - "name": "Obd2SecondaryAirStatus", - "values": [ - { - "name": "UPSTREAM", - "value": 1 - }, - { - "name": "DOWNSTREAM_OF_CATALYCIC_CONVERTER", - "value": 2 - }, - { - "name": "FROM_OUTSIDE_OR_OFF", - "value": 4 - }, - { - "name": "PUMP_ON_FOR_DIAGNOSTICS", - "value": 8 - } - ] - }, - { - "name": "VmsStartSessionMessageIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "SERVICE_ID", - "value": 1 - }, - { - "name": "CLIENT_ID", - "value": 2 - } - ] - }, - { - "name": "VehicleOilLevel", - "values": [ - { - "name": "CRITICALLY_LOW", - "value": 0 - }, - { - "name": "LOW", - "value": 1 - }, - { - "name": "NORMAL", - "value": 2 - }, - { - "name": "HIGH", - "value": 3 - }, - { - "name": "ERROR", - "value": 4 - } - ] - }, - { - "name": "VehicleUnit", - "values": [ - { - "name": "SHOULD_NOT_USE", - "value": 0 - }, - { - "name": "METER_PER_SEC", - "value": 1 - }, - { - "name": "RPM", - "value": 2 - }, - { - "name": "HERTZ", - "value": 3 - }, - { - "name": "PERCENTILE", - "value": 16 - }, - { - "name": "MILLIMETER", - "value": 32 - }, - { - "name": "METER", - "value": 33 - }, - { - "name": "KILOMETER", - "value": 35 - }, - { - "name": "MILE", - "value": 36 - }, - { - "name": "CELSIUS", - "value": 48 - }, - { - "name": "FAHRENHEIT", - "value": 49 - }, - { - "name": "KELVIN", - "value": 50 - }, - { - "name": "MILLILITER", - "value": 64 - }, - { - "name": "LITER", - "value": 65 - }, - { - "name": "GALLON", - "value": 66 - }, - { - "name": "US_GALLON", - "value": 66 - }, - { - "name": "IMPERIAL_GALLON", - "value": 67 - }, - { - "name": "NANO_SECS", - "value": 80 - }, - { - "name": "SECS", - "value": 83 - }, - { - "name": "YEAR", - "value": 89 - }, - { - "name": "WATT_HOUR", - "value": 96 - }, - { - "name": "MILLIAMPERE", - "value": 97 - }, - { - "name": "MILLIVOLT", - "value": 98 - }, - { - "name": "MILLIWATTS", - "value": 99 - }, - { - "name": "AMPERE_HOURS", - "value": 100 - }, - { - "name": "KILOWATT_HOUR", - "value": 101 - }, - { - "name": "AMPERE", - "value": 102 - }, - { - "name": "KILOPASCAL", - "value": 112 - }, - { - "name": "PSI", - "value": 113 - }, - { - "name": "BAR", - "value": 114 - }, - { - "name": "DEGREES", - "value": 128 - }, - { - "name": "MILES_PER_HOUR", - "value": 144 - }, - { - "name": "KILOMETERS_PER_HOUR", - "value": 145 - } - ] - }, - { - "name": "VehicleAreaWheel", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "LEFT_FRONT", - "value": 1 - }, - { - "name": "RIGHT_FRONT", - "value": 2 - }, - { - "name": "LEFT_REAR", - "value": 4 - }, - { - "name": "RIGHT_REAR", - "value": 8 - } - ] - }, - { - "name": "EvsServiceState", - "values": [ - { - "name": "OFF", - "value": 0 - }, - { - "name": "ON", - "value": 1 - } - ] - }, - { - "name": "EvsServiceRequestIndex", - "values": [ - { - "name": "TYPE", - "value": 0 - }, - { - "name": "STATE", - "value": 1 - } - ] - }, - { - "name": "VehicleSeatOccupancyState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "VACANT", - "value": 1 - }, - { - "name": "OCCUPIED", - "value": 2 - } - ] - }, - { - "name": "VehicleProperty", - "values": [ - { - "name": "Undefined property.", - "value": 0 - }, - { - "name": "VIN of vehicle", - "value": 286261504, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Manufacturer of vehicle", - "value": 286261505, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Model of vehicle", - "value": 286261506, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Model year of vehicle.", - "value": 289407235, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:YEAR" - }, - { - "name": "Fuel capacity of the vehicle in milliliters", - "value": 291504388, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLILITER" - }, - { - "name": "List of fuels the vehicle may use", - "value": 289472773, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "FuelType" - }, - { - "name": "INFO_EV_BATTERY_CAPACITY", - "value": 291504390, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:WH" - }, - { - "name": "List of connectors this EV may use", - "value": 289472775, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "EvConnectorType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Fuel door location", - "value": 289407240, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "PortLocationType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "EV port location", - "value": 289407241, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "PortLocationType" - }, - { - "name": "INFO_DRIVER_SEAT", - "value": 356516106, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "data_enum": "VehicleAreaSeat", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Exterior dimensions of vehicle.", - "value": 289472779, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLIMETER" - }, - { - "name": "Multiple EV port locations", - "value": 289472780, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "PortLocationType" - }, - { - "name": "Current odometer value of the vehicle", - "value": 291504644, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOMETER" - }, - { - "name": "Speed of the vehicle", - "value": 291504647, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:METER_PER_SEC" - }, - { - "name": "Speed of the vehicle for displays", - "value": 291504648, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:METER_PER_SEC" - }, - { - "name": "Front bicycle model steering angle for vehicle", - "value": 291504649, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:DEGREES" - }, - { - "name": "Rear bicycle model steering angle for vehicle", - "value": 291504656, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:DEGREES" - }, - { - "name": "Temperature of engine coolant", - "value": 291504897, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "Engine oil level", - "value": 289407747, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleOilLevel" - }, - { - "name": "Temperature of engine oil", - "value": 291504900, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "Engine rpm", - "value": 291504901, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:RPM" - }, - { - "name": "Reports wheel ticks", - "value": 290521862, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "FUEL_LEVEL", - "value": 291504903, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MILLILITER" - }, - { - "name": "Fuel door open", - "value": 287310600, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "EV_BATTERY_LEVEL", - "value": 291504905, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:WH" - }, - { - "name": "EV charge port open", - "value": 287310602, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "EV charge port connected", - "value": 287310603, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "EV instantaneous charge rate in milliwatts", - "value": 291504908, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:MW" - }, - { - "name": "Range remaining", - "value": 291504904, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:METER" - }, - { - "name": "Tire pressure", - "value": 392168201, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOPASCAL" - }, - { - "name": "Critically low tire pressure", - "value": 392168202, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOPASCAL" - }, - { - "name": "Currently selected gear", - "value": 289408000, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleGear" - }, - { - "name": "CURRENT_GEAR", - "value": 289408001, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleGear" - }, - { - "name": "Parking brake state.", - "value": 287310850, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "PARKING_BRAKE_AUTO_APPLY", - "value": 287310851, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Warning for fuel low level.", - "value": 287310853, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Night mode", - "value": 287310855, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "State of the vehicles turn signals", - "value": 289408008, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleTurnSignal" - }, - { - "name": "Represents ignition state", - "value": 289408009, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleIgnitionState" - }, - { - "name": "ABS is active", - "value": 287310858, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Traction Control is active", - "value": 287310859, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "HVAC_FAN_SPEED", - "value": 356517120 - }, - { - "name": "Fan direction setting", - "value": 356517121, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleHvacFanDirection" - }, - { - "name": "HVAC current temperature.", - "value": 358614274, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "HVAC_TEMPERATURE_SET", - "value": 358614275, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "HVAC_DEFROSTER", - "value": 320865540, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_AC_ON", - "value": 354419973, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "config_flags": "Supported" - }, - { - "name": "HVAC_MAX_AC_ON", - "value": 354419974, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_MAX_DEFROST_ON", - "value": 354419975, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_RECIRC_ON", - "value": 354419976, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Enable temperature coupling between areas.", - "value": 354419977, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_AUTO_ON", - "value": 354419978, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_SEAT_TEMPERATURE", - "value": 356517131, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Side Mirror Heat", - "value": 339739916, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_STEERING_WHEEL_HEAT", - "value": 289408269, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Temperature units for display", - "value": 289408270, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Actual fan speed", - "value": 356517135, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "HVAC_POWER_ON", - "value": 354419984, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Fan Positions Available", - "value": 356582673, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleHvacFanDirection" - }, - { - "name": "HVAC_AUTO_RECIRC_ON", - "value": 354419986, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat ventilation", - "value": 356517139, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HVAC_ELECTRIC_DEFROSTER_ON", - "value": 320865556, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Suggested values for setting HVAC temperature.", - "value": 291570965, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Distance units for display", - "value": 289408512, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Fuel volume units for display", - "value": 289408513, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Tire pressure units for display", - "value": 289408514, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "EV battery units for display", - "value": 289408515, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleUnit" - }, - { - "name": "Fuel consumption units for display", - "value": 287311364, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Speed units for display", - "value": 289408517, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "ANDROID_EPOCH_TIME", - "value": 290457094, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE_ONLY", - "unit": "VehicleUnit:MILLI_SECS" - }, - { - "name": "External encryption binding seed.", - "value": 292554247, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Outside temperature", - "value": 291505923, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:CELSIUS" - }, - { - "name": "Property to control power state of application processor", - "value": 289475072, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Property to report power state of application processor", - "value": 289475073, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "AP_POWER_BOOTUP_REASON", - "value": 289409538, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "DISPLAY_BRIGHTNESS", - "value": 289409539, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "HW_KEY_INPUT", - "value": 289475088, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "config_flags": "" - }, - { - "name": "HW_ROTARY_INPUT", - "value": 289475104, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "data_enum": "RotaryInputType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Defines a custom OEM partner input event.", - "value": 289475120, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "data_enum": "CustomInputType", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "DOOR_POS", - "value": 373295872, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Door move", - "value": 373295873, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Door lock", - "value": 371198722, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Z Position", - "value": 339741504, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Z Move", - "value": 339741505, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Y Position", - "value": 339741506, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Y Move", - "value": 339741507, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Lock", - "value": 287312708, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Mirror Fold", - "value": 287312709, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat memory select", - "value": 356518784, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Seat memory set", - "value": 356518785, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Seatbelt buckled", - "value": 354421634, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seatbelt height position", - "value": 356518787, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seatbelt height move", - "value": 356518788, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_FORE_AFT_POS", - "value": 356518789, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_FORE_AFT_MOVE", - "value": 356518790, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 1 position", - "value": 356518791, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 1 move", - "value": 356518792, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 2 position", - "value": 356518793, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat backrest angle 2 move", - "value": 356518794, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat height position", - "value": 356518795, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat height move", - "value": 356518796, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat depth position", - "value": 356518797, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat depth move", - "value": 356518798, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat tilt position", - "value": 356518799, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat tilt move", - "value": 356518800, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_LUMBAR_FORE_AFT_POS", - "value": 356518801, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_LUMBAR_FORE_AFT_MOVE", - "value": 356518802, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Lumbar side support position", - "value": 356518803, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Lumbar side support move", - "value": 356518804, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest height position", - "value": 289409941, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest height move", - "value": 356518806, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest angle position", - "value": 356518807, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Headrest angle move", - "value": 356518808, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_HEADREST_FORE_AFT_POS", - "value": 356518809, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "SEAT_HEADREST_FORE_AFT_MOVE", - "value": 356518810, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Seat Occupancy", - "value": 356518832, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleSeatOccupancyState" - }, - { - "name": "Window Position", - "value": 322964416, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Window Move", - "value": 322964417, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Window Lock", - "value": 320867268, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "VEHICLE_MAP_SERVICE", - "value": 299895808, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "OBD2 Live Sensor Data", - "value": 299896064, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Freeze Frame Sensor Data", - "value": 299896065, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Freeze Frame Information", - "value": 299896066, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "OBD2 Freeze Frame Clear", - "value": 299896067, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Headlights State", - "value": 289410560, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "High beam lights state", - "value": 289410561, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Fog light state", - "value": 289410562, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Hazard light status", - "value": 289410563, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Headlight switch", - "value": 289410576, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "High beam light switch", - "value": 289410577, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Fog light switch", - "value": 289410578, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Hazard light switch", - "value": 289410579, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Cabin lights", - "value": 289410817, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Cabin lights switch", - "value": 289410818, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Reading lights", - "value": 356519683, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Reading lights switch", - "value": 356519684, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Support customize permissions for vendor properties", - "value": 287313669, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Allow disabling optional featurs from vhal.", - "value": 286265094, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Defines the initial Android user to be used during initialization.", - "value": 299896583, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Defines a request to switch the foreground Android user.", - "value": 299896584, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Called by the Android System after an Android user was created.", - "value": 299896585, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Called by the Android System after an Android user was removed.", - "value": 299896586, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "USER_IDENTIFICATION_ASSOCIATION", - "value": 299896587, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "EVS_SERVICE_REQUEST", - "value": 289476368, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Defines a request to apply power policy.", - "value": 286265121, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "POWER_POLICY_GROUP_REQ", - "value": 286265122, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Notifies the current power policy to VHAL layer.", - "value": 286265123, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "WATCHDOG_ALIVE", - "value": 290459441, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Defines a process terminated by car watchdog and the reason of termination.", - "value": 299896626, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Defines an event that VHAL signals to car watchdog as a heartbeat.", - "value": 290459443, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Starts the ClusterUI in cluster display.", - "value": 289410868, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Changes the state of the cluster display.", - "value": 289476405, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ" - }, - { - "name": "Reports the current display state and ClusterUI state.", - "value": 299896630, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Requests to change the cluster display state to show some ClusterUI.", - "value": 289410871, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Informs the current navigation state.", - "value": 292556600, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:WRITE" - }, - { - "name": "Electronic Toll Collection card type.", - "value": 289410873, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ElectronicTollCollectionCardType" - }, - { - "name": "Electronic Toll Collection card status.", - "value": 289410874, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "ElectronicTollCollectionCardStatus" - }, - { - "name": "Front fog lights state", - "value": 289410875, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Front fog lights switch", - "value": 289410876, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Rear fog lights state", - "value": 289410877, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "VehicleLightState" - }, - { - "name": "Rear fog lights switch", - "value": 289410878, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "data_enum": "VehicleLightSwitch" - }, - { - "name": "Indicates the maximum current draw threshold for charging set by the user", - "value": 291508031, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE", - "unit": "VehicleUnit:AMPERE" - }, - { - "name": "Indicates the maximum charge percent threshold set by the user", - "value": 291508032, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Charging state of the car", - "value": 289410881, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "EvChargeState" - }, - { - "name": "Start or stop charging the EV battery", - "value": 287313730, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ_WRITE" - }, - { - "name": "Estimated charge time remaining in seconds", - "value": 289410883, - "change_mode": "VehiclePropertyChangeMode:CONTINUOUS", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:SECS" - }, - { - "name": "EV_REGENERATIVE_BRAKING_STATE", - "value": 289410884, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "EvRegenerativeBrakingState" - }, - { - "name": "Indicates if there is a trailer present or not.", - "value": 289410885, - "change_mode": "VehiclePropertyChangeMode:ON_CHANGE", - "access": "VehiclePropertyAccess:READ", - "data_enum": "TrailerState" - }, - { - "name": "VEHICLE_CURB_WEIGHT", - "value": 289410886, - "change_mode": "VehiclePropertyChangeMode:STATIC", - "access": "VehiclePropertyAccess:READ", - "unit": "VehicleUnit:KILOGRAM" - } - ] - }, - { - "name": "EvsServiceType", - "values": [ - { - "name": "REARVIEW", - "value": 0 - }, - { - "name": "SURROUNDVIEW", - "value": 1 - } - ] - }, - { - "name": "VehiclePropertyChangeMode", - "values": [ - { - "name": "STATIC", - "value": 0 - }, - { - "name": "ON_CHANGE", - "value": 1 - }, - { - "name": "CONTINUOUS", - "value": 2 - } - ] - }, - { - "name": "Obd2CompressionIgnitionMonitors", - "values": [] - }, - { - "name": "VehicleLightState", - "values": [ - { - "name": "OFF", - "value": 0 - }, - { - "name": "ON", - "value": 1 - }, - { - "name": "DAYTIME_RUNNING", - "value": 2 - } - ] - }, - { - "name": "SwitchUserMessageType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "LEGACY_ANDROID_SWITCH", - "value": 1 - }, - { - "name": "ANDROID_SWITCH", - "value": 2 - }, - { - "name": "VEHICLE_RESPONSE", - "value": 3 - }, - { - "name": "VEHICLE_REQUEST", - "value": 4 - }, - { - "name": "ANDROID_POST_SWITCH", - "value": 5 - } - ] - }, - { - "name": "PortLocationType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "FRONT_LEFT", - "value": 1 - }, - { - "name": "FRONT_RIGHT", - "value": 2 - }, - { - "name": "REAR_RIGHT", - "value": 3 - }, - { - "name": "REAR_LEFT", - "value": 4 - }, - { - "name": "FRONT", - "value": 5 - }, - { - "name": "REAR", - "value": 6 - } - ] - }, - { - "name": "VehiclePropertyStatus", - "values": [ - { - "name": "AVAILABLE", - "value": 0 - }, - { - "name": "UNAVAILABLE", - "value": 1 - }, - { - "name": "ERROR", - "value": 2 - } - ] - }, - { - "name": "VehicleDisplay", - "values": [ - { - "name": "MAIN", - "value": 0 - }, - { - "name": "INSTRUMENT_CLUSTER", - "value": 1 - } - ] - }, - { - "name": "SwitchUserStatus", - "values": [ - { - "name": "SUCCESS", - "value": 1 - }, - { - "name": "FAILURE", - "value": 2 - } - ] - }, - { - "name": "InitialUserInfoRequestType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "FIRST_BOOT", - "value": 1 - }, - { - "name": "FIRST_BOOT_AFTER_OTA", - "value": 2 - }, - { - "name": "COLD_BOOT", - "value": 3 - }, - { - "name": "RESUME", - "value": 4 - } - ] - }, - { - "name": "UserIdentificationAssociationSetValue", - "values": [ - { - "name": "INVALID", - "value": 0 - }, - { - "name": "ASSOCIATE_CURRENT_USER", - "value": 1 - }, - { - "name": "DISASSOCIATE_CURRENT_USER", - "value": 2 - }, - { - "name": "DISASSOCIATE_ALL_USERS", - "value": 3 - } - ] - }, - { - "name": "VehicleAreaDoor", - "values": [ - { - "name": "ROW_1_LEFT", - "value": 1 - }, - { - "name": "ROW_1_RIGHT", - "value": 4 - }, - { - "name": "ROW_2_LEFT", - "value": 16 - }, - { - "name": "ROW_2_RIGHT", - "value": 64 - }, - { - "name": "ROW_3_LEFT", - "value": 256 - }, - { - "name": "ROW_3_RIGHT", - "value": 1024 - }, - { - "name": "HOOD", - "value": 268435456 - }, - { - "name": "REAR", - "value": 536870912 - } - ] - }, - { - "name": "VehicleLightSwitch", - "values": [ - { - "name": "OFF", - "value": 0 - }, - { - "name": "ON", - "value": 1 - }, - { - "name": "DAYTIME_RUNNING", - "value": 2 - }, - { - "name": "AUTOMATIC", - "value": 256 - } - ] - }, - { - "name": "VehicleGear", - "values": [ - { - "name": "GEAR_UNKNOWN", - "value": 0 - }, - { - "name": "GEAR_NEUTRAL", - "value": 1 - }, - { - "name": "GEAR_REVERSE", - "value": 2 - }, - { - "name": "GEAR_PARK", - "value": 4 - }, - { - "name": "GEAR_DRIVE", - "value": 8 - }, - { - "name": "GEAR_1", - "value": 16 - }, - { - "name": "GEAR_2", - "value": 32 - }, - { - "name": "GEAR_3", - "value": 64 - }, - { - "name": "GEAR_4", - "value": 128 - }, - { - "name": "GEAR_5", - "value": 256 - }, - { - "name": "GEAR_6", - "value": 512 - }, - { - "name": "GEAR_7", - "value": 1024 - }, - { - "name": "GEAR_8", - "value": 2048 - }, - { - "name": "GEAR_9", - "value": 4096 - } - ] - }, - { - "name": "Obd2IgnitionMonitorKind", - "values": [ - { - "name": "SPARK", - "value": 0 - }, - { - "name": "COMPRESSION", - "value": 1 - } - ] - }, - { - "name": "CustomInputType", - "values": [ - { - "name": "CUSTOM_EVENT_F1", - "value": 1001 - }, - { - "name": "CUSTOM_EVENT_F2", - "value": 1002 - }, - { - "name": "CUSTOM_EVENT_F3", - "value": 1003 - }, - { - "name": "CUSTOM_EVENT_F4", - "value": 1004 - }, - { - "name": "CUSTOM_EVENT_F5", - "value": 1005 - }, - { - "name": "CUSTOM_EVENT_F6", - "value": 1006 - }, - { - "name": "CUSTOM_EVENT_F7", - "value": 1007 - }, - { - "name": "CUSTOM_EVENT_F8", - "value": 1008 - }, - { - "name": "CUSTOM_EVENT_F9", - "value": 1009 - }, - { - "name": "CUSTOM_EVENT_F10", - "value": 1010 - } - ] - }, - { - "name": "VehicleApPowerStateReport", - "values": [ - { - "name": "WAIT_FOR_VHAL", - "value": 1 - }, - { - "name": "DEEP_SLEEP_ENTRY", - "value": 2 - }, - { - "name": "DEEP_SLEEP_EXIT", - "value": 3 - }, - { - "name": "SHUTDOWN_POSTPONE", - "value": 4 - }, - { - "name": "SHUTDOWN_START", - "value": 5 - }, - { - "name": "ON", - "value": 6 - }, - { - "name": "SHUTDOWN_PREPARE", - "value": 7 - }, - { - "name": "SHUTDOWN_CANCELLED", - "value": 8 - }, - { - "name": "HIBERNATION_ENTRY", - "value": 9 - }, - { - "name": "HIBERNATION_EXIT", - "value": 10 - } - ] - }, - { - "name": "VmsMessageWithLayerIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "LAYER_TYPE", - "value": 1 - }, - { - "name": "LAYER_SUBTYPE", - "value": 2 - }, - { - "name": "LAYER_VERSION", - "value": 3 - } - ] - }, - { - "name": "EvRegenerativeBrakingState", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "DISABLED", - "value": 1 - }, - { - "name": "PARTIALLY_ENABLED", - "value": 2 - }, - { - "name": "FULLY_ENABLED", - "value": 3 - } - ] - }, - { - "name": "VehiclePropertyGroup", - "values": [ - { - "name": "SYSTEM", - "value": 268435456 - }, - { - "name": "VENDOR", - "value": 536870912 - }, - { - "name": "MASK", - "value": 4026531840 - } - ] - }, - { - "name": "VehicleIgnitionState", - "values": [ - { - "name": "UNDEFINED", - "value": 0 - }, - { - "name": "LOCK", - "value": 1 - }, - { - "name": "OFF", - "value": 2 - }, - { - "name": "ACC", - "value": 3 - }, - { - "name": "ON", - "value": 4 - }, - { - "name": "START", - "value": 5 - } - ] - }, - { - "name": "VehicleHwKeyInputAction", - "values": [ - { - "name": "ACTION_DOWN", - "value": 0 - }, - { - "name": "ACTION_UP", - "value": 1 - } - ] - }, - { - "name": "DiagnosticIntegerSensorIndex", - "values": [ - { - "name": "FUEL_SYSTEM_STATUS", - "value": 0 - }, - { - "name": "MALFUNCTION_INDICATOR_LIGHT_ON", - "value": 1 - }, - { - "name": "IGNITION_MONITORS_SUPPORTED", - "value": 2 - }, - { - "name": "IGNITION_SPECIFIC_MONITORS", - "value": 3 - }, - { - "name": "INTAKE_AIR_TEMPERATURE", - "value": 4 - }, - { - "name": "COMMANDED_SECONDARY_AIR_STATUS", - "value": 5 - }, - { - "name": "NUM_OXYGEN_SENSORS_PRESENT", - "value": 6 - }, - { - "name": "RUNTIME_SINCE_ENGINE_START", - "value": 7 - }, - { - "name": "DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON", - "value": 8 - }, - { - "name": "WARMUPS_SINCE_CODES_CLEARED", - "value": 9 - }, - { - "name": "DISTANCE_TRAVELED_SINCE_CODES_CLEARED", - "value": 10 - }, - { - "name": "ABSOLUTE_BAROMETRIC_PRESSURE", - "value": 11 - }, - { - "name": "CONTROL_MODULE_VOLTAGE", - "value": 12 - }, - { - "name": "AMBIENT_AIR_TEMPERATURE", - "value": 13 - }, - { - "name": "TIME_WITH_MALFUNCTION_LIGHT_ON", - "value": 14 - }, - { - "name": "TIME_SINCE_TROUBLE_CODES_CLEARED", - "value": 15 - }, - { - "name": "MAX_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 16 - }, - { - "name": "MAX_OXYGEN_SENSOR_VOLTAGE", - "value": 17 - }, - { - "name": "MAX_OXYGEN_SENSOR_CURRENT", - "value": 18 - }, - { - "name": "MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE", - "value": 19 - }, - { - "name": "MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR", - "value": 20 - }, - { - "name": "FUEL_TYPE", - "value": 21 - }, - { - "name": "FUEL_RAIL_ABSOLUTE_PRESSURE", - "value": 22 - }, - { - "name": "ENGINE_OIL_TEMPERATURE", - "value": 23 - }, - { - "name": "DRIVER_DEMAND_PERCENT_TORQUE", - "value": 24 - }, - { - "name": "ENGINE_ACTUAL_PERCENT_TORQUE", - "value": 25 - }, - { - "name": "ENGINE_REFERENCE_PERCENT_TORQUE", - "value": 26 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_IDLE", - "value": 27 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT1", - "value": 28 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT2", - "value": 29 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT3", - "value": 30 - }, - { - "name": "ENGINE_PERCENT_TORQUE_DATA_POINT4", - "value": 31 - } - ] - }, - { - "name": "UserIdentificationAssociationValue", - "values": [ - { - "name": "UNKNOWN", - "value": 1 - }, - { - "name": "ASSOCIATED_CURRENT_USER", - "value": 2 - }, - { - "name": "ASSOCIATED_ANOTHER_USER", - "value": 3 - }, - { - "name": "NOT_ASSOCIATED_ANY_USER", - "value": 4 - } - ] - }, - { - "name": "VmsBaseMessageIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - } - ] - }, - { - "name": "DiagnosticFloatSensorIndex", - "values": [ - { - "name": "CALCULATED_ENGINE_LOAD", - "value": 0 - }, - { - "name": "ENGINE_COOLANT_TEMPERATURE", - "value": 1 - }, - { - "name": "SHORT_TERM_FUEL_TRIM_BANK1", - "value": 2 - }, - { - "name": "LONG_TERM_FUEL_TRIM_BANK1", - "value": 3 - }, - { - "name": "SHORT_TERM_FUEL_TRIM_BANK2", - "value": 4 - }, - { - "name": "LONG_TERM_FUEL_TRIM_BANK2", - "value": 5 - }, - { - "name": "FUEL_PRESSURE", - "value": 6 - }, - { - "name": "INTAKE_MANIFOLD_ABSOLUTE_PRESSURE", - "value": 7 - }, - { - "name": "ENGINE_RPM", - "value": 8 - }, - { - "name": "VEHICLE_SPEED", - "value": 9 - }, - { - "name": "TIMING_ADVANCE", - "value": 10 - }, - { - "name": "MAF_AIR_FLOW_RATE", - "value": 11 - }, - { - "name": "THROTTLE_POSITION", - "value": 12 - }, - { - "name": "OXYGEN_SENSOR1_VOLTAGE", - "value": 13 - }, - { - "name": "OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM", - "value": 14 - }, - { - "name": "OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 15 - }, - { - "name": "OXYGEN_SENSOR2_VOLTAGE", - "value": 16 - }, - { - "name": "OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM", - "value": 17 - }, - { - "name": "OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 18 - }, - { - "name": "OXYGEN_SENSOR3_VOLTAGE", - "value": 19 - }, - { - "name": "OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM", - "value": 20 - }, - { - "name": "OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 21 - }, - { - "name": "OXYGEN_SENSOR4_VOLTAGE", - "value": 22 - }, - { - "name": "OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM", - "value": 23 - }, - { - "name": "OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 24 - }, - { - "name": "OXYGEN_SENSOR5_VOLTAGE", - "value": 25 - }, - { - "name": "OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM", - "value": 26 - }, - { - "name": "OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 27 - }, - { - "name": "OXYGEN_SENSOR6_VOLTAGE", - "value": 28 - }, - { - "name": "OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM", - "value": 29 - }, - { - "name": "OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 30 - }, - { - "name": "OXYGEN_SENSOR7_VOLTAGE", - "value": 31 - }, - { - "name": "OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM", - "value": 32 - }, - { - "name": "OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 33 - }, - { - "name": "OXYGEN_SENSOR8_VOLTAGE", - "value": 34 - }, - { - "name": "OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM", - "value": 35 - }, - { - "name": "OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO", - "value": 36 - }, - { - "name": "FUEL_RAIL_PRESSURE", - "value": 37 - }, - { - "name": "FUEL_RAIL_GAUGE_PRESSURE", - "value": 38 - }, - { - "name": "COMMANDED_EXHAUST_GAS_RECIRCULATION", - "value": 39 - }, - { - "name": "EXHAUST_GAS_RECIRCULATION_ERROR", - "value": 40 - }, - { - "name": "COMMANDED_EVAPORATIVE_PURGE", - "value": 41 - }, - { - "name": "FUEL_TANK_LEVEL_INPUT", - "value": 42 - }, - { - "name": "EVAPORATION_SYSTEM_VAPOR_PRESSURE", - "value": 43 - }, - { - "name": "CATALYST_TEMPERATURE_BANK1_SENSOR1", - "value": 44 - }, - { - "name": "CATALYST_TEMPERATURE_BANK2_SENSOR1", - "value": 45 - }, - { - "name": "CATALYST_TEMPERATURE_BANK1_SENSOR2", - "value": 46 - }, - { - "name": "CATALYST_TEMPERATURE_BANK2_SENSOR2", - "value": 47 - }, - { - "name": "ABSOLUTE_LOAD_VALUE", - "value": 48 - }, - { - "name": "FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO", - "value": 49 - }, - { - "name": "RELATIVE_THROTTLE_POSITION", - "value": 50 - }, - { - "name": "ABSOLUTE_THROTTLE_POSITION_B", - "value": 51 - }, - { - "name": "ABSOLUTE_THROTTLE_POSITION_C", - "value": 52 - }, - { - "name": "ACCELERATOR_PEDAL_POSITION_D", - "value": 53 - }, - { - "name": "ACCELERATOR_PEDAL_POSITION_E", - "value": 54 - }, - { - "name": "ACCELERATOR_PEDAL_POSITION_F", - "value": 55 - }, - { - "name": "COMMANDED_THROTTLE_ACTUATOR", - "value": 56 - }, - { - "name": "ETHANOL_FUEL_PERCENTAGE", - "value": 57 - }, - { - "name": "ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE", - "value": 58 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1", - "value": 59 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2", - "value": 60 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3", - "value": 61 - }, - { - "name": "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4", - "value": 62 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1", - "value": 63 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2", - "value": 64 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3", - "value": 65 - }, - { - "name": "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4", - "value": 66 - }, - { - "name": "RELATIVE_ACCELERATOR_PEDAL_POSITION", - "value": 67 - }, - { - "name": "HYBRID_BATTERY_PACK_REMAINING_LIFE", - "value": 68 - }, - { - "name": "FUEL_INJECTION_TIMING", - "value": 69 - }, - { - "name": "ENGINE_FUEL_RATE", - "value": 70 - } - ] - }, - { - "name": "VmsMessageWithLayerAndPublisherIdIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "LAYER_TYPE", - "value": 1 - }, - { - "name": "LAYER_SUBTYPE", - "value": 2 - }, - { - "name": "LAYER_VERSION", - "value": 3 - }, - { - "name": "PUBLISHER_ID", - "value": 4 - } - ] - }, - { - "name": "FuelType", - "values": [ - { - "name": "FUEL_TYPE_UNKNOWN", - "value": 0 - }, - { - "name": "FUEL_TYPE_UNLEADED", - "value": 1 - }, - { - "name": "FUEL_TYPE_LEADED", - "value": 2 - }, - { - "name": "FUEL_TYPE_DIESEL_1", - "value": 3 - }, - { - "name": "FUEL_TYPE_DIESEL_2", - "value": 4 - }, - { - "name": "FUEL_TYPE_BIODIESEL", - "value": 5 - }, - { - "name": "FUEL_TYPE_E85", - "value": 6 - }, - { - "name": "FUEL_TYPE_LPG", - "value": 7 - }, - { - "name": "FUEL_TYPE_CNG", - "value": 8 - }, - { - "name": "FUEL_TYPE_LNG", - "value": 9 - }, - { - "name": "FUEL_TYPE_ELECTRIC", - "value": 10 - }, - { - "name": "FUEL_TYPE_HYDROGEN", - "value": 11 - }, - { - "name": "FUEL_TYPE_OTHER", - "value": 12 - } - ] - }, - { - "name": "VehicleApPowerStateReq", - "values": [ - { - "name": "ON", - "value": 0 - }, - { - "name": "SHUTDOWN_PREPARE", - "value": 1 - }, - { - "name": "CANCEL_SHUTDOWN", - "value": 2 - }, - { - "name": "FINISHED", - "value": 3 - } - ] - }, - { - "name": "VmsMessageType", - "values": [ - { - "name": "SUBSCRIBE", - "value": 1 - }, - { - "name": "SUBSCRIBE_TO_PUBLISHER", - "value": 2 - }, - { - "name": "UNSUBSCRIBE", - "value": 3 - }, - { - "name": "UNSUBSCRIBE_TO_PUBLISHER", - "value": 4 - }, - { - "name": "OFFERING", - "value": 5 - }, - { - "name": "AVAILABILITY_REQUEST", - "value": 6 - }, - { - "name": "SUBSCRIPTIONS_REQUEST", - "value": 7 - }, - { - "name": "AVAILABILITY_RESPONSE", - "value": 8 - }, - { - "name": "AVAILABILITY_CHANGE", - "value": 9 - }, - { - "name": "SUBSCRIPTIONS_RESPONSE", - "value": 10 - }, - { - "name": "SUBSCRIPTIONS_CHANGE", - "value": 11 - }, - { - "name": "DATA", - "value": 12 - }, - { - "name": "PUBLISHER_ID_REQUEST", - "value": 13 - }, - { - "name": "PUBLISHER_ID_RESPONSE", - "value": 14 - }, - { - "name": "PUBLISHER_INFORMATION_REQUEST", - "value": 15 - }, - { - "name": "PUBLISHER_INFORMATION_RESPONSE", - "value": 16 - }, - { - "name": "START_SESSION", - "value": 17 - } - ] - }, - { - "name": "Obd2CommonIgnitionMonitors", - "values": [] - }, - { - "name": "UserIdentificationAssociationType", - "values": [ - { - "name": "INVALID", - "value": 0 - }, - { - "name": "KEY_FOB", - "value": 1 - }, - { - "name": "CUSTOM_1", - "value": 101 - }, - { - "name": "CUSTOM_2", - "value": 102 - }, - { - "name": "CUSTOM_3", - "value": 103 - }, - { - "name": "CUSTOM_4", - "value": 104 - } - ] - }, - { - "name": "EvConnectorType", - "values": [ - { - "name": "UNKNOWN", - "value": 0 - }, - { - "name": "IEC_TYPE_1_AC", - "value": 1 - }, - { - "name": "IEC_TYPE_2_AC", - "value": 2 - }, - { - "name": "IEC_TYPE_3_AC", - "value": 3 - }, - { - "name": "IEC_TYPE_4_DC", - "value": 4 - }, - { - "name": "IEC_TYPE_1_CCS_DC", - "value": 5 - }, - { - "name": "IEC_TYPE_2_CCS_DC", - "value": 6 - }, - { - "name": "TESLA_ROADSTER", - "value": 7 - }, - { - "name": "TESLA_HPWC", - "value": 8 - }, - { - "name": "TESLA_SUPERCHARGER", - "value": 9 - }, - { - "name": "GBT_AC", - "value": 10 - }, - { - "name": "GBT_DC", - "value": 11 - }, - { - "name": "OTHER", - "value": 101 - } - ] - }, - { - "name": "VehicleApPowerStateShutdownParam", - "values": [ - { - "name": "SHUTDOWN_IMMEDIATELY", - "value": 1 - }, - { - "name": "CAN_SLEEP", - "value": 2 - }, - { - "name": "SHUTDOWN_ONLY", - "value": 3 - }, - { - "name": "SLEEP_IMMEDIATELY", - "value": 4 - }, - { - "name": "HIBERNATE_IMMEDIATELY", - "value": 5 - }, - { - "name": "CAN_HIBERNATE", - "value": 6 - } - ] - }, - { - "name": "VmsOfferingMessageIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "PUBLISHER_ID", - "value": 1 - }, - { - "name": "NUMBER_OF_OFFERS", - "value": 2 - }, - { - "name": "OFFERING_START", - "value": 3 - } - ] - }, - { - "name": "VehicleAreaSeat", - "values": [ - { - "name": "ROW_1_LEFT", - "value": 1 - }, - { - "name": "ROW_1_CENTER", - "value": 2 - }, - { - "name": "ROW_1_RIGHT", - "value": 4 - }, - { - "name": "ROW_2_LEFT", - "value": 16 - }, - { - "name": "ROW_2_CENTER", - "value": 32 - }, - { - "name": "ROW_2_RIGHT", - "value": 64 - }, - { - "name": "ROW_3_LEFT", - "value": 256 - }, - { - "name": "ROW_3_CENTER", - "value": 512 - }, - { - "name": "ROW_3_RIGHT", - "value": 1024 - } - ] - }, - { - "name": "VehicleVendorPermission", - "values": [ - { - "name": "PERMISSION_DEFAULT", - "value": 0 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_WINDOW", - "value": 1 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_WINDOW", - "value": 2 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_DOOR", - "value": 3 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_DOOR", - "value": 4 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_SEAT", - "value": 5 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_SEAT", - "value": 6 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_MIRROR", - "value": 7 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_MIRROR", - "value": 8 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_INFO", - "value": 9 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_INFO", - "value": 10 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_ENGINE", - "value": 11 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_ENGINE", - "value": 12 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_HVAC", - "value": 13 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_HVAC", - "value": 14 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_LIGHT", - "value": 15 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_LIGHT", - "value": 16 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_1", - "value": 65536 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_1", - "value": 69632 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_2", - "value": 131072 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_2", - "value": 135168 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_3", - "value": 196608 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_3", - "value": 200704 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_4", - "value": 262144 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_4", - "value": 266240 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_5", - "value": 327680 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_5", - "value": 331776 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_6", - "value": 393216 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_6", - "value": 397312 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_7", - "value": 458752 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_7", - "value": 462848 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_8", - "value": 524288 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_8", - "value": 528384 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_9", - "value": 589824 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_9", - "value": 593920 - }, - { - "name": "PERMISSION_SET_VENDOR_CATEGORY_10", - "value": 655360 - }, - { - "name": "PERMISSION_GET_VENDOR_CATEGORY_10", - "value": 659456 - }, - { - "name": "PERMISSION_NOT_ACCESSIBLE", - "value": 4026531840 - } - ] - }, - { - "name": "VehiclePropertyAccess", - "values": [ - { - "name": "NONE", - "value": 0 - }, - { - "name": "READ", - "value": 1 - }, - { - "name": "WRITE", - "value": 2 - }, - { - "name": "READ_WRITE", - "value": 3 - } - ] - }, - { - "name": "VmsAvailabilityStateIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "SEQUENCE_NUMBER", - "value": 1 - }, - { - "name": "NUMBER_OF_ASSOCIATED_LAYERS", - "value": 2 - }, - { - "name": "LAYERS_START", - "value": 3 - } - ] - }, - { - "name": "Obd2SparkIgnitionMonitors", - "values": [] - }, - { - "name": "VehicleTurnSignal", - "values": [ - { - "name": "NONE", - "value": 0 - }, - { - "name": "RIGHT", - "value": 1 - }, - { - "name": "LEFT", - "value": 2 - } - ] - }, - { - "name": "VmsPublisherInformationIntegerValuesIndex", - "values": [ - { - "name": "MESSAGE_TYPE", - "value": 0 - }, - { - "name": "PUBLISHER_ID", - "value": 1 - } - ] - }, - { - "name": "RotaryInputType", - "values": [ - { - "name": "ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION", - "value": 0 - }, - { - "name": "ROTARY_INPUT_TYPE_AUDIO_VOLUME", - "value": 1 - } - ] - }, - { - "name": "Obd2FuelSystemStatus", - "values": [ - { - "name": "OPEN_INSUFFICIENT_ENGINE_TEMPERATURE", - "value": 1 - }, - { - "name": "CLOSED_LOOP", - "value": 2 - }, - { - "name": "OPEN_ENGINE_LOAD_OR_DECELERATION", - "value": 4 - }, - { - "name": "OPEN_SYSTEM_FAILURE", - "value": 8 - }, - { - "name": "CLOSED_LOOP_BUT_FEEDBACK_FAULT", - "value": 16 - } - ] - } + { + "name": "VehicleProperty", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "VIN of vehicle", + "value": 286261504 + }, + { + "name": "Manufacturer of vehicle", + "value": 286261505 + }, + { + "name": "Model of vehicle", + "value": 286261506 + }, + { + "name": "INFO_MODEL_YEAR", + "value": 289407235 + }, + { + "name": "INFO_FUEL_CAPACITY", + "value": 291504388 + }, + { + "name": "INFO_FUEL_TYPE", + "value": 289472773, + "data_enums": [ + "FuelType" + ], + "data_enum": "FuelType" + }, + { + "name": "INFO_EV_BATTERY_CAPACITY", + "value": 291504390 + }, + { + "name": "INFO_EV_CONNECTOR_TYPE", + "value": 289472775, + "data_enums": [ + "EvConnectorType" + ], + "data_enum": "EvConnectorType" + }, + { + "name": "Fuel door location", + "value": 289407240, + "data_enums": [ + "PortLocationType" + ], + "data_enum": "PortLocationType" + }, + { + "name": "EV port location", + "value": 289407241, + "data_enums": [ + "PortLocationType" + ], + "data_enum": "PortLocationType" + }, + { + "name": "INFO_DRIVER_SEAT", + "value": 356516106, + "data_enums": [ + "VehicleAreaSeat" + ], + "data_enum": "VehicleAreaSeat" + }, + { + "name": "INFO_EXTERIOR_DIMENSIONS", + "value": 289472779 + }, + { + "name": "Multiple EV port locations", + "value": 289472780, + "data_enums": [ + "PortLocationType" + ], + "data_enum": "PortLocationType" + }, + { + "name": "PERF_ODOMETER", + "value": 291504644 + }, + { + "name": "Speed of the vehicle", + "value": 291504647 + }, + { + "name": "PERF_VEHICLE_SPEED_DISPLAY", + "value": 291504648 + }, + { + "name": "PERF_STEERING_ANGLE", + "value": 291504649 + }, + { + "name": "PERF_REAR_STEERING_ANGLE", + "value": 291504656 + }, + { + "name": "Temperature of engine coolant", + "value": 291504897 + }, + { + "name": "Engine oil level", + "value": 289407747, + "data_enums": [ + "VehicleOilLevel" + ], + "data_enum": "VehicleOilLevel" + }, + { + "name": "Temperature of engine oil", + "value": 291504900 + }, + { + "name": "Engine rpm", + "value": 291504901 + }, + { + "name": "Reports wheel ticks", + "value": 290521862 + }, + { + "name": "FUEL_LEVEL", + "value": 291504903 + }, + { + "name": "Fuel door open", + "value": 287310600 + }, + { + "name": "EV_BATTERY_LEVEL", + "value": 291504905 + }, + { + "name": "EV_CURRENT_BATTERY_CAPACITY", + "value": 291504909 + }, + { + "name": "EV charge port open", + "value": 287310602 + }, + { + "name": "EV charge port connected", + "value": 287310603 + }, + { + "name": "EV_BATTERY_INSTANTANEOUS_CHARGE_RATE", + "value": 291504908 + }, + { + "name": "Range remaining", + "value": 291504904 + }, + { + "name": "EV battery average temperature", + "value": 291504910 + }, + { + "name": "Tire pressure", + "value": 392168201 + }, + { + "name": "Critically low tire pressure", + "value": 392168202 + }, + { + "name": "ENGINE_IDLE_AUTO_STOP_ENABLED", + "value": 287310624 + }, + { + "name": "Impact detected.", + "value": 289407792, + "data_enums": [ + "ImpactSensorLocation" + ], + "data_enum": "ImpactSensorLocation" + }, + { + "name": "Currently selected gear", + "value": 289408000, + "data_enums": [ + "VehicleGear" + ], + "data_enum": "VehicleGear" + }, + { + "name": "CURRENT_GEAR", + "value": 289408001, + "data_enums": [ + "VehicleGear" + ], + "data_enum": "VehicleGear" + }, + { + "name": "Parking brake state.", + "value": 287310850 + }, + { + "name": "Auto-apply parking brake.", + "value": 287310851 + }, + { + "name": "EV_BRAKE_REGENERATION_LEVEL", + "value": 289408012 + }, + { + "name": "Warning for fuel low level.", + "value": 287310853 + }, + { + "name": "Night mode", + "value": 287310855 + }, + { + "name": "TURN_SIGNAL_STATE", + "value": 289408008, + "data_enums": [ + "VehicleTurnSignal" + ], + "data_enum": "VehicleTurnSignal" + }, + { + "name": "Represents ignition state", + "value": 289408009, + "data_enums": [ + "VehicleIgnitionState" + ], + "data_enum": "VehicleIgnitionState" + }, + { + "name": "ABS is active", + "value": 287310858 + }, + { + "name": "Traction Control is active", + "value": 287310859 + }, + { + "name": "EV_STOPPING_MODE", + "value": 289408013, + "data_enums": [ + "EvStoppingMode" + ], + "data_enum": "EvStoppingMode" + }, + { + "name": "ELECTRONIC_STABILITY_CONTROL_ENABLED", + "value": 287310862 + }, + { + "name": "ELECTRONIC_STABILITY_CONTROL_STATE", + "value": 289408015, + "data_enums": [ + "ElectronicStabilityControlState", + "ErrorState" + ], + "data_enum": "ElectronicStabilityControlState" + }, + { + "name": "Fan speed setting", + "value": 356517120 + }, + { + "name": "Fan direction setting", + "value": 356517121, + "data_enums": [ + "VehicleHvacFanDirection" + ], + "data_enum": "VehicleHvacFanDirection" + }, + { + "name": "HVAC current temperature.", + "value": 358614274 + }, + { + "name": "HVAC, target temperature set.", + "value": 358614275 + }, + { + "name": "HVAC_DEFROSTER", + "value": 320865540 + }, + { + "name": "HVAC_AC_ON", + "value": 354419973 + }, + { + "name": "On\/off max AC", + "value": 354419974 + }, + { + "name": "On\/off max defrost", + "value": 354419975 + }, + { + "name": "Recirculation on\/off", + "value": 354419976 + }, + { + "name": "HVAC_DUAL_ON", + "value": 354419977 + }, + { + "name": "HVAC_AUTO_ON", + "value": 354419978 + }, + { + "name": "Seat heating\/cooling", + "value": 356517131 + }, + { + "name": "Side Mirror Heat", + "value": 339739916 + }, + { + "name": "Steering Wheel Heating\/Cooling", + "value": 289408269 + }, + { + "name": "Temperature units for display", + "value": 289408270, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "Actual fan speed", + "value": 356517135 + }, + { + "name": "HVAC_POWER_ON", + "value": 354419984 + }, + { + "name": "Fan Positions Available", + "value": 356582673, + "data_enums": [ + "VehicleHvacFanDirection" + ], + "data_enum": "VehicleHvacFanDirection" + }, + { + "name": "Automatic recirculation on\/off", + "value": 354419986 + }, + { + "name": "Seat ventilation", + "value": 356517139 + }, + { + "name": "Electric defrosters' status", + "value": 320865556 + }, + { + "name": "HVAC_TEMPERATURE_VALUE_SUGGESTION", + "value": 291570965 + }, + { + "name": "Distance units for display", + "value": 289408512, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "Fuel volume units for display", + "value": 289408513, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "TIRE_PRESSURE_DISPLAY_UNITS", + "value": 289408514, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "EV battery units for display", + "value": 289408515, + "data_enums": [ + "VehicleUnit" + ], + "data_enum": "VehicleUnit" + }, + { + "name": "FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME", + "value": 287311364 + }, + { + "name": "Speed units for display", + "value": 289408517 + }, + { + "name": "EXTERNAL_CAR_TIME", + "value": 290457096 + }, + { + "name": "ANDROID_EPOCH_TIME", + "value": 290457094 + }, + { + "name": "STORAGE_ENCRYPTION_BINDING_SEED", + "value": 292554247 + }, + { + "name": "Outside temperature", + "value": 291505923 + }, + { + "name": "AP_POWER_STATE_REQ", + "value": 289475072 + }, + { + "name": "AP_POWER_STATE_REPORT", + "value": 289475073 + }, + { + "name": "AP_POWER_BOOTUP_REASON", + "value": 289409538 + }, + { + "name": "DISPLAY_BRIGHTNESS", + "value": 289409539 + }, + { + "name": "PER_DISPLAY_BRIGHTNESS", + "value": 289475076 + }, + { + "name": "Valet mode enabled", + "value": 287312389 + }, + { + "name": "Head up display (HUD) enabled", + "value": 354421254 + }, + { + "name": "HW_KEY_INPUT", + "value": 289475088 + }, + { + "name": "HW_KEY_INPUT_V2", + "value": 367004177 + }, + { + "name": "HW_MOTION_INPUT", + "value": 367004178 + }, + { + "name": "HW_ROTARY_INPUT", + "value": 289475104, + "data_enums": [ + "RotaryInputType" + ], + "data_enum": "RotaryInputType" + }, + { + "name": "HW_CUSTOM_INPUT", + "value": 289475120, + "data_enums": [ + "CustomInputType" + ], + "data_enum": "CustomInputType" + }, + { + "name": "Door position", + "value": 373295872 + }, + { + "name": "Door move", + "value": 373295873 + }, + { + "name": "Door lock", + "value": 371198722 + }, + { + "name": "DOOR_CHILD_LOCK_ENABLED", + "value": 371198723 + }, + { + "name": "Mirror Z Position", + "value": 339741504 + }, + { + "name": "Mirror Z Move", + "value": 339741505 + }, + { + "name": "Mirror Y Position", + "value": 339741506 + }, + { + "name": "Mirror Y Move", + "value": 339741507 + }, + { + "name": "Mirror Lock", + "value": 287312708 + }, + { + "name": "Mirror Fold", + "value": 287312709 + }, + { + "name": "MIRROR_AUTO_FOLD_ENABLED", + "value": 337644358 + }, + { + "name": "MIRROR_AUTO_TILT_ENABLED", + "value": 337644359 + }, + { + "name": "Seat memory select", + "value": 356518784 + }, + { + "name": "Seat memory set", + "value": 356518785 + }, + { + "name": "Seatbelt buckled", + "value": 354421634 + }, + { + "name": "Seatbelt height position", + "value": 356518787 + }, + { + "name": "Seatbelt height move", + "value": 356518788 + }, + { + "name": "Seat fore\/aft position", + "value": 356518789 + }, + { + "name": "Seat fore\/aft move", + "value": 356518790 + }, + { + "name": "Seat backrest angle 1 position", + "value": 356518791 + }, + { + "name": "Seat backrest angle 1 move", + "value": 356518792 + }, + { + "name": "Seat backrest angle 2 position", + "value": 356518793 + }, + { + "name": "Seat backrest angle 2 move", + "value": 356518794 + }, + { + "name": "Seat height position", + "value": 356518795 + }, + { + "name": "Seat height move", + "value": 356518796 + }, + { + "name": "Seat depth position", + "value": 356518797 + }, + { + "name": "Seat depth move", + "value": 356518798 + }, + { + "name": "Seat tilt position", + "value": 356518799 + }, + { + "name": "Seat tilt move", + "value": 356518800 + }, + { + "name": "Lumber fore\/aft position", + "value": 356518801 + }, + { + "name": "Lumbar fore\/aft move", + "value": 356518802 + }, + { + "name": "Lumbar side support position", + "value": 356518803 + }, + { + "name": "Lumbar side support move", + "value": 356518804 + }, + { + "name": "SEAT_HEADREST_HEIGHT_POS", + "value": 289409941 + }, + { + "name": "Headrest height position", + "value": 356518820 + }, + { + "name": "Headrest height move", + "value": 356518806 + }, + { + "name": "Headrest angle position", + "value": 356518807 + }, + { + "name": "Headrest angle move", + "value": 356518808 + }, + { + "name": "Headrest fore\/aft position", + "value": 356518809 + }, + { + "name": "Headrest fore\/aft move", + "value": 356518810 + }, + { + "name": "SEAT_FOOTWELL_LIGHTS_STATE", + "value": 356518811, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "SEAT_FOOTWELL_LIGHTS_SWITCH", + "value": 356518812, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "SEAT_EASY_ACCESS_ENABLED", + "value": 354421661 + }, + { + "name": "SEAT_AIRBAG_ENABLED", + "value": 354421662 + }, + { + "name": "Seat airbags deployed", + "value": 356518821, + "data_enums": [ + "VehicleAirbagLocation" + ], + "data_enum": "VehicleAirbagLocation" + }, + { + "name": "SEAT_CUSHION_SIDE_SUPPORT_POS", + "value": 356518815 + }, + { + "name": "SEAT_CUSHION_SIDE_SUPPORT_MOVE", + "value": 356518816 + }, + { + "name": "SEAT_LUMBAR_VERTICAL_POS", + "value": 356518817 + }, + { + "name": "SEAT_LUMBAR_VERTICAL_MOVE", + "value": 356518818 + }, + { + "name": "SEAT_WALK_IN_POS", + "value": 356518819 + }, + { + "name": "SEAT_BELT_PRETENSIONER_DEPLOYED", + "value": 354421670 + }, + { + "name": "Seat Occupancy", + "value": 356518832, + "data_enums": [ + "VehicleSeatOccupancyState" + ], + "data_enum": "VehicleSeatOccupancyState" + }, + { + "name": "Window Position", + "value": 322964416 + }, + { + "name": "Window Move", + "value": 322964417 + }, + { + "name": "Window Lock", + "value": 320867268 + }, + { + "name": "WINDSHIELD_WIPERS_PERIOD", + "value": 322964421 + }, + { + "name": "Windshield wipers state.", + "value": 322964422, + "data_enums": [ + "WindshieldWipersState" + ], + "data_enum": "WindshieldWipersState" + }, + { + "name": "Windshield wipers switch.", + "value": 322964423, + "data_enums": [ + "WindshieldWipersSwitch" + ], + "data_enum": "WindshieldWipersSwitch" + }, + { + "name": "Steering wheel depth position", + "value": 289410016 + }, + { + "name": "Steering wheel depth movement", + "value": 289410017 + }, + { + "name": "Steering wheel height position", + "value": 289410018 + }, + { + "name": "Steering wheel height movement", + "value": 289410019 + }, + { + "name": "STEERING_WHEEL_THEFT_LOCK_ENABLED", + "value": 287312868 + }, + { + "name": "Steering wheel locked", + "value": 287312869 + }, + { + "name": "STEERING_WHEEL_EASY_ACCESS_ENABLED", + "value": 287312870 + }, + { + "name": "GLOVE_BOX_DOOR_POS", + "value": 356518896 + }, + { + "name": "Lock or unlock the glove box.", + "value": 354421745 + }, + { + "name": "VEHICLE_MAP_SERVICE", + "value": 299895808 + }, + { + "name": "LOCATION_CHARACTERIZATION", + "value": 289410064 + }, + { + "name": "ULTRASONICS_SENSOR_POSITION", + "value": 406916128 + }, + { + "name": "ULTRASONICS_SENSOR_ORIENTATION", + "value": 409013281 + }, + { + "name": "ULTRASONICS_SENSOR_FIELD_OF_VIEW", + "value": 406916130 + }, + { + "name": "ULTRASONICS_SENSOR_DETECTION_RANGE", + "value": 406916131 + }, + { + "name": "ULTRASONICS_SENSOR_SUPPORTED_RANGES", + "value": 406916132 + }, + { + "name": "ULTRASONICS_SENSOR_MEASURED_DISTANCE", + "value": 406916133 + }, + { + "name": "OBD2 Live Sensor Data", + "value": 299896064 + }, + { + "name": "OBD2 Freeze Frame Sensor Data", + "value": 299896065 + }, + { + "name": "OBD2 Freeze Frame Information", + "value": 299896066 + }, + { + "name": "OBD2 Freeze Frame Clear", + "value": 299896067 + }, + { + "name": "Headlights State", + "value": 289410560, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "High beam lights state", + "value": 289410561, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Fog light state", + "value": 289410562, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Hazard light status", + "value": 289410563, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Headlight switch", + "value": 289410576, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "High beam light switch", + "value": 289410577, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Fog light switch", + "value": 289410578, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Hazard light switch", + "value": 289410579, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Cabin lights", + "value": 289410817, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Cabin lights switch", + "value": 289410818, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Reading lights", + "value": 356519683, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Reading lights switch", + "value": 356519684, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Steering wheel lights state", + "value": 289410828, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Steering wheel lights switch", + "value": 289410829, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "SUPPORT_CUSTOMIZE_VENDOR_PERMISSION", + "value": 287313669 + }, + { + "name": "DISABLED_OPTIONAL_FEATURES", + "value": 286265094 + }, + { + "name": "INITIAL_USER_INFO", + "value": 299896583 + }, + { + "name": "SWITCH_USER", + "value": 299896584 + }, + { + "name": "CREATE_USER", + "value": 299896585 + }, + { + "name": "REMOVE_USER", + "value": 299896586 + }, + { + "name": "USER_IDENTIFICATION_ASSOCIATION", + "value": 299896587 + }, + { + "name": "Enable\/request an EVS service.", + "value": 289476368 + }, + { + "name": "POWER_POLICY_REQ", + "value": 286265121 + }, + { + "name": "POWER_POLICY_GROUP_REQ", + "value": 286265122 + }, + { + "name": "CURRENT_POWER_POLICY", + "value": 286265123 + }, + { + "name": "WATCHDOG_ALIVE", + "value": 290459441 + }, + { + "name": "WATCHDOG_TERMINATED_PROCESS", + "value": 299896626 + }, + { + "name": "VHAL_HEARTBEAT", + "value": 290459443 + }, + { + "name": "CLUSTER_SWITCH_UI", + "value": 289410868 + }, + { + "name": "CLUSTER_DISPLAY_STATE", + "value": 289476405 + }, + { + "name": "CLUSTER_REPORT_STATE", + "value": 299896630 + }, + { + "name": "CLUSTER_REQUEST_DISPLAY", + "value": 289410871 + }, + { + "name": "CLUSTER_NAVIGATION_STATE", + "value": 292556600 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_TYPE", + "value": 289410873, + "data_enums": [ + "ElectronicTollCollectionCardType" + ], + "data_enum": "ElectronicTollCollectionCardType" + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_STATUS", + "value": 289410874, + "data_enums": [ + "ElectronicTollCollectionCardStatus" + ], + "data_enum": "ElectronicTollCollectionCardStatus" + }, + { + "name": "Front fog lights state", + "value": 289410875, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Front fog lights switch", + "value": 289410876, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "Rear fog lights state", + "value": 289410877, + "data_enums": [ + "VehicleLightState" + ], + "data_enum": "VehicleLightState" + }, + { + "name": "Rear fog lights switch", + "value": 289410878, + "data_enums": [ + "VehicleLightSwitch" + ], + "data_enum": "VehicleLightSwitch" + }, + { + "name": "EV_CHARGE_CURRENT_DRAW_LIMIT", + "value": 291508031 + }, + { + "name": "EV_CHARGE_PERCENT_LIMIT", + "value": 291508032 + }, + { + "name": "Charging state of the car", + "value": 289410881, + "data_enums": [ + "EvChargeState" + ], + "data_enum": "EvChargeState" + }, + { + "name": "EV_CHARGE_SWITCH", + "value": 287313730 + }, + { + "name": "EV_CHARGE_TIME_REMAINING", + "value": 289410883 + }, + { + "name": "EV_REGENERATIVE_BRAKING_STATE", + "value": 289410884, + "data_enums": [ + "EvRegenerativeBrakingState" + ], + "data_enum": "EvRegenerativeBrakingState" + }, + { + "name": "TRAILER_PRESENT", + "value": 289410885, + "data_enums": [ + "TrailerState" + ], + "data_enum": "TrailerState" + }, + { + "name": "VEHICLE_CURB_WEIGHT", + "value": 289410886 + }, + { + "name": "GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT", + "value": 289410887, + "data_enums": [ + "GsrComplianceRequirementType" + ], + "data_enum": "GsrComplianceRequirementType" + }, + { + "name": "SUPPORTED_PROPERTY_IDS", + "value": 289476424 + }, + { + "name": "SHUTDOWN_REQUEST", + "value": 289410889, + "data_enums": [ + "VehicleApPowerStateShutdownParam" + ], + "data_enum": "VehicleApPowerStateShutdownParam" + }, + { + "name": "VEHICLE_IN_USE", + "value": 287313738 + }, + { + "name": "CLUSTER_HEARTBEAT", + "value": 299896651 + }, + { + "name": "VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL", + "value": 289410892, + "data_enums": [ + "VehicleAutonomousState" + ], + "data_enum": "VehicleAutonomousState" + }, + { + "name": "CAMERA_SERVICE_CURRENT_STATE", + "value": 289476429, + "data_enums": [ + "CameraServiceState" + ], + "data_enum": "CameraServiceState" + }, + { + "name": "AUTOMATIC_EMERGENCY_BRAKING_ENABLED", + "value": 287313920 + }, + { + "name": "AUTOMATIC_EMERGENCY_BRAKING_STATE", + "value": 289411073, + "data_enums": [ + "AutomaticEmergencyBrakingState", + "ErrorState" + ], + "data_enum": "AutomaticEmergencyBrakingState" + }, + { + "name": "FORWARD_COLLISION_WARNING_ENABLED", + "value": 287313922 + }, + { + "name": "FORWARD_COLLISION_WARNING_STATE", + "value": 289411075, + "data_enums": [ + "ForwardCollisionWarningState", + "ErrorState" + ], + "data_enum": "ForwardCollisionWarningState" + }, + { + "name": "BLIND_SPOT_WARNING_ENABLED", + "value": 287313924 + }, + { + "name": "BLIND_SPOT_WARNING_STATE", + "value": 339742725, + "data_enums": [ + "BlindSpotWarningState", + "ErrorState" + ], + "data_enum": "BlindSpotWarningState" + }, + { + "name": "LANE_DEPARTURE_WARNING_ENABLED", + "value": 287313926 + }, + { + "name": "LANE_DEPARTURE_WARNING_STATE", + "value": 289411079, + "data_enums": [ + "LaneDepartureWarningState", + "ErrorState" + ], + "data_enum": "LaneDepartureWarningState" + }, + { + "name": "LANE_KEEP_ASSIST_ENABLED", + "value": 287313928 + }, + { + "name": "Lane Keep Assist (LKA) state.", + "value": 289411081, + "data_enums": [ + "LaneKeepAssistState", + "ErrorState" + ], + "data_enum": "LaneKeepAssistState" + }, + { + "name": "LANE_CENTERING_ASSIST_ENABLED", + "value": 287313930 + }, + { + "name": "LANE_CENTERING_ASSIST_COMMAND", + "value": 289411083, + "data_enums": [ + "LaneCenteringAssistCommand" + ], + "data_enum": "LaneCenteringAssistCommand" + }, + { + "name": "LANE_CENTERING_ASSIST_STATE", + "value": 289411084, + "data_enums": [ + "LaneCenteringAssistState", + "ErrorState" + ], + "data_enum": "LaneCenteringAssistState" + }, + { + "name": "EMERGENCY_LANE_KEEP_ASSIST_ENABLED", + "value": 287313933 + }, + { + "name": "EMERGENCY_LANE_KEEP_ASSIST_STATE", + "value": 289411086, + "data_enums": [ + "EmergencyLaneKeepAssistState", + "ErrorState" + ], + "data_enum": "EmergencyLaneKeepAssistState" + }, + { + "name": "CRUISE_CONTROL_ENABLED", + "value": 287313935 + }, + { + "name": "CRUISE_CONTROL_TYPE", + "value": 289411088, + "data_enums": [ + "CruiseControlType", + "ErrorState" + ], + "data_enum": "CruiseControlType" + }, + { + "name": "CRUISE_CONTROL_STATE", + "value": 289411089, + "data_enums": [ + "CruiseControlState", + "ErrorState" + ], + "data_enum": "CruiseControlState" + }, + { + "name": "CRUISE_CONTROL_COMMAND", + "value": 289411090, + "data_enums": [ + "CruiseControlCommand" + ], + "data_enum": "CruiseControlCommand" + }, + { + "name": "CRUISE_CONTROL_TARGET_SPEED", + "value": 291508243 + }, + { + "name": "ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP", + "value": 289411092 + }, + { + "name": "ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE", + "value": 289411093 + }, + { + "name": "HANDS_ON_DETECTION_ENABLED", + "value": 287313942 + }, + { + "name": "HANDS_ON_DETECTION_DRIVER_STATE", + "value": 289411095, + "data_enums": [ + "HandsOnDetectionDriverState", + "ErrorState" + ], + "data_enum": "HandsOnDetectionDriverState" + }, + { + "name": "HANDS_ON_DETECTION_WARNING", + "value": 289411096, + "data_enums": [ + "HandsOnDetectionWarning", + "ErrorState" + ], + "data_enum": "HandsOnDetectionWarning" + }, + { + "name": "DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED", + "value": 287313945 + }, + { + "name": "DRIVER_DROWSINESS_ATTENTION_STATE", + "value": 289411098, + "data_enums": [ + "DriverDrowsinessAttentionState", + "ErrorState" + ], + "data_enum": "DriverDrowsinessAttentionState" + }, + { + "name": "DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED", + "value": 287313947 + }, + { + "name": "DRIVER_DROWSINESS_ATTENTION_WARNING", + "value": 289411100, + "data_enums": [ + "DriverDrowsinessAttentionWarning", + "ErrorState" + ], + "data_enum": "DriverDrowsinessAttentionWarning" + }, + { + "name": "DRIVER_DISTRACTION_SYSTEM_ENABLED", + "value": 287313949 + }, + { + "name": "Driver distraction state.", + "value": 289411102, + "data_enums": [ + "DriverDistractionState", + "ErrorState" + ], + "data_enum": "DriverDistractionState" + }, + { + "name": "DRIVER_DISTRACTION_WARNING_ENABLED", + "value": 287313951 + }, + { + "name": "Driver distraction warning.", + "value": 289411104, + "data_enums": [ + "DriverDistractionWarning", + "ErrorState" + ], + "data_enum": "DriverDistractionWarning" + }, + { + "name": "LOW_SPEED_COLLISION_WARNING_ENABLED", + "value": 287313953 + }, + { + "name": "LOW_SPEED_COLLISION_WARNING_STATE", + "value": 289411106, + "data_enums": [ + "LowSpeedCollisionWarningState", + "ErrorState" + ], + "data_enum": "LowSpeedCollisionWarningState" + }, + { + "name": "CROSS_TRAFFIC_MONITORING_ENABLED", + "value": 287313955 + }, + { + "name": "CROSS_TRAFFIC_MONITORING_WARNING_STATE", + "value": 289411108, + "data_enums": [ + "CrossTrafficMonitoringWarningState", + "ErrorState" + ], + "data_enum": "CrossTrafficMonitoringWarningState" + }, + { + "name": "LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED", + "value": 287313957 + }, + { + "name": "LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE", + "value": 289411110, + "data_enums": [ + "LowSpeedAutomaticEmergencyBrakingState", + "ErrorState" + ], + "data_enum": "LowSpeedAutomaticEmergencyBrakingState" + } + ] + }, + { + "name": "LaneDepartureWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING_LEFT", + "value": 2 + }, + { + "name": "WARNING_RIGHT", + "value": 3 + } + ] + }, + { + "name": "HandsOnDetectionWarning", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "DriverDistractionState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NOT_DISTRACTED", + "value": 1 + }, + { + "name": "DISTRACTED", + "value": 2 + } + ] + }, + { + "name": "VehicleTurnSignal", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "NONE", + "value": 0 + }, + { + "name": "RIGHT", + "value": 1 + }, + { + "name": "LEFT", + "value": 2 + } + ] + }, + { + "name": "RotaryInputType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION", + "value": 0 + }, + { + "name": "ROTARY_INPUT_TYPE_AUDIO_VOLUME", + "value": 1 + } + ] + }, + { + "name": "EvStoppingMode", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "CREEP", + "value": 1 + }, + { + "name": "ROLL", + "value": 2 + }, + { + "name": "HOLD", + "value": 3 + } + ] + }, + { + "name": "VehicleLightState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OFF", + "value": 0 + }, + { + "name": "ON", + "value": 1 + }, + { + "name": "DAYTIME_RUNNING", + "value": 2 + } + ] + }, + { + "name": "FuelType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "FUEL_TYPE_UNKNOWN", + "value": 0 + }, + { + "name": "FUEL_TYPE_UNLEADED", + "value": 1 + }, + { + "name": "FUEL_TYPE_LEADED", + "value": 2 + }, + { + "name": "FUEL_TYPE_DIESEL_1", + "value": 3 + }, + { + "name": "FUEL_TYPE_DIESEL_2", + "value": 4 + }, + { + "name": "FUEL_TYPE_BIODIESEL", + "value": 5 + }, + { + "name": "FUEL_TYPE_E85", + "value": 6 + }, + { + "name": "FUEL_TYPE_LPG", + "value": 7 + }, + { + "name": "FUEL_TYPE_CNG", + "value": 8 + }, + { + "name": "FUEL_TYPE_LNG", + "value": 9 + }, + { + "name": "FUEL_TYPE_ELECTRIC", + "value": 10 + }, + { + "name": "FUEL_TYPE_HYDROGEN", + "value": 11 + }, + { + "name": "FUEL_TYPE_OTHER", + "value": 12 + } + ] + }, + { + "name": "VehicleIgnitionState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNDEFINED", + "value": 0 + }, + { + "name": "LOCK", + "value": 1 + }, + { + "name": "OFF", + "value": 2 + }, + { + "name": "ACC", + "value": 3 + }, + { + "name": "ON", + "value": 4 + }, + { + "name": "START", + "value": 5 + } + ] + }, + { + "name": "EvConnectorType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "IEC_TYPE_1_AC", + "value": 1 + }, + { + "name": "IEC_TYPE_2_AC", + "value": 2 + }, + { + "name": "IEC_TYPE_3_AC", + "value": 3 + }, + { + "name": "IEC_TYPE_4_DC", + "value": 4 + }, + { + "name": "IEC_TYPE_1_CCS_DC", + "value": 5 + }, + { + "name": "IEC_TYPE_2_CCS_DC", + "value": 6 + }, + { + "name": "TESLA_ROADSTER", + "value": 7 + }, + { + "name": "TESLA_HPWC", + "value": 8 + }, + { + "name": "TESLA_SUPERCHARGER", + "value": 9 + }, + { + "name": "GBT_AC", + "value": 10 + }, + { + "name": "GBT_DC", + "value": 11 + }, + { + "name": "OTHER", + "value": 101 + } + ] + }, + { + "name": "TrailerState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "NOT_PRESENT", + "value": 1 + }, + { + "name": "PRESENT", + "value": 2 + }, + { + "name": "ERROR", + "value": 3 + } + ] + }, + { + "name": "DriverDrowsinessAttentionState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "KSS_RATING_1_EXTREMELY_ALERT", + "value": 1 + }, + { + "name": "KSS_RATING_2_VERY_ALERT", + "value": 2 + }, + { + "name": "KSS_RATING_3_ALERT", + "value": 3 + }, + { + "name": "KSS_RATING_4_RATHER_ALERT", + "value": 4 + }, + { + "name": "KSS_RATING_5_NEITHER_ALERT_NOR_SLEEPY", + "value": 5 + }, + { + "name": "KSS_RATING_6_SOME_SLEEPINESS", + "value": 6 + }, + { + "name": "KSS_RATING_7_SLEEPY_NO_EFFORT", + "value": 7 + }, + { + "name": "KSS_RATING_8_SLEEPY_SOME_EFFORT", + "value": 8 + }, + { + "name": "KSS_RATING_9_VERY_SLEEPY", + "value": 9 + } + ] + }, + { + "name": "DriverDistractionWarning", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "VehicleAreaSeat", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "ROW_1_LEFT", + "value": 1 + }, + { + "name": "ROW_1_CENTER", + "value": 2 + }, + { + "name": "ROW_1_RIGHT", + "value": 4 + }, + { + "name": "ROW_2_LEFT", + "value": 16 + }, + { + "name": "ROW_2_CENTER", + "value": 32 + }, + { + "name": "ROW_2_RIGHT", + "value": 64 + }, + { + "name": "ROW_3_LEFT", + "value": 256 + }, + { + "name": "ROW_3_CENTER", + "value": 512 + }, + { + "name": "ROW_3_RIGHT", + "value": 1024 + } + ] + }, + { + "name": "VehicleLightSwitch", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OFF", + "value": 0 + }, + { + "name": "ON", + "value": 1 + }, + { + "name": "DAYTIME_RUNNING", + "value": 2 + }, + { + "name": "AUTOMATIC", + "value": 256 + } + ] + }, + { + "name": "WindshieldWipersSwitch", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "OFF", + "value": 1 + }, + { + "name": "MIST", + "value": 2 + }, + { + "name": "INTERMITTENT_LEVEL_1", + "value": 3 + }, + { + "name": "INTERMITTENT_LEVEL_2", + "value": 4 + }, + { + "name": "INTERMITTENT_LEVEL_3", + "value": 5 + }, + { + "name": "INTERMITTENT_LEVEL_4", + "value": 6 + }, + { + "name": "INTERMITTENT_LEVEL_5", + "value": 7 + }, + { + "name": "CONTINUOUS_LEVEL_1", + "value": 8 + }, + { + "name": "CONTINUOUS_LEVEL_2", + "value": 9 + }, + { + "name": "CONTINUOUS_LEVEL_3", + "value": 10 + }, + { + "name": "CONTINUOUS_LEVEL_4", + "value": 11 + }, + { + "name": "CONTINUOUS_LEVEL_5", + "value": 12 + }, + { + "name": "AUTO", + "value": 13 + }, + { + "name": "SERVICE", + "value": 14 + } + ] + }, + { + "name": "CrossTrafficMonitoringWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING_FRONT_LEFT", + "value": 2 + }, + { + "name": "WARNING_FRONT_RIGHT", + "value": 3 + }, + { + "name": "WARNING_FRONT_BOTH", + "value": 4 + }, + { + "name": "WARNING_REAR_LEFT", + "value": 5 + }, + { + "name": "WARNING_REAR_RIGHT", + "value": 6 + }, + { + "name": "WARNING_REAR_BOTH", + "value": 7 + } + ] + }, + { + "name": "LaneCenteringAssistCommand", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "ACTIVATE", + "value": 1 + }, + { + "name": "DEACTIVATE", + "value": 2 + } + ] + }, + { + "name": "VehicleSeatOccupancyState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "VACANT", + "value": 1 + }, + { + "name": "OCCUPIED", + "value": 2 + } + ] + }, + { + "name": "ErrorState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER_ERROR_STATE", + "value": -1 + }, + { + "name": "NOT_AVAILABLE_DISABLED", + "value": -2 + }, + { + "name": "NOT_AVAILABLE_SPEED_LOW", + "value": -3 + }, + { + "name": "NOT_AVAILABLE_SPEED_HIGH", + "value": -4 + }, + { + "name": "NOT_AVAILABLE_POOR_VISIBILITY", + "value": -5 + }, + { + "name": "NOT_AVAILABLE_SAFETY", + "value": -6 + } + ] + }, + { + "name": "BlindSpotWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "WindshieldWipersState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "OFF", + "value": 1 + }, + { + "name": "ON", + "value": 2 + }, + { + "name": "SERVICE", + "value": 3 + } + ] + }, + { + "name": "VehicleAirbagLocation", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 1 + }, + { + "name": "FRONT", + "value": 2 + }, + { + "name": "KNEE", + "value": 4 + }, + { + "name": "LEFT_SIDE", + "value": 8 + }, + { + "name": "RIGHT_SIDE", + "value": 16 + }, + { + "name": "CURTAIN", + "value": 32 + } + ] + }, + { + "name": "DriverDrowsinessAttentionWarning", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "VehicleOilLevel", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "CRITICALLY_LOW", + "value": 0 + }, + { + "name": "LOW", + "value": 1 + }, + { + "name": "NORMAL", + "value": 2 + }, + { + "name": "HIGH", + "value": 3 + }, + { + "name": "ERROR", + "value": 4 + } + ] + }, + { + "name": "ForwardCollisionWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "VehicleUnit", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "SHOULD_NOT_USE", + "value": 0 + }, + { + "name": "METER_PER_SEC", + "value": 1 + }, + { + "name": "RPM", + "value": 2 + }, + { + "name": "HERTZ", + "value": 3 + }, + { + "name": "PERCENTILE", + "value": 16 + }, + { + "name": "MILLIMETER", + "value": 32 + }, + { + "name": "METER", + "value": 33 + }, + { + "name": "KILOMETER", + "value": 35 + }, + { + "name": "MILE", + "value": 36 + }, + { + "name": "CELSIUS", + "value": 48 + }, + { + "name": "FAHRENHEIT", + "value": 49 + }, + { + "name": "KELVIN", + "value": 50 + }, + { + "name": "MILLILITER", + "value": 64 + }, + { + "name": "LITER", + "value": 65 + }, + { + "name": "GALLON", + "value": 66 + }, + { + "name": "US_GALLON", + "value": 66 + }, + { + "name": "IMPERIAL_GALLON", + "value": 67 + }, + { + "name": "NANO_SECS", + "value": 80 + }, + { + "name": "MILLI_SECS", + "value": 81 + }, + { + "name": "SECS", + "value": 83 + }, + { + "name": "YEAR", + "value": 89 + }, + { + "name": "WATT_HOUR", + "value": 96 + }, + { + "name": "MILLIAMPERE", + "value": 97 + }, + { + "name": "MILLIVOLT", + "value": 98 + }, + { + "name": "MILLIWATTS", + "value": 99 + }, + { + "name": "AMPERE_HOURS", + "value": 100 + }, + { + "name": "KILOWATT_HOUR", + "value": 101 + }, + { + "name": "AMPERE", + "value": 102 + }, + { + "name": "KILOPASCAL", + "value": 112 + }, + { + "name": "PSI", + "value": 113 + }, + { + "name": "BAR", + "value": 114 + }, + { + "name": "DEGREES", + "value": 128 + }, + { + "name": "MILES_PER_HOUR", + "value": 144 + }, + { + "name": "KILOMETERS_PER_HOUR", + "value": 145 + } + ] + }, + { + "name": "VehicleHvacFanDirection", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "FACE", + "value": 1 + }, + { + "name": "FLOOR", + "value": 2 + }, + { + "name": "FACE_AND_FLOOR", + "value": 3 + }, + { + "name": "DEFROST", + "value": 4 + }, + { + "name": "DEFROST_AND_FLOOR", + "value": 6 + } + ] + }, + { + "name": "LowSpeedCollisionWarningState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "NO_WARNING", + "value": 1 + }, + { + "name": "WARNING", + "value": 2 + } + ] + }, + { + "name": "CruiseControlCommand", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "ACTIVATE", + "value": 1 + }, + { + "name": "SUSPEND", + "value": 2 + }, + { + "name": "INCREASE_TARGET_SPEED", + "value": 3 + }, + { + "name": "DECREASE_TARGET_SPEED", + "value": 4 + }, + { + "name": "INCREASE_TARGET_TIME_GAP", + "value": 5 + }, + { + "name": "DECREASE_TARGET_TIME_GAP", + "value": 6 + } + ] + }, + { + "name": "ElectronicStabilityControlState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED", + "value": 2 + } + ] + }, + { + "name": "EvRegenerativeBrakingState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "DISABLED", + "value": 1 + }, + { + "name": "PARTIALLY_ENABLED", + "value": 2 + }, + { + "name": "FULLY_ENABLED", + "value": 3 + } + ] + }, + { + "name": "LowSpeedAutomaticEmergencyBrakingState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED", + "value": 2 + }, + { + "name": "USER_OVERRIDE", + "value": 3 + } + ] + }, + { + "name": "LaneCenteringAssistState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATION_REQUESTED", + "value": 2 + }, + { + "name": "ACTIVATED", + "value": 3 + }, + { + "name": "USER_OVERRIDE", + "value": 4 + }, + { + "name": "FORCED_DEACTIVATION_WARNING", + "value": 5 + } + ] + }, + { + "name": "VehicleGear", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "GEAR_UNKNOWN", + "value": 0 + }, + { + "name": "GEAR_NEUTRAL", + "value": 1 + }, + { + "name": "GEAR_REVERSE", + "value": 2 + }, + { + "name": "GEAR_PARK", + "value": 4 + }, + { + "name": "GEAR_DRIVE", + "value": 8 + }, + { + "name": "GEAR_1", + "value": 16 + }, + { + "name": "GEAR_2", + "value": 32 + }, + { + "name": "GEAR_3", + "value": 64 + }, + { + "name": "GEAR_4", + "value": 128 + }, + { + "name": "GEAR_5", + "value": 256 + }, + { + "name": "GEAR_6", + "value": 512 + }, + { + "name": "GEAR_7", + "value": 1024 + }, + { + "name": "GEAR_8", + "value": 2048 + }, + { + "name": "GEAR_9", + "value": 4096 + } + ] + }, + { + "name": "ElectronicTollCollectionCardType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD", + "value": 1 + }, + { + "name": "JP_ELECTRONIC_TOLL_COLLECTION_CARD_V2", + "value": 2 + } + ] + }, + { + "name": "VehicleApPowerStateShutdownParam", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "SHUTDOWN_IMMEDIATELY", + "value": 1 + }, + { + "name": "CAN_SLEEP", + "value": 2 + }, + { + "name": "SHUTDOWN_ONLY", + "value": 3 + }, + { + "name": "SLEEP_IMMEDIATELY", + "value": 4 + }, + { + "name": "HIBERNATE_IMMEDIATELY", + "value": 5 + }, + { + "name": "CAN_HIBERNATE", + "value": 6 + }, + { + "name": "EMERGENCY_SHUTDOWN", + "value": 7 + } + ] + }, + { + "name": "AutomaticEmergencyBrakingState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED", + "value": 2 + }, + { + "name": "USER_OVERRIDE", + "value": 3 + } + ] + }, + { + "name": "ImpactSensorLocation", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 1 + }, + { + "name": "FRONT", + "value": 2 + }, + { + "name": "FRONT_LEFT_DOOR_SIDE", + "value": 4 + }, + { + "name": "FRONT_RIGHT_DOOR_SIDE", + "value": 8 + }, + { + "name": "REAR_LEFT_DOOR_SIDE", + "value": 16 + }, + { + "name": "REAR_RIGHT_DOOR_SIDE", + "value": 32 + }, + { + "name": "REAR", + "value": 64 + } + ] + }, + { + "name": "CruiseControlType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "STANDARD", + "value": 1 + }, + { + "name": "ADAPTIVE", + "value": 2 + }, + { + "name": "PREDICTIVE", + "value": 3 + } + ] + }, + { + "name": "LaneKeepAssistState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED_STEER_LEFT", + "value": 2 + }, + { + "name": "ACTIVATED_STEER_RIGHT", + "value": 3 + }, + { + "name": "USER_OVERRIDE", + "value": 4 + } + ] + }, + { + "name": "CustomInputType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "CUSTOM_EVENT_F1", + "value": 1001 + }, + { + "name": "CUSTOM_EVENT_F2", + "value": 1002 + }, + { + "name": "CUSTOM_EVENT_F3", + "value": 1003 + }, + { + "name": "CUSTOM_EVENT_F4", + "value": 1004 + }, + { + "name": "CUSTOM_EVENT_F5", + "value": 1005 + }, + { + "name": "CUSTOM_EVENT_F6", + "value": 1006 + }, + { + "name": "CUSTOM_EVENT_F7", + "value": 1007 + }, + { + "name": "CUSTOM_EVENT_F8", + "value": 1008 + }, + { + "name": "CUSTOM_EVENT_F9", + "value": 1009 + }, + { + "name": "CUSTOM_EVENT_F10", + "value": 1010 + } + ] + }, + { + "name": "ElectronicTollCollectionCardStatus", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_VALID", + "value": 1 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_INVALID", + "value": 2 + }, + { + "name": "ELECTRONIC_TOLL_COLLECTION_CARD_NOT_INSERTED", + "value": 3 + } + ] + }, + { + "name": "HandsOnDetectionDriverState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "HANDS_ON", + "value": 1 + }, + { + "name": "HANDS_OFF", + "value": 2 + } + ] + }, + { + "name": "EmergencyLaneKeepAssistState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "WARNING_LEFT", + "value": 2 + }, + { + "name": "WARNING_RIGHT", + "value": 3 + }, + { + "name": "ACTIVATED_STEER_LEFT", + "value": 4 + }, + { + "name": "ACTIVATED_STEER_RIGHT", + "value": 5 + }, + { + "name": "USER_OVERRIDE", + "value": 6 + } + ] + }, + { + "name": "VehicleAutonomousState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "LEVEL_0", + "value": 0 + }, + { + "name": "LEVEL_1", + "value": 1 + }, + { + "name": "LEVEL_2", + "value": 2 + }, + { + "name": "LEVEL_3", + "value": 3 + }, + { + "name": "LEVEL_4", + "value": 4 + }, + { + "name": "LEVEL_5", + "value": 5 + } + ] + }, + { + "name": "EvChargeState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "CHARGING", + "value": 1 + }, + { + "name": "FULLY_CHARGED", + "value": 2 + }, + { + "name": "NOT_CHARGING", + "value": 3 + }, + { + "name": "ERROR", + "value": 4 + } + ] + }, + { + "name": "CameraServiceState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNAVAILABLE", + "value": 0 + }, + { + "name": "INACTIVE", + "value": 1 + }, + { + "name": "REQUESTED", + "value": 2 + }, + { + "name": "ACTIVE", + "value": 3 + } + ] + }, + { + "name": "GsrComplianceRequirementType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "GSR_COMPLIANCE_NOT_REQUIRED", + "value": 0 + }, + { + "name": "GSR_COMPLIANCE_REQUIRED_V1", + "value": 1 + } + ] + }, + { + "name": "PortLocationType", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "UNKNOWN", + "value": 0 + }, + { + "name": "FRONT_LEFT", + "value": 1 + }, + { + "name": "FRONT_RIGHT", + "value": 2 + }, + { + "name": "REAR_RIGHT", + "value": 3 + }, + { + "name": "REAR_LEFT", + "value": 4 + }, + { + "name": "FRONT", + "value": 5 + }, + { + "name": "REAR", + "value": 6 + } + ] + }, + { + "name": "CruiseControlState", + "package": "android.hardware.automotive.vehicle", + "values": [ + { + "name": "OTHER", + "value": 0 + }, + { + "name": "ENABLED", + "value": 1 + }, + { + "name": "ACTIVATED", + "value": 2 + }, + { + "name": "USER_OVERRIDE", + "value": 3 + }, + { + "name": "SUSPENDED", + "value": 4 + }, + { + "name": "FORCED_DEACTIVATION_WARNING", + "value": 5 + } + ] + } ] \ No newline at end of file diff --git a/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py b/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py deleted file mode 100755 index b2eb172ef8e24446def94d2c0767920a3f26f3cd..0000000000000000000000000000000000000000 --- a/automotive/vehicle/aidl/emu_metadata/generate_emulator_metadata.py +++ /dev/null @@ -1,97 +0,0 @@ -#!/usr/bin/python3 - -# -# Script for generation of VHAL properties metadata .json from AIDL interface -# -# This metadata is used to display human property names, names of enum -# data types for their values, change and access modes and other information, -# available from AIDL block comments, but not at runtime. -# -# Usage example: -# ./emu_metadata/generate_emulator_metadata.py android/hardware/automotive/vehicle $OUT/android.hardware.automotive.vehicle-types-meta.json -# (Note, that the resulting file has to match a '*types-meta.json' pattern to be parsed by the emulator). -# - -import json -import os -import re -import sys - -from pathlib import Path - -RE_ENUM = re.compile(r"\s*enum\s+(\w*) {\n(.*)}", re.MULTILINE | re.DOTALL) -RE_COMMENT = re.compile(r"(?:(?:\/\*\*)((?:.|\n)*?)(?:\*\/))?(?:\n|^)\s*(\w*)(?:\s+=\s*)?((?:[a-zA-Z0-9]|\s|\+|)*),", re.DOTALL) -RE_BLOCK_COMMENT_TITLE = re.compile("^(?:\s|\*)*((?:\w|\s|\.)*)\n(?:\s|\*)*(?:\n|$)") -RE_BLOCK_COMMENT_ANNOTATION = re.compile("^(?:\s|\*)*@(\w*)\s+((?:\w|:)*)", re.MULTILINE) -RE_HEX_NUMBER = re.compile("([0-9A-Fa-fxX]+)") - - -class JEnum: - def __init__(self, name): - self.name = name - self.values = [] - - -class Converter: - # Only addition is supported for now, but that covers all existing properties except - # OBD diagnostics, which use bitwise shifts - def calculateValue(self, expression, default_value): - numbers = RE_HEX_NUMBER.findall(expression) - if len(numbers) == 0: - return default_value - result = 0 - base = 10 - if numbers[0].lower().startswith("0x"): - base = 16 - for number in numbers: - result += int(number, base) - return result - - def parseBlockComment(self, value, blockComment): - titles = RE_BLOCK_COMMENT_TITLE.findall(blockComment) - for title in titles: - value['name'] = title - break - annots_res = RE_BLOCK_COMMENT_ANNOTATION.findall(blockComment) - for annot in annots_res: - value[annot[0]] = annot[1] - - def parseEnumContents(self, enum: JEnum, enumValue): - matches = RE_COMMENT.findall(enumValue) - defaultValue = 0 - for match in matches: - value = dict() - value['name'] = match[1] - value['value'] = self.calculateValue(match[2], defaultValue) - defaultValue = value['value'] + 1 - if enum.name == "VehicleProperty": - block_comment = match[0] - self.parseBlockComment(value, block_comment) - enum.values.append(value) - - def convert(self, input): - text = Path(input).read_text() - matches = RE_ENUM.findall(text) - jenums = [] - for match in matches: - enum = JEnum(match[0]) - self.parseEnumContents(enum, match[1]) - jenums.append(enum) - return jenums - -def main(): - if (len(sys.argv) != 3): - print("Usage: ", sys.argv[0], " INPUT_PATH OUTPUT") - sys.exit(1) - aidl_path = sys.argv[1] - out_path = sys.argv[2] - result = [] - for file in os.listdir(aidl_path): - result.extend(Converter().convert(os.path.join(aidl_path, file))) - json_result = json.dumps(result, default=vars, indent=2) - with open(out_path, 'w') as f: - f.write(json_result) - - -if __name__ == "__main__": - main() diff --git a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h index e7d446484f60f4f1f267cee4d92c249779479999..51a3025740e2f87398ebb5edb748a8078c3f1da8 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h @@ -22,8 +22,7 @@ // clang-format off -#ifndef android_hardware_automotive_vehicle_aidl_generated_lib_AccessForVehicleProperty_H_ -#define android_hardware_automotive_vehicle_aidl_generated_lib_AccessForVehicleProperty_H_ +#pragma once #include #include @@ -125,6 +124,7 @@ std::unordered_map AccessForVehiclePrope {VehicleProperty::DISPLAY_BRIGHTNESS, VehiclePropertyAccess::READ_WRITE}, {VehicleProperty::PER_DISPLAY_BRIGHTNESS, VehiclePropertyAccess::READ_WRITE}, {VehicleProperty::VALET_MODE_ENABLED, VehiclePropertyAccess::READ_WRITE}, + {VehicleProperty::HEAD_UP_DISPLAY_ENABLED, VehiclePropertyAccess::READ_WRITE}, {VehicleProperty::HW_KEY_INPUT, VehiclePropertyAccess::READ}, {VehicleProperty::HW_KEY_INPUT_V2, VehiclePropertyAccess::READ}, {VehicleProperty::HW_MOTION_INPUT, VehiclePropertyAccess::READ}, @@ -204,6 +204,7 @@ std::unordered_map AccessForVehiclePrope {VehicleProperty::ULTRASONICS_SENSOR_FIELD_OF_VIEW, VehiclePropertyAccess::READ}, {VehicleProperty::ULTRASONICS_SENSOR_DETECTION_RANGE, VehiclePropertyAccess::READ}, {VehicleProperty::ULTRASONICS_SENSOR_SUPPORTED_RANGES, VehiclePropertyAccess::READ}, + {VehicleProperty::ULTRASONICS_SENSOR_MEASURED_DISTANCE, VehiclePropertyAccess::READ}, {VehicleProperty::OBD2_LIVE_FRAME, VehiclePropertyAccess::READ}, {VehicleProperty::OBD2_FREEZE_FRAME, VehiclePropertyAccess::READ}, {VehicleProperty::OBD2_FREEZE_FRAME_INFO, VehiclePropertyAccess::READ}, @@ -261,6 +262,7 @@ std::unordered_map AccessForVehiclePrope {VehicleProperty::VEHICLE_IN_USE, VehiclePropertyAccess::READ_WRITE}, {VehicleProperty::CLUSTER_HEARTBEAT, VehiclePropertyAccess::WRITE}, {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, VehiclePropertyAccess::READ}, + {VehicleProperty::CAMERA_SERVICE_CURRENT_STATE, VehiclePropertyAccess::WRITE}, {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyAccess::READ_WRITE}, {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyAccess::READ}, {VehicleProperty::FORWARD_COLLISION_WARNING_ENABLED, VehiclePropertyAccess::READ_WRITE}, @@ -298,6 +300,8 @@ std::unordered_map AccessForVehiclePrope {VehicleProperty::LOW_SPEED_COLLISION_WARNING_STATE, VehiclePropertyAccess::READ}, {VehicleProperty::CROSS_TRAFFIC_MONITORING_ENABLED, VehiclePropertyAccess::READ_WRITE}, {VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyAccess::READ}, + {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyAccess::READ_WRITE}, + {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyAccess::READ}, }; } // namespace vehicle @@ -305,5 +309,3 @@ std::unordered_map AccessForVehiclePrope } // namespace hardware } // namespace android } // aidl - -#endif // android_hardware_automotive_vehicle_aidl_generated_lib_AccessForVehicleProperty_H_ diff --git a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h index 3a46a9245ca5fa78d5ec9b8f89b69c5fb94be3d1..60e9a72138c49973d75bcecf5f84d1456414a67d 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h @@ -22,8 +22,7 @@ // clang-format off -#ifndef android_hardware_automotive_vehicle_aidl_generated_lib_ChangeModeForVehicleProperty_H_ -#define android_hardware_automotive_vehicle_aidl_generated_lib_ChangeModeForVehicleProperty_H_ +#pragma once #include #include @@ -125,6 +124,7 @@ std::unordered_map ChangeModeForVehi {VehicleProperty::DISPLAY_BRIGHTNESS, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::PER_DISPLAY_BRIGHTNESS, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::VALET_MODE_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, + {VehicleProperty::HEAD_UP_DISPLAY_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::HW_KEY_INPUT, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::HW_KEY_INPUT_V2, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::HW_MOTION_INPUT, VehiclePropertyChangeMode::ON_CHANGE}, @@ -204,6 +204,7 @@ std::unordered_map ChangeModeForVehi {VehicleProperty::ULTRASONICS_SENSOR_FIELD_OF_VIEW, VehiclePropertyChangeMode::STATIC}, {VehicleProperty::ULTRASONICS_SENSOR_DETECTION_RANGE, VehiclePropertyChangeMode::STATIC}, {VehicleProperty::ULTRASONICS_SENSOR_SUPPORTED_RANGES, VehiclePropertyChangeMode::STATIC}, + {VehicleProperty::ULTRASONICS_SENSOR_MEASURED_DISTANCE, VehiclePropertyChangeMode::CONTINUOUS}, {VehicleProperty::OBD2_LIVE_FRAME, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::OBD2_FREEZE_FRAME, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::OBD2_FREEZE_FRAME_INFO, VehiclePropertyChangeMode::ON_CHANGE}, @@ -261,6 +262,7 @@ std::unordered_map ChangeModeForVehi {VehicleProperty::VEHICLE_IN_USE, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::CLUSTER_HEARTBEAT, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, VehiclePropertyChangeMode::ON_CHANGE}, + {VehicleProperty::CAMERA_SERVICE_CURRENT_STATE, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::FORWARD_COLLISION_WARNING_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, @@ -298,6 +300,8 @@ std::unordered_map ChangeModeForVehi {VehicleProperty::LOW_SPEED_COLLISION_WARNING_STATE, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::CROSS_TRAFFIC_MONITORING_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, {VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyChangeMode::ON_CHANGE}, + {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyChangeMode::ON_CHANGE}, + {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyChangeMode::ON_CHANGE}, }; } // namespace vehicle @@ -305,5 +309,3 @@ std::unordered_map ChangeModeForVehi } // namespace hardware } // namespace android } // aidl - -#endif // android_hardware_automotive_vehicle_aidl_generated_lib_ChangeModeForVehicleProperty_H_ diff --git a/automotive/vehicle/aidl/generated_lib/cpp/VersionForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/VersionForVehicleProperty.h new file mode 100644 index 0000000000000000000000000000000000000000..1c1035ddb3672c01e9c53613179c6b6f5263b859 --- /dev/null +++ b/automotive/vehicle/aidl/generated_lib/cpp/VersionForVehicleProperty.h @@ -0,0 +1,310 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * DO NOT EDIT MANUALLY!!! + * + * Generated by tools/generate_annotation_enums.py. + */ + +// clang-format off + +#pragma once + +#include + +#include + +namespace aidl { +namespace android { +namespace hardware { +namespace automotive { +namespace vehicle { + +std::unordered_map VersionForVehicleProperty = { + {VehicleProperty::INFO_VIN, 2}, + {VehicleProperty::INFO_MAKE, 2}, + {VehicleProperty::INFO_MODEL, 2}, + {VehicleProperty::INFO_MODEL_YEAR, 2}, + {VehicleProperty::INFO_FUEL_CAPACITY, 2}, + {VehicleProperty::INFO_FUEL_TYPE, 2}, + {VehicleProperty::INFO_EV_BATTERY_CAPACITY, 2}, + {VehicleProperty::INFO_EV_CONNECTOR_TYPE, 2}, + {VehicleProperty::INFO_FUEL_DOOR_LOCATION, 2}, + {VehicleProperty::INFO_EV_PORT_LOCATION, 2}, + {VehicleProperty::INFO_DRIVER_SEAT, 2}, + {VehicleProperty::INFO_EXTERIOR_DIMENSIONS, 2}, + {VehicleProperty::INFO_MULTI_EV_PORT_LOCATIONS, 2}, + {VehicleProperty::PERF_ODOMETER, 2}, + {VehicleProperty::PERF_VEHICLE_SPEED, 2}, + {VehicleProperty::PERF_VEHICLE_SPEED_DISPLAY, 2}, + {VehicleProperty::PERF_STEERING_ANGLE, 2}, + {VehicleProperty::PERF_REAR_STEERING_ANGLE, 2}, + {VehicleProperty::ENGINE_COOLANT_TEMP, 2}, + {VehicleProperty::ENGINE_OIL_LEVEL, 2}, + {VehicleProperty::ENGINE_OIL_TEMP, 2}, + {VehicleProperty::ENGINE_RPM, 2}, + {VehicleProperty::WHEEL_TICK, 2}, + {VehicleProperty::FUEL_LEVEL, 2}, + {VehicleProperty::FUEL_DOOR_OPEN, 2}, + {VehicleProperty::EV_BATTERY_LEVEL, 2}, + {VehicleProperty::EV_CURRENT_BATTERY_CAPACITY, 2}, + {VehicleProperty::EV_CHARGE_PORT_OPEN, 2}, + {VehicleProperty::EV_CHARGE_PORT_CONNECTED, 2}, + {VehicleProperty::EV_BATTERY_INSTANTANEOUS_CHARGE_RATE, 2}, + {VehicleProperty::RANGE_REMAINING, 2}, + {VehicleProperty::EV_BATTERY_AVERAGE_TEMPERATURE, 3}, + {VehicleProperty::TIRE_PRESSURE, 2}, + {VehicleProperty::CRITICALLY_LOW_TIRE_PRESSURE, 2}, + {VehicleProperty::ENGINE_IDLE_AUTO_STOP_ENABLED, 2}, + {VehicleProperty::IMPACT_DETECTED, 3}, + {VehicleProperty::GEAR_SELECTION, 2}, + {VehicleProperty::CURRENT_GEAR, 2}, + {VehicleProperty::PARKING_BRAKE_ON, 2}, + {VehicleProperty::PARKING_BRAKE_AUTO_APPLY, 2}, + {VehicleProperty::EV_BRAKE_REGENERATION_LEVEL, 2}, + {VehicleProperty::FUEL_LEVEL_LOW, 2}, + {VehicleProperty::NIGHT_MODE, 2}, + {VehicleProperty::TURN_SIGNAL_STATE, 2}, + {VehicleProperty::IGNITION_STATE, 2}, + {VehicleProperty::ABS_ACTIVE, 2}, + {VehicleProperty::TRACTION_CONTROL_ACTIVE, 2}, + {VehicleProperty::EV_STOPPING_MODE, 2}, + {VehicleProperty::ELECTRONIC_STABILITY_CONTROL_ENABLED, 3}, + {VehicleProperty::ELECTRONIC_STABILITY_CONTROL_STATE, 2}, + {VehicleProperty::HVAC_FAN_SPEED, 2}, + {VehicleProperty::HVAC_FAN_DIRECTION, 2}, + {VehicleProperty::HVAC_TEMPERATURE_CURRENT, 2}, + {VehicleProperty::HVAC_TEMPERATURE_SET, 2}, + {VehicleProperty::HVAC_DEFROSTER, 2}, + {VehicleProperty::HVAC_AC_ON, 2}, + {VehicleProperty::HVAC_MAX_AC_ON, 2}, + {VehicleProperty::HVAC_MAX_DEFROST_ON, 2}, + {VehicleProperty::HVAC_RECIRC_ON, 2}, + {VehicleProperty::HVAC_DUAL_ON, 2}, + {VehicleProperty::HVAC_AUTO_ON, 2}, + {VehicleProperty::HVAC_SEAT_TEMPERATURE, 2}, + {VehicleProperty::HVAC_SIDE_MIRROR_HEAT, 2}, + {VehicleProperty::HVAC_STEERING_WHEEL_HEAT, 2}, + {VehicleProperty::HVAC_TEMPERATURE_DISPLAY_UNITS, 2}, + {VehicleProperty::HVAC_ACTUAL_FAN_SPEED_RPM, 2}, + {VehicleProperty::HVAC_POWER_ON, 2}, + {VehicleProperty::HVAC_FAN_DIRECTION_AVAILABLE, 2}, + {VehicleProperty::HVAC_AUTO_RECIRC_ON, 2}, + {VehicleProperty::HVAC_SEAT_VENTILATION, 2}, + {VehicleProperty::HVAC_ELECTRIC_DEFROSTER_ON, 2}, + {VehicleProperty::HVAC_TEMPERATURE_VALUE_SUGGESTION, 2}, + {VehicleProperty::DISTANCE_DISPLAY_UNITS, 2}, + {VehicleProperty::FUEL_VOLUME_DISPLAY_UNITS, 2}, + {VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS, 2}, + {VehicleProperty::EV_BATTERY_DISPLAY_UNITS, 2}, + {VehicleProperty::FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME, 2}, + {VehicleProperty::VEHICLE_SPEED_DISPLAY_UNITS, 2}, + {VehicleProperty::EXTERNAL_CAR_TIME, 2}, + {VehicleProperty::ANDROID_EPOCH_TIME, 2}, + {VehicleProperty::STORAGE_ENCRYPTION_BINDING_SEED, 2}, + {VehicleProperty::ENV_OUTSIDE_TEMPERATURE, 2}, + {VehicleProperty::AP_POWER_STATE_REQ, 2}, + {VehicleProperty::AP_POWER_STATE_REPORT, 2}, + {VehicleProperty::AP_POWER_BOOTUP_REASON, 2}, + {VehicleProperty::DISPLAY_BRIGHTNESS, 2}, + {VehicleProperty::PER_DISPLAY_BRIGHTNESS, 2}, + {VehicleProperty::VALET_MODE_ENABLED, 3}, + {VehicleProperty::HEAD_UP_DISPLAY_ENABLED, 3}, + {VehicleProperty::HW_KEY_INPUT, 2}, + {VehicleProperty::HW_KEY_INPUT_V2, 2}, + {VehicleProperty::HW_MOTION_INPUT, 2}, + {VehicleProperty::HW_ROTARY_INPUT, 2}, + {VehicleProperty::HW_CUSTOM_INPUT, 2}, + {VehicleProperty::DOOR_POS, 2}, + {VehicleProperty::DOOR_MOVE, 2}, + {VehicleProperty::DOOR_LOCK, 2}, + {VehicleProperty::DOOR_CHILD_LOCK_ENABLED, 2}, + {VehicleProperty::MIRROR_Z_POS, 2}, + {VehicleProperty::MIRROR_Z_MOVE, 2}, + {VehicleProperty::MIRROR_Y_POS, 2}, + {VehicleProperty::MIRROR_Y_MOVE, 2}, + {VehicleProperty::MIRROR_LOCK, 2}, + {VehicleProperty::MIRROR_FOLD, 2}, + {VehicleProperty::MIRROR_AUTO_FOLD_ENABLED, 2}, + {VehicleProperty::MIRROR_AUTO_TILT_ENABLED, 2}, + {VehicleProperty::SEAT_MEMORY_SELECT, 2}, + {VehicleProperty::SEAT_MEMORY_SET, 2}, + {VehicleProperty::SEAT_BELT_BUCKLED, 2}, + {VehicleProperty::SEAT_BELT_HEIGHT_POS, 2}, + {VehicleProperty::SEAT_BELT_HEIGHT_MOVE, 2}, + {VehicleProperty::SEAT_FORE_AFT_POS, 2}, + {VehicleProperty::SEAT_FORE_AFT_MOVE, 2}, + {VehicleProperty::SEAT_BACKREST_ANGLE_1_POS, 2}, + {VehicleProperty::SEAT_BACKREST_ANGLE_1_MOVE, 2}, + {VehicleProperty::SEAT_BACKREST_ANGLE_2_POS, 2}, + {VehicleProperty::SEAT_BACKREST_ANGLE_2_MOVE, 2}, + {VehicleProperty::SEAT_HEIGHT_POS, 2}, + {VehicleProperty::SEAT_HEIGHT_MOVE, 2}, + {VehicleProperty::SEAT_DEPTH_POS, 2}, + {VehicleProperty::SEAT_DEPTH_MOVE, 2}, + {VehicleProperty::SEAT_TILT_POS, 2}, + {VehicleProperty::SEAT_TILT_MOVE, 2}, + {VehicleProperty::SEAT_LUMBAR_FORE_AFT_POS, 2}, + {VehicleProperty::SEAT_LUMBAR_FORE_AFT_MOVE, 2}, + {VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_POS, 2}, + {VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_MOVE, 2}, + {VehicleProperty::SEAT_HEADREST_HEIGHT_POS, 2}, + {VehicleProperty::SEAT_HEADREST_HEIGHT_POS_V2, 2}, + {VehicleProperty::SEAT_HEADREST_HEIGHT_MOVE, 2}, + {VehicleProperty::SEAT_HEADREST_ANGLE_POS, 2}, + {VehicleProperty::SEAT_HEADREST_ANGLE_MOVE, 2}, + {VehicleProperty::SEAT_HEADREST_FORE_AFT_POS, 2}, + {VehicleProperty::SEAT_HEADREST_FORE_AFT_MOVE, 2}, + {VehicleProperty::SEAT_FOOTWELL_LIGHTS_STATE, 2}, + {VehicleProperty::SEAT_FOOTWELL_LIGHTS_SWITCH, 2}, + {VehicleProperty::SEAT_EASY_ACCESS_ENABLED, 2}, + {VehicleProperty::SEAT_AIRBAG_ENABLED, 3}, + {VehicleProperty::SEAT_AIRBAGS_DEPLOYED, 2}, + {VehicleProperty::SEAT_CUSHION_SIDE_SUPPORT_POS, 2}, + {VehicleProperty::SEAT_CUSHION_SIDE_SUPPORT_MOVE, 2}, + {VehicleProperty::SEAT_LUMBAR_VERTICAL_POS, 2}, + {VehicleProperty::SEAT_LUMBAR_VERTICAL_MOVE, 2}, + {VehicleProperty::SEAT_WALK_IN_POS, 2}, + {VehicleProperty::SEAT_BELT_PRETENSIONER_DEPLOYED, 3}, + {VehicleProperty::SEAT_OCCUPANCY, 2}, + {VehicleProperty::WINDOW_POS, 2}, + {VehicleProperty::WINDOW_MOVE, 2}, + {VehicleProperty::WINDOW_LOCK, 2}, + {VehicleProperty::WINDSHIELD_WIPERS_PERIOD, 2}, + {VehicleProperty::WINDSHIELD_WIPERS_STATE, 2}, + {VehicleProperty::WINDSHIELD_WIPERS_SWITCH, 2}, + {VehicleProperty::STEERING_WHEEL_DEPTH_POS, 2}, + {VehicleProperty::STEERING_WHEEL_DEPTH_MOVE, 2}, + {VehicleProperty::STEERING_WHEEL_HEIGHT_POS, 2}, + {VehicleProperty::STEERING_WHEEL_HEIGHT_MOVE, 2}, + {VehicleProperty::STEERING_WHEEL_THEFT_LOCK_ENABLED, 2}, + {VehicleProperty::STEERING_WHEEL_LOCKED, 2}, + {VehicleProperty::STEERING_WHEEL_EASY_ACCESS_ENABLED, 2}, + {VehicleProperty::GLOVE_BOX_DOOR_POS, 2}, + {VehicleProperty::GLOVE_BOX_LOCKED, 2}, + {VehicleProperty::VEHICLE_MAP_SERVICE, 2}, + {VehicleProperty::LOCATION_CHARACTERIZATION, 2}, + {VehicleProperty::ULTRASONICS_SENSOR_POSITION, 3}, + {VehicleProperty::ULTRASONICS_SENSOR_ORIENTATION, 3}, + {VehicleProperty::ULTRASONICS_SENSOR_FIELD_OF_VIEW, 3}, + {VehicleProperty::ULTRASONICS_SENSOR_DETECTION_RANGE, 3}, + {VehicleProperty::ULTRASONICS_SENSOR_SUPPORTED_RANGES, 3}, + {VehicleProperty::ULTRASONICS_SENSOR_MEASURED_DISTANCE, 3}, + {VehicleProperty::OBD2_LIVE_FRAME, 2}, + {VehicleProperty::OBD2_FREEZE_FRAME, 2}, + {VehicleProperty::OBD2_FREEZE_FRAME_INFO, 2}, + {VehicleProperty::OBD2_FREEZE_FRAME_CLEAR, 2}, + {VehicleProperty::HEADLIGHTS_STATE, 2}, + {VehicleProperty::HIGH_BEAM_LIGHTS_STATE, 2}, + {VehicleProperty::FOG_LIGHTS_STATE, 2}, + {VehicleProperty::HAZARD_LIGHTS_STATE, 2}, + {VehicleProperty::HEADLIGHTS_SWITCH, 2}, + {VehicleProperty::HIGH_BEAM_LIGHTS_SWITCH, 2}, + {VehicleProperty::FOG_LIGHTS_SWITCH, 2}, + {VehicleProperty::HAZARD_LIGHTS_SWITCH, 2}, + {VehicleProperty::CABIN_LIGHTS_STATE, 2}, + {VehicleProperty::CABIN_LIGHTS_SWITCH, 2}, + {VehicleProperty::READING_LIGHTS_STATE, 2}, + {VehicleProperty::READING_LIGHTS_SWITCH, 2}, + {VehicleProperty::STEERING_WHEEL_LIGHTS_STATE, 2}, + {VehicleProperty::STEERING_WHEEL_LIGHTS_SWITCH, 2}, + {VehicleProperty::SUPPORT_CUSTOMIZE_VENDOR_PERMISSION, 2}, + {VehicleProperty::DISABLED_OPTIONAL_FEATURES, 2}, + {VehicleProperty::INITIAL_USER_INFO, 2}, + {VehicleProperty::SWITCH_USER, 2}, + {VehicleProperty::CREATE_USER, 2}, + {VehicleProperty::REMOVE_USER, 2}, + {VehicleProperty::USER_IDENTIFICATION_ASSOCIATION, 2}, + {VehicleProperty::EVS_SERVICE_REQUEST, 2}, + {VehicleProperty::POWER_POLICY_REQ, 2}, + {VehicleProperty::POWER_POLICY_GROUP_REQ, 2}, + {VehicleProperty::CURRENT_POWER_POLICY, 2}, + {VehicleProperty::WATCHDOG_ALIVE, 2}, + {VehicleProperty::WATCHDOG_TERMINATED_PROCESS, 2}, + {VehicleProperty::VHAL_HEARTBEAT, 2}, + {VehicleProperty::CLUSTER_SWITCH_UI, 2}, + {VehicleProperty::CLUSTER_DISPLAY_STATE, 2}, + {VehicleProperty::CLUSTER_REPORT_STATE, 2}, + {VehicleProperty::CLUSTER_REQUEST_DISPLAY, 2}, + {VehicleProperty::CLUSTER_NAVIGATION_STATE, 2}, + {VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE, 2}, + {VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_STATUS, 2}, + {VehicleProperty::FRONT_FOG_LIGHTS_STATE, 2}, + {VehicleProperty::FRONT_FOG_LIGHTS_SWITCH, 2}, + {VehicleProperty::REAR_FOG_LIGHTS_STATE, 2}, + {VehicleProperty::REAR_FOG_LIGHTS_SWITCH, 2}, + {VehicleProperty::EV_CHARGE_CURRENT_DRAW_LIMIT, 2}, + {VehicleProperty::EV_CHARGE_PERCENT_LIMIT, 2}, + {VehicleProperty::EV_CHARGE_STATE, 2}, + {VehicleProperty::EV_CHARGE_SWITCH, 2}, + {VehicleProperty::EV_CHARGE_TIME_REMAINING, 2}, + {VehicleProperty::EV_REGENERATIVE_BRAKING_STATE, 2}, + {VehicleProperty::TRAILER_PRESENT, 2}, + {VehicleProperty::VEHICLE_CURB_WEIGHT, 2}, + {VehicleProperty::GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT, 2}, + {VehicleProperty::SUPPORTED_PROPERTY_IDS, 2}, + {VehicleProperty::SHUTDOWN_REQUEST, 2}, + {VehicleProperty::VEHICLE_IN_USE, 2}, + {VehicleProperty::CLUSTER_HEARTBEAT, 3}, + {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, 3}, + {VehicleProperty::CAMERA_SERVICE_CURRENT_STATE, 3}, + {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_ENABLED, 2}, + {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_STATE, 2}, + {VehicleProperty::FORWARD_COLLISION_WARNING_ENABLED, 2}, + {VehicleProperty::FORWARD_COLLISION_WARNING_STATE, 2}, + {VehicleProperty::BLIND_SPOT_WARNING_ENABLED, 2}, + {VehicleProperty::BLIND_SPOT_WARNING_STATE, 2}, + {VehicleProperty::LANE_DEPARTURE_WARNING_ENABLED, 2}, + {VehicleProperty::LANE_DEPARTURE_WARNING_STATE, 2}, + {VehicleProperty::LANE_KEEP_ASSIST_ENABLED, 2}, + {VehicleProperty::LANE_KEEP_ASSIST_STATE, 2}, + {VehicleProperty::LANE_CENTERING_ASSIST_ENABLED, 2}, + {VehicleProperty::LANE_CENTERING_ASSIST_COMMAND, 2}, + {VehicleProperty::LANE_CENTERING_ASSIST_STATE, 2}, + {VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_ENABLED, 2}, + {VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_STATE, 2}, + {VehicleProperty::CRUISE_CONTROL_ENABLED, 2}, + {VehicleProperty::CRUISE_CONTROL_TYPE, 2}, + {VehicleProperty::CRUISE_CONTROL_STATE, 2}, + {VehicleProperty::CRUISE_CONTROL_COMMAND, 2}, + {VehicleProperty::CRUISE_CONTROL_TARGET_SPEED, 2}, + {VehicleProperty::ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP, 2}, + {VehicleProperty::ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE, 2}, + {VehicleProperty::HANDS_ON_DETECTION_ENABLED, 2}, + {VehicleProperty::HANDS_ON_DETECTION_DRIVER_STATE, 2}, + {VehicleProperty::HANDS_ON_DETECTION_WARNING, 2}, + {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED, 3}, + {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_STATE, 3}, + {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED, 3}, + {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_WARNING, 3}, + {VehicleProperty::DRIVER_DISTRACTION_SYSTEM_ENABLED, 3}, + {VehicleProperty::DRIVER_DISTRACTION_STATE, 3}, + {VehicleProperty::DRIVER_DISTRACTION_WARNING_ENABLED, 2}, + {VehicleProperty::DRIVER_DISTRACTION_WARNING, 3}, + {VehicleProperty::LOW_SPEED_COLLISION_WARNING_ENABLED, 3}, + {VehicleProperty::LOW_SPEED_COLLISION_WARNING_STATE, 3}, + {VehicleProperty::CROSS_TRAFFIC_MONITORING_ENABLED, 3}, + {VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE, 3}, + {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, 3}, + {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, 3}, +}; + +} // namespace vehicle +} // namespace automotive +} // namespace hardware +} // namespace android +} // aidl diff --git a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java index 7b5412f9bcb5ddec20972dba4eed1072c2db0958..afb6cab547b3f0e6214fcda4727d4f29689e10f3 100644 --- a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java @@ -117,6 +117,7 @@ public final class AccessForVehicleProperty { Map.entry(VehicleProperty.DISPLAY_BRIGHTNESS, VehiclePropertyAccess.READ_WRITE), Map.entry(VehicleProperty.PER_DISPLAY_BRIGHTNESS, VehiclePropertyAccess.READ_WRITE), Map.entry(VehicleProperty.VALET_MODE_ENABLED, VehiclePropertyAccess.READ_WRITE), + Map.entry(VehicleProperty.HEAD_UP_DISPLAY_ENABLED, VehiclePropertyAccess.READ_WRITE), Map.entry(VehicleProperty.HW_KEY_INPUT, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.HW_KEY_INPUT_V2, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.HW_MOTION_INPUT, VehiclePropertyAccess.READ), @@ -196,6 +197,7 @@ public final class AccessForVehicleProperty { Map.entry(VehicleProperty.ULTRASONICS_SENSOR_FIELD_OF_VIEW, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.ULTRASONICS_SENSOR_DETECTION_RANGE, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.ULTRASONICS_SENSOR_SUPPORTED_RANGES, VehiclePropertyAccess.READ), + Map.entry(VehicleProperty.ULTRASONICS_SENSOR_MEASURED_DISTANCE, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.OBD2_LIVE_FRAME, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.OBD2_FREEZE_FRAME, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.OBD2_FREEZE_FRAME_INFO, VehiclePropertyAccess.READ), @@ -253,6 +255,7 @@ public final class AccessForVehicleProperty { Map.entry(VehicleProperty.VEHICLE_IN_USE, VehiclePropertyAccess.READ_WRITE), Map.entry(VehicleProperty.CLUSTER_HEARTBEAT, VehiclePropertyAccess.WRITE), Map.entry(VehicleProperty.VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, VehiclePropertyAccess.READ), + Map.entry(VehicleProperty.CAMERA_SERVICE_CURRENT_STATE, VehiclePropertyAccess.WRITE), Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyAccess.READ_WRITE), Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.FORWARD_COLLISION_WARNING_ENABLED, VehiclePropertyAccess.READ_WRITE), @@ -289,7 +292,9 @@ public final class AccessForVehicleProperty { Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_ENABLED, VehiclePropertyAccess.READ_WRITE), Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_STATE, VehiclePropertyAccess.READ), Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_ENABLED, VehiclePropertyAccess.READ_WRITE), - Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyAccess.READ) + Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyAccess.READ), + Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyAccess.READ_WRITE), + Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyAccess.READ) ); } diff --git a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java index 4fe45ef8d4655dbbceabf3f3798307be862e238d..12aff40b34ebda94942ad14ccc3b59cd09803c60 100644 --- a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java @@ -117,6 +117,7 @@ public final class ChangeModeForVehicleProperty { Map.entry(VehicleProperty.DISPLAY_BRIGHTNESS, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.PER_DISPLAY_BRIGHTNESS, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.VALET_MODE_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), + Map.entry(VehicleProperty.HEAD_UP_DISPLAY_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.HW_KEY_INPUT, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.HW_KEY_INPUT_V2, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.HW_MOTION_INPUT, VehiclePropertyChangeMode.ON_CHANGE), @@ -196,6 +197,7 @@ public final class ChangeModeForVehicleProperty { Map.entry(VehicleProperty.ULTRASONICS_SENSOR_FIELD_OF_VIEW, VehiclePropertyChangeMode.STATIC), Map.entry(VehicleProperty.ULTRASONICS_SENSOR_DETECTION_RANGE, VehiclePropertyChangeMode.STATIC), Map.entry(VehicleProperty.ULTRASONICS_SENSOR_SUPPORTED_RANGES, VehiclePropertyChangeMode.STATIC), + Map.entry(VehicleProperty.ULTRASONICS_SENSOR_MEASURED_DISTANCE, VehiclePropertyChangeMode.CONTINUOUS), Map.entry(VehicleProperty.OBD2_LIVE_FRAME, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.OBD2_FREEZE_FRAME, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.OBD2_FREEZE_FRAME_INFO, VehiclePropertyChangeMode.ON_CHANGE), @@ -253,6 +255,7 @@ public final class ChangeModeForVehicleProperty { Map.entry(VehicleProperty.VEHICLE_IN_USE, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.CLUSTER_HEARTBEAT, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, VehiclePropertyChangeMode.ON_CHANGE), + Map.entry(VehicleProperty.CAMERA_SERVICE_CURRENT_STATE, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.FORWARD_COLLISION_WARNING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), @@ -289,7 +292,9 @@ public final class ChangeModeForVehicleProperty { Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_STATE, VehiclePropertyChangeMode.ON_CHANGE), Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), - Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyChangeMode.ON_CHANGE) + Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, VehiclePropertyChangeMode.ON_CHANGE), + Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE), + Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyChangeMode.ON_CHANGE) ); } diff --git a/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java index b4f24a6e857feb2719eef35b6ac76421eb8c3747..0f86bfa14dcbb8c994e9e853ddfe8332f9045fc1 100644 --- a/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java @@ -85,6 +85,7 @@ public final class EnumForVehicleProperty { Map.entry(VehicleProperty.GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT, List.of(GsrComplianceRequirementType.class)), Map.entry(VehicleProperty.SHUTDOWN_REQUEST, List.of(VehicleApPowerStateShutdownParam.class)), Map.entry(VehicleProperty.VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, List.of(VehicleAutonomousState.class)), + Map.entry(VehicleProperty.CAMERA_SERVICE_CURRENT_STATE, List.of(CameraServiceState.class)), Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_STATE, List.of(AutomaticEmergencyBrakingState.class, ErrorState.class)), Map.entry(VehicleProperty.FORWARD_COLLISION_WARNING_STATE, List.of(ForwardCollisionWarningState.class, ErrorState.class)), Map.entry(VehicleProperty.BLIND_SPOT_WARNING_STATE, List.of(BlindSpotWarningState.class, ErrorState.class)), @@ -103,7 +104,8 @@ public final class EnumForVehicleProperty { Map.entry(VehicleProperty.DRIVER_DISTRACTION_STATE, List.of(DriverDistractionState.class, ErrorState.class)), Map.entry(VehicleProperty.DRIVER_DISTRACTION_WARNING, List.of(DriverDistractionWarning.class, ErrorState.class)), Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_STATE, List.of(LowSpeedCollisionWarningState.class, ErrorState.class)), - Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, List.of(CrossTrafficMonitoringWarningState.class, ErrorState.class)) + Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, List.of(CrossTrafficMonitoringWarningState.class, ErrorState.class)), + Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, List.of(LowSpeedAutomaticEmergencyBrakingState.class, ErrorState.class)) ); } diff --git a/automotive/vehicle/aidl/generated_lib/java/UnitsForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/UnitsForVehicleProperty.java new file mode 100644 index 0000000000000000000000000000000000000000..b30c8e6103dfa6515ca277064749faa83691e510 --- /dev/null +++ b/automotive/vehicle/aidl/generated_lib/java/UnitsForVehicleProperty.java @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * DO NOT EDIT MANUALLY!!! + * + * Generated by tools/generate_annotation_enums.py. + */ + +// clang-format off + +package android.hardware.automotive.vehicle; + +import java.util.Map; + +public final class UnitsForVehicleProperty { + + public static final Map values = Map.ofEntries( + Map.entry(VehicleProperty.INFO_MODEL_YEAR, VehicleUnit.YEAR), + Map.entry(VehicleProperty.INFO_FUEL_CAPACITY, VehicleUnit.MILLILITER), + Map.entry(VehicleProperty.INFO_EV_BATTERY_CAPACITY, VehicleUnit.WATT_HOUR), + Map.entry(VehicleProperty.INFO_EXTERIOR_DIMENSIONS, VehicleUnit.MILLIMETER), + Map.entry(VehicleProperty.PERF_ODOMETER, VehicleUnit.KILOMETER), + Map.entry(VehicleProperty.PERF_VEHICLE_SPEED, VehicleUnit.METER_PER_SEC), + Map.entry(VehicleProperty.PERF_VEHICLE_SPEED_DISPLAY, VehicleUnit.METER_PER_SEC), + Map.entry(VehicleProperty.PERF_STEERING_ANGLE, VehicleUnit.DEGREES), + Map.entry(VehicleProperty.PERF_REAR_STEERING_ANGLE, VehicleUnit.DEGREES), + Map.entry(VehicleProperty.ENGINE_COOLANT_TEMP, VehicleUnit.CELSIUS), + Map.entry(VehicleProperty.ENGINE_OIL_TEMP, VehicleUnit.CELSIUS), + Map.entry(VehicleProperty.ENGINE_RPM, VehicleUnit.RPM), + Map.entry(VehicleProperty.FUEL_LEVEL, VehicleUnit.MILLILITER), + Map.entry(VehicleProperty.EV_BATTERY_LEVEL, VehicleUnit.WATT_HOUR), + Map.entry(VehicleProperty.EV_CURRENT_BATTERY_CAPACITY, VehicleUnit.WATT_HOUR), + Map.entry(VehicleProperty.EV_BATTERY_INSTANTANEOUS_CHARGE_RATE, VehicleUnit.MILLIWATTS), + Map.entry(VehicleProperty.RANGE_REMAINING, VehicleUnit.METER), + Map.entry(VehicleProperty.EV_BATTERY_AVERAGE_TEMPERATURE, VehicleUnit.CELSIUS), + Map.entry(VehicleProperty.TIRE_PRESSURE, VehicleUnit.KILOPASCAL), + Map.entry(VehicleProperty.CRITICALLY_LOW_TIRE_PRESSURE, VehicleUnit.KILOPASCAL), + Map.entry(VehicleProperty.HVAC_TEMPERATURE_CURRENT, VehicleUnit.CELSIUS), + Map.entry(VehicleProperty.HVAC_TEMPERATURE_SET, VehicleUnit.CELSIUS), + Map.entry(VehicleProperty.EXTERNAL_CAR_TIME, VehicleUnit.MILLI_SECS), + Map.entry(VehicleProperty.ANDROID_EPOCH_TIME, VehicleUnit.MILLI_SECS), + Map.entry(VehicleProperty.ENV_OUTSIDE_TEMPERATURE, VehicleUnit.CELSIUS), + Map.entry(VehicleProperty.WINDSHIELD_WIPERS_PERIOD, VehicleUnit.MILLI_SECS), + Map.entry(VehicleProperty.EV_CHARGE_CURRENT_DRAW_LIMIT, VehicleUnit.AMPERE), + Map.entry(VehicleProperty.EV_CHARGE_TIME_REMAINING, VehicleUnit.SECS), + Map.entry(VehicleProperty.CRUISE_CONTROL_TARGET_SPEED, VehicleUnit.METER_PER_SEC), + Map.entry(VehicleProperty.ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP, VehicleUnit.MILLI_SECS), + Map.entry(VehicleProperty.ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE, VehicleUnit.MILLIMETER) + ); + +} diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/include/JsonConfigLoader.h b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/include/JsonConfigLoader.h index f3bdbd23439fcfd5537ac570bd6f91217de2668c..00c497f4d4f88f6a0be93949044ef39b106be024 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/include/JsonConfigLoader.h +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/include/JsonConfigLoader.h @@ -130,12 +130,9 @@ class JsonConfigParser { std::vector* outPtr, std::vector* errors); // Parses a JSON field to VehiclePropertyAccess or VehiclePropertyChangeMode. template - void parseAccessChangeMode( - const Json::Value& parentJsonNode, const std::string& fieldName, int propId, - const std::string& propStr, - const std::unordered_map& defaultMap, - T* outPtr, std::vector* errors); + void parseAccessChangeMode(const Json::Value& parentJsonNode, const std::string& fieldName, + const std::string& propStr, const T* defaultAccessChangeModePtr, + T* outPtr, std::vector* errors); // Parses a JSON field to RawPropValues. // diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp index 146da69bd229031d32d485383e9e44683c85e672..ea1437ecb1b6ac11e54124dae9faaf516c4e0acc 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp @@ -37,6 +37,7 @@ namespace jsonconfigloader_impl { using ::aidl::android::hardware::automotive::vehicle::AccessForVehicleProperty; using ::aidl::android::hardware::automotive::vehicle::AutomaticEmergencyBrakingState; using ::aidl::android::hardware::automotive::vehicle::BlindSpotWarningState; +using ::aidl::android::hardware::automotive::vehicle::CameraServiceState; using ::aidl::android::hardware::automotive::vehicle::ChangeModeForVehicleProperty; using ::aidl::android::hardware::automotive::vehicle::CrossTrafficMonitoringWarningState; using ::aidl::android::hardware::automotive::vehicle::CruiseControlCommand; @@ -63,9 +64,11 @@ using ::aidl::android::hardware::automotive::vehicle::LaneCenteringAssistState; using ::aidl::android::hardware::automotive::vehicle::LaneDepartureWarningState; using ::aidl::android::hardware::automotive::vehicle::LaneKeepAssistState; using ::aidl::android::hardware::automotive::vehicle::LocationCharacterization; +using ::aidl::android::hardware::automotive::vehicle::LowSpeedAutomaticEmergencyBrakingState; using ::aidl::android::hardware::automotive::vehicle::LowSpeedCollisionWarningState; using ::aidl::android::hardware::automotive::vehicle::RawPropValues; using ::aidl::android::hardware::automotive::vehicle::VehicleAirbagLocation; +using ::aidl::android::hardware::automotive::vehicle::VehicleApPowerBootupReason; using ::aidl::android::hardware::automotive::vehicle::VehicleApPowerStateReport; using ::aidl::android::hardware::automotive::vehicle::VehicleApPowerStateReq; using ::aidl::android::hardware::automotive::vehicle::VehicleAreaConfig; @@ -258,6 +261,8 @@ JsonValueParser::JsonValueParser() { std::make_unique>(); mConstantParsersByType["EmergencyLaneKeepAssistState"] = std::make_unique>(); + mConstantParsersByType["CameraServiceState"] = + std::make_unique>(); mConstantParsersByType["CruiseControlType"] = std::make_unique>(); mConstantParsersByType["CruiseControlState"] = @@ -297,6 +302,10 @@ JsonValueParser::JsonValueParser() { std::make_unique>(); mConstantParsersByType["CrossTrafficMonitoringWarningState"] = std::make_unique>(); + mConstantParsersByType["LowSpeedAutomaticEmergencyBrakingState"] = + std::make_unique>(); + mConstantParsersByType["VehicleApPowerBootupReason"] = + std::make_unique>(); mConstantParsersByType["Constants"] = std::make_unique(); #ifdef ENABLE_VEHICLE_HAL_TEST_PROPERTIES mConstantParsersByType["TestVendorProperty"] = @@ -484,10 +493,11 @@ bool JsonConfigParser::tryParseJsonArrayToVariable(const Json::Value& parentJson } template -void JsonConfigParser::parseAccessChangeMode( - const Json::Value& parentJsonNode, const std::string& fieldName, int propId, - const std::string& propStr, const std::unordered_map& defaultMap, - T* outPtr, std::vector* errors) { +void JsonConfigParser::parseAccessChangeMode(const Json::Value& parentJsonNode, + const std::string& fieldName, + const std::string& propStr, + const T* defaultAccessChangeModeValuePtr, T* outPtr, + std::vector* errors) { if (!parentJsonNode.isObject()) { errors->push_back("Node: " + parentJsonNode.toStyledString() + " is not an object"); return; @@ -501,12 +511,11 @@ void JsonConfigParser::parseAccessChangeMode( *outPtr = static_cast(result.value()); return; } - auto it = defaultMap.find(static_cast(propId)); - if (it == defaultMap.end()) { + if (defaultAccessChangeModeValuePtr == NULL) { errors->push_back("No " + fieldName + " specified for property: " + propStr); return; } - *outPtr = it->second; + *outPtr = *defaultAccessChangeModeValuePtr; return; } @@ -543,6 +552,7 @@ void JsonConfigParser::parseAreas(const Json::Value& parentJsonNode, const std:: if (!parentJsonNode.isMember(fieldName)) { return; } + std::string propStr = parentJsonNode["property"].toStyledString(); const Json::Value& jsonValue = parentJsonNode[fieldName]; if (!jsonValue.isArray()) { @@ -558,6 +568,8 @@ void JsonConfigParser::parseAreas(const Json::Value& parentJsonNode, const std:: } VehicleAreaConfig areaConfig = {}; areaConfig.areaId = areaId; + parseAccessChangeMode(jsonAreaConfig, "access", propStr, &(config->config.access), + &areaConfig.access, errors); tryParseJsonValueToVariable(jsonAreaConfig, "minInt32Value", /*optional=*/true, &areaConfig.minInt32Value, errors); tryParseJsonValueToVariable(jsonAreaConfig, "maxInt32Value", /*optional=*/true, @@ -605,12 +617,21 @@ std::optional JsonConfigParser::parseEachProperty( configDecl.config.prop = propId; std::string propStr = propJsonValue["property"].toStyledString(); - - parseAccessChangeMode(propJsonValue, "access", propId, propStr, AccessForVehicleProperty, + VehiclePropertyAccess* defaultAccessMode = NULL; + auto itAccess = AccessForVehicleProperty.find(static_cast(propId)); + if (itAccess != AccessForVehicleProperty.end()) { + defaultAccessMode = &itAccess->second; + } + VehiclePropertyChangeMode* defaultChangeMode = NULL; + auto itChangeMode = ChangeModeForVehicleProperty.find(static_cast(propId)); + if (itChangeMode != ChangeModeForVehicleProperty.end()) { + defaultChangeMode = &itChangeMode->second; + } + parseAccessChangeMode(propJsonValue, "access", propStr, defaultAccessMode, &configDecl.config.access, errors); - parseAccessChangeMode(propJsonValue, "changeMode", propId, propStr, - ChangeModeForVehicleProperty, &configDecl.config.changeMode, errors); + parseAccessChangeMode(propJsonValue, "changeMode", propStr, defaultChangeMode, + &configDecl.config.changeMode, errors); tryParseJsonValueToVariable(propJsonValue, "configString", /*optional=*/true, &configDecl.config.configString, errors); @@ -628,19 +649,21 @@ std::optional JsonConfigParser::parseEachProperty( parseAreas(propJsonValue, "areas", &configDecl, errors); - if (errors->size() != initialErrorCount) { - return std::nullopt; - } - // If there is no area config, by default we allow variable update rate, so we have to add // a global area config. if (configDecl.config.areaConfigs.size() == 0) { VehicleAreaConfig areaConfig = { .areaId = 0, + .access = configDecl.config.access, .supportVariableUpdateRate = true, }; configDecl.config.areaConfigs.push_back(std::move(areaConfig)); } + + if (errors->size() != initialErrorCount) { + return std::nullopt; + } + return configDecl; } diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp index 98826537e7896a89f2929e66bf5eff1e8aaee04e..54afbd4f7624340c8f82954862f14213820c9372 100644 --- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp +++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp @@ -287,6 +287,7 @@ TEST_F(JsonConfigLoaderUnitTest, testCheckDefaultAccessChangeMode) { const VehiclePropConfig& propConfig = configs.begin()->second.config; ASSERT_EQ(propConfig.access, VehiclePropertyAccess::READ); + ASSERT_EQ(propConfig.areaConfigs[0].access, VehiclePropertyAccess::READ); ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::STATIC); } @@ -308,6 +309,7 @@ TEST_F(JsonConfigLoaderUnitTest, testAccessOverride) { const VehiclePropConfig& propConfig = configs.begin()->second.config; ASSERT_EQ(propConfig.access, VehiclePropertyAccess::WRITE); + ASSERT_EQ(propConfig.areaConfigs[0].access, VehiclePropertyAccess::WRITE); ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::STATIC); } @@ -329,6 +331,7 @@ TEST_F(JsonConfigLoaderUnitTest, testChangeModeOverride) { const VehiclePropConfig& propConfig = configs.begin()->second.config; ASSERT_EQ(propConfig.access, VehiclePropertyAccess::READ); + ASSERT_EQ(propConfig.areaConfigs[0].access, VehiclePropertyAccess::READ); ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::ON_CHANGE); } @@ -351,6 +354,7 @@ TEST_F(JsonConfigLoaderUnitTest, testCustomProp) { const VehiclePropConfig& propConfig = configs.begin()->second.config; ASSERT_EQ(propConfig.access, VehiclePropertyAccess::WRITE); + ASSERT_EQ(propConfig.areaConfigs[0].access, VehiclePropertyAccess::WRITE); ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::ON_CHANGE); } @@ -550,10 +554,12 @@ TEST_F(JsonConfigLoaderUnitTest, testAreas_Simple) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::READ); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; ASSERT_EQ(areaConfig.minInt32Value, 1); ASSERT_EQ(areaConfig.maxInt32Value, 7); + ASSERT_EQ(areaConfig.access, VehiclePropertyAccess::READ); ASSERT_EQ(areaConfig.areaId, HVAC_ALL); } @@ -635,9 +641,11 @@ TEST_F(JsonConfigLoaderUnitTest, testAreas_HandlesNoSupportedEnumValuesDeclared) ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::READ); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; + ASSERT_EQ(areaConfig.access, VehiclePropertyAccess::READ); ASSERT_EQ(areaConfig.areaId, 0); ASSERT_FALSE(areaConfig.supportedEnumValues); } @@ -662,9 +670,11 @@ TEST_F(JsonConfigLoaderUnitTest, testAreas_HandlesSupportedEnumValues) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::READ); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; + ASSERT_EQ(areaConfig.access, VehiclePropertyAccess::READ); ASSERT_EQ(areaConfig.areaId, 0); ASSERT_TRUE(areaConfig.supportedEnumValues); ASSERT_EQ(areaConfig.supportedEnumValues.value().size(), 2u); @@ -692,13 +702,107 @@ TEST_F(JsonConfigLoaderUnitTest, testAreas_HandlesEmptySupportedEnumValues) { ASSERT_EQ(configs.size(), 1u); const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::READ); ASSERT_EQ(config.areaConfigs.size(), 1u); const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; + ASSERT_EQ(areaConfig.access, VehiclePropertyAccess::READ); ASSERT_EQ(areaConfig.areaId, 0); ASSERT_FALSE(areaConfig.supportedEnumValues); } +TEST_F(JsonConfigLoaderUnitTest, testAccess_areaOverrideGlobalDefault) { + std::istringstream iss(R"( + { + "properties": [{ + "property": "VehicleProperty::CABIN_LIGHTS_SWITCH", + "areas": [{ + "access": "VehiclePropertyAccess::READ", + "areaId": 0 + }] + }] + } + )"); + + auto result = mLoader.loadPropConfig(iss); + ASSERT_TRUE(result.ok()); + + auto configs = result.value(); + ASSERT_EQ(configs.size(), 1u); + + const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::READ_WRITE); + ASSERT_EQ(config.areaConfigs.size(), 1u); + + const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; + ASSERT_EQ(areaConfig.access, VehiclePropertyAccess::READ); + ASSERT_EQ(areaConfig.areaId, 0); +} + +TEST_F(JsonConfigLoaderUnitTest, testAccess_globalOverrideDefault) { + std::istringstream iss(R"( + { + "properties": [{ + "property": "VehicleProperty::CABIN_LIGHTS_SWITCH", + "areas": [{ + "areaId": 0 + }], + "access": "VehiclePropertyAccess::READ" + }] + } + )"); + + auto result = mLoader.loadPropConfig(iss); + ASSERT_TRUE(result.ok()); + + auto configs = result.value(); + ASSERT_EQ(configs.size(), 1u); + + const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::READ); + ASSERT_EQ(config.areaConfigs.size(), 1u); + + const VehicleAreaConfig& areaConfig = config.areaConfigs[0]; + ASSERT_EQ(areaConfig.access, VehiclePropertyAccess::READ); + ASSERT_EQ(areaConfig.areaId, 0); +} + +TEST_F(JsonConfigLoaderUnitTest, testAccess_areaOverrideGlobal) { + std::istringstream iss(R"( + { + "properties": [{ + "property": "VehicleProperty::CABIN_LIGHTS_SWITCH", + "areas": [{ + "access": "VehiclePropertyAccess::WRITE", + "areaId": 0 + }, + { + "areaId": 1 + }], + "access": "VehiclePropertyAccess::READ", + }] + } + )"); + + auto result = mLoader.loadPropConfig(iss); + ASSERT_TRUE(result.ok()); + + auto configs = result.value(); + ASSERT_EQ(configs.size(), 1u); + + const VehiclePropConfig& config = configs.begin()->second.config; + ASSERT_EQ(config.access, VehiclePropertyAccess::READ); + ASSERT_EQ(config.areaConfigs.size(), 2u); + + const VehicleAreaConfig& areaConfig1 = config.areaConfigs[0]; + ASSERT_EQ(areaConfig1.access, VehiclePropertyAccess::WRITE); + ASSERT_EQ(areaConfig1.areaId, 0); + + const VehicleAreaConfig& areaConfig2 = config.areaConfigs[1]; + ASSERT_EQ(areaConfig2.access, VehiclePropertyAccess::READ); + ASSERT_EQ(areaConfig2.areaId, 1); +} + } // namespace vehicle } // namespace automotive } // namespace hardware diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json index 665c10e8e37bdc28fa55dd18182bbe44f5d6fd73..0a859af695a4beba14b78ffb61b0633d5da48c85 100644 --- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json +++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json @@ -3195,6 +3195,14 @@ ] } }, + { + "property": "VehicleProperty::AP_POWER_BOOTUP_REASON", + "defaultValue": { + "int32Values": [ + "VehicleApPowerBootupReason::USER_POWER_ON" + ] + } + }, { "property": "VehicleProperty::DISPLAY_BRIGHTNESS", "defaultValue": { @@ -3218,6 +3226,19 @@ ] } }, + { + "property": "VehicleProperty::HEAD_UP_DISPLAY_ENABLED", + "defaultValue": { + "int32Values": [ + 0 + ] + }, + "areas": [ + { + "areaId": "Constants::SEAT_1_LEFT" + } + ] + }, { "property": "VehicleProperty::OBD2_LIVE_FRAME", "configArray": [ @@ -3442,6 +3463,839 @@ ] } }, + { + "property": "VehicleProperty::ULTRASONICS_SENSOR_POSITION", + "comment": + "Default values for 12 individual ultrasonic sensors installed on the vehicle. Six sensors on the front bumper. Six sensors on the back bumper.", + "areas": [ + { + "defaultValue": { + "int32Values": [ + -1000, + 3900, + 0 + ] + }, + "areaId": 1, + "comment": "Rough numbers representing front left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + -600, + 4000, + 0 + ] + }, + "areaId": 2, + "comment": "Rough numbers representing front 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + -200, + 4000, + 0 + ] + }, + "areaId": 4, + "comment": "Rough numbers representing front 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 200, + 4000, + 0 + ] + }, + "areaId": 8, + "comment": "Rough numbers representing front 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 600, + 4000, + 0 + ] + }, + "areaId": 16, + "comment": "Rough numbers representing front 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 1000, + 3900, + 0 + ] + }, + "areaId": 32, + "comment": "Rough numbers representing front right most sensor." + }, + { + "defaultValue": { + "int32Values": [ + -1000, + -900, + 0 + ] + }, + "areaId": 64, + "comment": "Rough numbers representing back left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + -600, + -1000, + 0 + ] + }, + "areaId": 128, + "comment": "Rough numbers representing back 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + -200, + -1000, + 0 + ] + }, + "areaId": 256, + "comment": "Rough numbers representing back 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 200, + -1000, + 0 + ] + }, + "areaId": 512, + "comment": "Rough numbers representing back 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 600, + -1000, + 0 + ] + }, + "areaId": 1024, + "comment": "Rough numbers representing back 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 1000, + -900, + 0 + ] + }, + "areaId": 2048, + "comment": "Rough numbers representing back right most sensor." + } + ] + }, + { + "property": "VehicleProperty::ULTRASONICS_SENSOR_ORIENTATION", + "comment": + "Default values for 12 individual ultrasonic sensors installed on the vehicle. Six sensors on the front bumper. Six sensors on the back bumper.", + "areas": [ + { + "defaultValue": { + "floatValues": [ + 0.924, + 0, + 0, + 0.383 + ] + }, + "areaId": 1, + "comment": + "Rough quaternion values [w, x, y, z] representing front left most sensor rotated 45 degrees counter-clockwise." + }, + { + "defaultValue": { + "floatValues": [ + 1, + 0, + 0, + 0 + ] + }, + "areaId": 2, + "comment": + "Rough quaternion values [w, x, y, z] representing front 2nd to the left sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 1, + 0, + 0, + 0 + ] + }, + "areaId": 4, + "comment": + "Rough quaternion values [w, x, y, z] representing front 3rd to the left sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 1, + 0, + 0, + 0 + ] + }, + "areaId": 8, + "comment": + "Rough quaternion values [w, x, y, z] representing front 3rd to the right sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 1, + 0, + 0, + 0 + ] + }, + "areaId": 16, + "comment": + "Rough quaternion values [w, x, y, z] representing front 2nd to the right sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 0.924, + 0, + 0, + -0.383 + ] + }, + "areaId": 32, + "comment": + "Rough quaternion values [w, x, y, z] representing front right most sensor rotated 45 degrees clockwise." + }, + { + "defaultValue": { + "floatValues": [ + 60, + 61, + 62, + 63 + ] + }, + "areaId": 64, + "comment": + "Rough quaternion values [w, x, y, z] representing back left most sensor rotated 45 degrees counter-clockwise." + }, + { + "defaultValue": { + "floatValues": [ + 70, + 71, + 72, + 73 + ] + }, + "areaId": 128, + "comment": + "Rough quaternion values [w, x, y, z] representing back 2nd to the left sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 81, + 82, + 83, + 84 + ] + }, + "areaId": 256, + "comment": + "Rough quaternion values [w, x, y, z] representing back 3rd to the right sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 90, + 91, + 92, + 93 + ] + }, + "areaId": 512, + "comment": + "Rough quaternion values [w, x, y, z] representing back 3rd to the right sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 100, + 101, + 102, + 103 + ] + }, + "areaId": 1024, + "comment": + "Rough quaternion values [w, x, y, z] representing back 2nd to the right sensor rotated 0 degrees" + }, + { + "defaultValue": { + "floatValues": [ + 110, + 111, + 112, + 113 + ] + }, + "areaId": 2048, + "comment": + "Rough quaternion values [w, x, y, z] representing back right most sensor rotated 45 degrees clockwise." + } + ] + }, + { + "property": "VehicleProperty::ULTRASONICS_SENSOR_FIELD_OF_VIEW", + "comment": + "Default values for 12 individual ultrasonic sensors installed on the vehicle. Six sensors on the front bumper. Six sensors on the back bumper.", + "areas": [ + { + "defaultValue": { + "int32Values": [ + 85, + 45 + ] + }, + "areaId": 1, + "comment": "Rough values representing front left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 2, + "comment": "Rough values representing front 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 4, + "comment": "Rough values representing front 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 8, + "comment": "Rough values representing front 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 16, + "comment": "Rough values representing front 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 85, + 45 + ] + }, + "areaId": 32, + "comment": "Rough values representing front right most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 85, + 45 + ] + }, + "areaId": 64, + "comment": "Rough values representing back left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 128, + "comment": "Rough values representing back 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 256, + "comment": "Rough values representing back 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 512, + "comment": "Rough values representing back 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 75, + 45 + ] + }, + "areaId": 1024, + "comment": "Rough values representing back 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 85, + 45 + ] + }, + "areaId": 2048, + "comment": "Rough values representing back right most sensor." + } + ] + }, + { + "property": "VehicleProperty::ULTRASONICS_SENSOR_DETECTION_RANGE", + "areas": [ + { + "defaultValue": { + "int32Values": [ + 150, + 4000 + ] + }, + "areaId": 1, + "comment": "Rough values representing front left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 2, + "comment": "Rough values representing front 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 4, + "comment": "Rough values representing front 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 8, + "comment": "Rough values representing front 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 16, + "comment": "Rough values representing front 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 4000 + ] + }, + "areaId": 32, + "comment": "Rough values representing front right most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 4000 + ] + }, + "areaId": 64, + "comment": "Rough values representing back left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 128, + "comment": "Rough values representing back 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 256, + "comment": "Rough values representing back 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 512, + "comment": "Rough values representing back 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 3000 + ] + }, + "areaId": 1024, + "comment": "Rough values representing back 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 4000 + ] + }, + "areaId": 2048, + "comment": "Rough values representing back right most sensor." + } + ] + }, + { + "property": "VehicleProperty::ULTRASONICS_SENSOR_SUPPORTED_RANGES", + "areas": [ + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 4000 + ] + }, + "areaId": 1, + "comment": "Rough values representing front left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 3000 + ] + }, + "areaId": 2, + "comment": "Rough values representing front 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 3000 + ] + }, + "areaId": 4, + "comment": "Rough values representing front 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 3000 + ] + }, + "areaId": 8, + "comment": "Rough values representing front 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 3000 + ] + }, + "areaId": 16, + "comment": "Rough values representing front 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 4000 + ] + }, + "areaId": 32, + "comment": "Rough values representing front right most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 4000 + ] + }, + "areaId": 64, + "comment": "Rough values representing back left most sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 3000 + ] + }, + "areaId": 128, + "comment": "Rough values representing back 2nd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 3000 + ] + }, + "areaId": 256, + "comment": "Rough values representing back 3rd to the left sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 3000 + ] + }, + "areaId": 512, + "comment": "Rough values representing back 3rd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 3000 + ] + }, + "areaId": 1024, + "comment": "Rough values representing back 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 150, + 999, + 1000, + 1999, + 2000, + 4000 + ] + }, + "areaId": 2048, + "comment": "Rough values representing back right most sensor." + } + ] + }, + { + "property": "VehicleProperty::ULTRASONICS_SENSOR_MEASURED_DISTANCE", + "areas": [ + { + "defaultValue": { + "int32Values": [ + 2000, + 10 + ] + }, + "areaId": 1, + "comment": "Rough values representing front left most sensor." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 2, + "comment": + "Rough values representing front 2nd to the left sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 4, + "comment": + "Rough values representing front 3rd to the left sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 8, + "comment": + "Rough values representing front 3rd to the right sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 16, + "comment": + "Rough values representing front 2nd to the right sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 32, + "comment": + "Rough values representing front right most sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 64, + "comment": "Rough values representing back left most sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 128, + "comment": + "Rough values representing back 2nd to the left sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [] + }, + "areaId": 256, + "comment": + "Rough values representing back 3rd to the left sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [ + 1000 + ] + }, + "areaId": 512, + "comment": + "Rough values representing back 3rd to the right sensor. Nothing detected." + }, + { + "defaultValue": { + "int32Values": [ + 2000, + 50 + ] + }, + "areaId": 1024, + "comment": "Rough values representing back 2nd to the right sensor." + }, + { + "defaultValue": { + "int32Values": [ + 2000 + ] + }, + "areaId": 2048, + "comment": + "Rough values representing back right most sensor. No distance error." + } + ], + "maxSampleRate": 10.0, + "minSampleRate": 1.0 + }, { "property": "VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE", "defaultValue": { @@ -4191,6 +5045,51 @@ ] } ] + }, + { + "property": "VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED", + "defaultValue": { + "int32Values": [ + 1 + ] + } + }, + { + "property": "VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE", + "defaultValue": { + "int32Values": [ + "LowSpeedAutomaticEmergencyBrakingState::ENABLED" + ] + }, + "areas": [ + { + "areaId": 0, + "supportedEnumValues": [ + "ErrorState::NOT_AVAILABLE_SAFETY", + "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY", + "ErrorState::NOT_AVAILABLE_SPEED_HIGH", + "ErrorState::NOT_AVAILABLE_DISABLED", + "LowSpeedAutomaticEmergencyBrakingState::ENABLED", + "LowSpeedAutomaticEmergencyBrakingState::ACTIVATED", + "LowSpeedAutomaticEmergencyBrakingState::USER_OVERRIDE" + ] + } + ] + }, + { + "property": "VehicleProperty::CAMERA_SERVICE_CURRENT_STATE", + "defaultValue": { + "int32Values": [ + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE", + "CameraServiceState::UNAVAILABLE" + ] + } } ] } diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/Android.bp b/automotive/vehicle/aidl/impl/fake_impl/hardware/Android.bp index e75f6485b8e3cf786a99121433c3e311bf1ea65e..5fc07c947ace7add2f2273e234cd163546dfc990 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/Android.bp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/Android.bp @@ -27,11 +27,16 @@ cc_library { ], local_include_dirs: ["include"], export_include_dirs: ["include"], - cflags: ["-DENABLE_VEHICLE_HAL_TEST_PROPERTIES"], + cflags: [ + "-DENABLE_VEHICLE_HAL_TEST_PROPERTIES", + ], defaults: [ "VehicleHalDefaults", "FakeVehicleHardwareDefaults", ], + whole_static_libs: [ + "wakeup_client_protos", + ], } cc_defaults { @@ -54,7 +59,9 @@ cc_defaults { "Prebuilt_VehicleHalVendorClusterTestProperties_JSON", ], shared_libs: [ + "libgrpc++", "libjsoncpp", + "libprotobuf-cpp-full", ], export_static_lib_headers: ["VehicleHalUtils"], } diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h index 8cd92b3b896777a67eb75f981ac540686722b675..644d1cd0252e615eb27afd78729befa1185c8a06 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h @@ -32,6 +32,8 @@ #include #include #include +#include +#include #include #include @@ -187,6 +189,10 @@ class FakeVehicleHardware : public IVehicleHardware { // Only used during initialization. JsonConfigLoader mLoader; + // Only used during initialization. If not empty, points to an external grpc server that + // provides power controlling related properties. + std::string mPowerControllerServiceAddress = ""; + void init(); // Stores the initial value to property store. void storePropInitialValue(const ConfigDeclaration& config); @@ -240,6 +246,11 @@ class FakeVehicleHardware : public IVehicleHardware { VhalResult synchronizeHvacTemp(int32_t hvacDualOnAreaId, std::optional newTempC) const; std::optional getSyncedAreaIdIfHvacDualOn(int32_t hvacTemperatureSetAreaId) const; + ValueResultType getPowerPropFromExternalService(int32_t propId) const; + ValueResultType getVehicleInUse( + android::hardware::automotive::remoteaccess::PowerController::Stub* clientStub) const; + ValueResultType getApPowerBootupReason( + android::hardware::automotive::remoteaccess::PowerController::Stub* clientStub) const; std::unordered_map loadConfigDeclarations(); @@ -256,6 +267,7 @@ class FakeVehicleHardware : public IVehicleHardware { std::string dumpSaveProperty(const std::vector& options); std::string dumpRestoreProperty(const std::vector& options); std::string dumpInjectEvent(const std::vector& options); + std::string dumpSubscriptions(); template android::base::Result safelyParseInt(int index, const std::string& s) { @@ -294,7 +306,7 @@ class FakeVehicleHardware : public IVehicleHardware { void registerRefreshLocked(PropIdAreaId propIdAreaId, VehiclePropertyStore::EventMode eventMode, float sampleRateHz) REQUIRES(mLock); void unregisterRefreshLocked(PropIdAreaId propIdAreaId) REQUIRES(mLock); - void refreshTimeStampForInterval(int64_t intervalInNanos) EXCLUDES(mLock); + void refreshTimestampForInterval(int64_t intervalInNanos) EXCLUDES(mLock); static aidl::android::hardware::automotive::vehicle::VehiclePropValue createHwInputKeyProp( aidl::android::hardware::automotive::vehicle::VehicleHwKeyInputAction action, diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp index dced62446c2182d8f7f965910f5f29b70549ea1a..c4bcdb39abf4df3329fbb58c071489952b57dd00 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp @@ -51,6 +51,8 @@ namespace fake { namespace { +#define PROP_ID_TO_CSTR(A) (propIdToString(A).c_str()) + using ::aidl::android::hardware::automotive::vehicle::CruiseControlCommand; using ::aidl::android::hardware::automotive::vehicle::CruiseControlType; using ::aidl::android::hardware::automotive::vehicle::DriverDistractionState; @@ -80,6 +82,12 @@ using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyType; using ::aidl::android::hardware::automotive::vehicle::VehiclePropValue; using ::aidl::android::hardware::automotive::vehicle::VehicleUnit; +using ::android::hardware::automotive::remoteaccess::GetApPowerBootupReasonRequest; +using ::android::hardware::automotive::remoteaccess::GetApPowerBootupReasonResponse; +using ::android::hardware::automotive::remoteaccess::IsVehicleInUseRequest; +using ::android::hardware::automotive::remoteaccess::IsVehicleInUseResponse; +using ::android::hardware::automotive::remoteaccess::PowerController; + using ::android::base::EqualsIgnoreCase; using ::android::base::Error; using ::android::base::GetIntProperty; @@ -106,6 +114,9 @@ constexpr char DEFAULT_CONFIG_DIR[] = "/vendor/etc/automotive/vhalconfig/"; // The directory for property configuration file that overrides the default configuration file. // For config file format, see impl/default_config/config/README.md. constexpr char OVERRIDE_CONFIG_DIR[] = "/vendor/etc/automotive/vhaloverride/"; +// The optional config file for power controller grpc service that provides vehicleInUse and +// ApPowerBootupReason property. +constexpr char GRPC_SERVICE_CONFIG_FILE[] = "/vendor/etc/automotive/powercontroller/serverconfig"; // If OVERRIDE_PROPERTY is set, we will use the configuration files from OVERRIDE_CONFIG_DIR to // overwrite the default configs. constexpr char OVERRIDE_PROPERTY[] = "persist.vendor.vhal_init_value_override"; @@ -246,7 +257,30 @@ const std::unordered_map> mAdasEnabledPropToAdasPr toInt(VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE), }, }, + // LSAEB + { + toInt(VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED), + { + toInt(VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE), + }, + }, }; + +// The list of VHAL properties that might be handled by an external power controller. +const std::unordered_set mPowerPropIds = {toInt(VehicleProperty::VEHICLE_IN_USE), + toInt(VehicleProperty::AP_POWER_BOOTUP_REASON)}; + +void maybeGetGrpcServiceInfo(std::string* address) { + std::ifstream ifs(GRPC_SERVICE_CONFIG_FILE); + if (!ifs) { + ALOGI("Cannot open grpc service config file at: %s, assume no service is available", + GRPC_SERVICE_CONFIG_FILE); + return; + } + ifs >> *address; + ifs.close(); +} + } // namespace void FakeVehicleHardware::storePropInitialValue(const ConfigDeclaration& config) { @@ -337,6 +371,8 @@ std::unordered_map FakeVehicleHardware::loadConfigDe } void FakeVehicleHardware::init() { + maybeGetGrpcServiceInfo(&mPowerControllerServiceAddress); + for (auto& [_, configDeclaration] : loadConfigDeclarations()) { VehiclePropConfig cfg = configDeclaration.config; VehiclePropertyStore::TokenFunction tokenFunction = nullptr; @@ -718,7 +754,7 @@ std::optional FakeVehicleHardware::getSyncedAreaIdIfHvacDualOn( FakeVehicleHardware::ValueResultType FakeVehicleHardware::getUserHalProp( const VehiclePropValue& value) const { auto propId = value.prop; - ALOGI("get(): getting value for prop %d from User HAL", propId); + ALOGI("get(): getting value for prop %s from User HAL", PROP_ID_TO_CSTR(propId)); auto result = mFakeUserHal->onGetProperty(value); if (!result.ok()) { @@ -754,6 +790,13 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::maybeGetSpecialValue( int32_t propId = value.prop; ValueResultType result; + if (mPowerControllerServiceAddress != "") { + if (mPowerPropIds.find(propId) != mPowerPropIds.end()) { + *isSpecialValue = true; + return getPowerPropFromExternalService(propId); + } + } + if (propId >= STARTING_VENDOR_CODE_PROPERTIES_FOR_TEST && propId < ENDING_VENDOR_CODE_PROPERTIES_FOR_TEST) { *isSpecialValue = true; @@ -835,6 +878,58 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::maybeGetSpecialValue( return nullptr; } +FakeVehicleHardware::ValueResultType FakeVehicleHardware::getPowerPropFromExternalService( + int32_t propId) const { + auto channel = + grpc::CreateChannel(mPowerControllerServiceAddress, grpc::InsecureChannelCredentials()); + auto clientStub = PowerController::NewStub(channel); + switch (propId) { + case toInt(VehicleProperty::VEHICLE_IN_USE): + return getVehicleInUse(clientStub.get()); + case toInt(VehicleProperty::AP_POWER_BOOTUP_REASON): + return getApPowerBootupReason(clientStub.get()); + default: + return StatusError(StatusCode::INTERNAL_ERROR) + << "Unsupported power property ID: " << propId; + } +} + +FakeVehicleHardware::ValueResultType FakeVehicleHardware::getVehicleInUse( + PowerController::Stub* clientStub) const { + IsVehicleInUseRequest request = {}; + IsVehicleInUseResponse response = {}; + grpc::ClientContext context; + auto status = clientStub->IsVehicleInUse(&context, request, &response); + if (!status.ok()) { + return StatusError(StatusCode::TRY_AGAIN) << "Cannot connect to GRPC service " + << ", error: " << status.error_message(); + } + auto result = mValuePool->obtainBoolean(response.isvehicleinuse()); + result->prop = toInt(VehicleProperty::VEHICLE_IN_USE); + result->areaId = 0; + result->status = VehiclePropertyStatus::AVAILABLE; + result->timestamp = elapsedRealtimeNano(); + return result; +} + +FakeVehicleHardware::ValueResultType FakeVehicleHardware::getApPowerBootupReason( + PowerController::Stub* clientStub) const { + GetApPowerBootupReasonRequest request = {}; + GetApPowerBootupReasonResponse response = {}; + grpc::ClientContext context; + auto status = clientStub->GetApPowerBootupReason(&context, request, &response); + if (!status.ok()) { + return StatusError(StatusCode::TRY_AGAIN) << "Cannot connect to GRPC service " + << ", error: " << status.error_message(); + } + auto result = mValuePool->obtainInt32(response.bootupreason()); + result->prop = toInt(VehicleProperty::AP_POWER_BOOTUP_REASON); + result->areaId = 0; + result->status = VehiclePropertyStatus::AVAILABLE; + result->timestamp = elapsedRealtimeNano(); + return result; +} + FakeVehicleHardware::ValueResultType FakeVehicleHardware::getEchoReverseBytes( const VehiclePropValue& value) const { auto readResult = mServerSidePropStore->readValue(value); @@ -1081,7 +1176,7 @@ StatusCode FakeVehicleHardware::setValues(std::shared_ptr& requests) { for (auto& request : requests) { if (FAKE_VEHICLEHARDWARE_DEBUG) { - ALOGD("Set value for property ID: %d", request.value.prop); + ALOGD("Set value for property ID: %s", PROP_ID_TO_CSTR(request.value.prop)); } // In a real VHAL implementation, you could either send the setValue request to vehicle bus @@ -1102,9 +1197,9 @@ VhalResult FakeVehicleHardware::setValue(const VehiclePropValue& value) { auto setSpecialValueResult = maybeSetSpecialValue(value, &isSpecialValue); if (isSpecialValue) { if (!setSpecialValueResult.ok()) { - return StatusError(getErrorCode(setSpecialValueResult)) - << StringPrintf("failed to set special value for property ID: %d, error: %s", - value.prop, getErrorMsg(setSpecialValueResult).c_str()); + return StatusError(getErrorCode(setSpecialValueResult)) << StringPrintf( + "failed to set special value for property ID: %s, error: %s", + PROP_ID_TO_CSTR(value.prop), getErrorMsg(setSpecialValueResult).c_str()); } return {}; } @@ -1143,7 +1238,7 @@ StatusCode FakeVehicleHardware::getValues(std::shared_ptr& requests) const { for (auto& request : requests) { if (FAKE_VEHICLEHARDWARE_DEBUG) { - ALOGD("getValues(%d)", request.prop.prop); + ALOGD("getValues(%s)", PROP_ID_TO_CSTR(request.prop.prop)); } // In a real VHAL implementation, you could either send the getValue request to vehicle bus @@ -1182,8 +1277,8 @@ FakeVehicleHardware::ValueResultType FakeVehicleHardware::getValue( if (isSpecialValue) { if (!result.ok()) { return StatusError(getErrorCode(result)) - << StringPrintf("failed to get special value: %d, error: %s", value.prop, - getErrorMsg(result).c_str()); + << StringPrintf("failed to get special value: %s, error: %s", + PROP_ID_TO_CSTR(value.prop), getErrorMsg(result).c_str()); } else { return result; } @@ -1242,6 +1337,8 @@ DumpResult FakeVehicleHardware::dump(const std::vector& options) { mAddExtraTestVendorConfigs = false; result.refreshPropertyConfigs = true; result.buffer = "successfully restored vendor configs"; + } else if (EqualsIgnoreCase(option, "--dumpSub")) { + result.buffer = dumpSubscriptions(); } else { result.buffer = StringPrintf("Invalid option: %s\n", option.c_str()); } @@ -1373,7 +1470,8 @@ std::string FakeVehicleHardware::genFakeDataCommand(const std::vectorunregisterGenerator(propId)) { return "Linear event generator stopped successfully"; } - return StringPrintf("No linear event generator found for property: %d", propId); + return StringPrintf("No linear event generator found for property: %s", + PROP_ID_TO_CSTR(propId)); } else if (command == "--startjson") { // --genfakedata --startjson --path path repetition // or @@ -1643,6 +1741,26 @@ void FakeVehicleHardware::eventFromVehicleBus(const VehiclePropValue& value) { mServerSidePropStore->writeValue(mValuePool->obtain(value)); } +std::string FakeVehicleHardware::dumpSubscriptions() { + std::scoped_lock lockGuard(mLock); + std::string result = "Subscriptions: \n"; + for (const auto& [interval, actionForInterval] : mActionByIntervalInNanos) { + for (const auto& propIdAreaId : actionForInterval.propIdAreaIdsToRefresh) { + const auto& refreshInfo = mRefreshInfoByPropIdAreaId[propIdAreaId]; + bool vur = (refreshInfo.eventMode == VehiclePropertyStore::EventMode::ON_VALUE_CHANGE); + float sampleRateHz = 1'000'000'000. / refreshInfo.intervalInNanos; + result += StringPrintf("Continuous{property: %s, areaId: %d, rate: %lf hz, vur: %b}\n", + PROP_ID_TO_CSTR(propIdAreaId.propId), propIdAreaId.areaId, + sampleRateHz, vur); + } + } + for (const auto& propIdAreaId : mSubOnChangePropIdAreaIds) { + result += StringPrintf("OnChange{property: %s, areaId: %d}\n", + PROP_ID_TO_CSTR(propIdAreaId.propId), propIdAreaId.areaId); + } + return result; +} + std::string FakeVehicleHardware::dumpHelp() { return "Usage: \n\n" "[no args]: dumps (id and value) all supported properties \n" @@ -1710,8 +1828,9 @@ std::string FakeVehicleHardware::dumpOnePropertyById(int32_t propId, int32_t are result = mServerSidePropStore->readValue(value); } if (!result.ok()) { - return StringPrintf("failed to read property value: %d, error: %s, code: %d\n", propId, - getErrorMsg(result).c_str(), getIntErrorCode(result)); + return StringPrintf("failed to read property value: %s, error: %s, code: %d\n", + PROP_ID_TO_CSTR(propId), getErrorMsg(result).c_str(), + getIntErrorCode(result)); } else { return result.value()->toString() + "\n"; @@ -1726,7 +1845,7 @@ std::string FakeVehicleHardware::dumpListProperties() { int rowNumber = 1; std::string msg = StringPrintf("listing %zu properties\n", configs.size()); for (const auto& config : configs) { - msg += StringPrintf("%d: %d\n", rowNumber++, config.prop); + msg += StringPrintf("%d: %s\n", rowNumber++, PROP_ID_TO_CSTR(config.prop)); } return msg; } @@ -1759,7 +1878,7 @@ std::string FakeVehicleHardware::dumpSpecificProperty(const std::vectorgetPropConfig(prop); if (!result.ok()) { - msg += StringPrintf("No property %d\n", prop); + msg += StringPrintf("No property %s\n", PROP_ID_TO_CSTR(prop)); continue; } msg += dumpOnePropertyByConfig(rowNumber++, result.value()); @@ -1945,8 +2064,9 @@ std::string FakeVehicleHardware::dumpGetPropertyWithArg(const std::vectortoString().c_str()); } @@ -2039,7 +2159,7 @@ std::string FakeVehicleHardware::dumpInjectEvent(const std::vector& eventFromVehicleBus(prop); - return StringPrintf("Event for property: %d injected", prop.prop); + return StringPrintf("Event for property: %s injected", PROP_ID_TO_CSTR(prop.prop)); } StatusCode FakeVehicleHardware::checkHealth() { @@ -2102,7 +2222,7 @@ bool FakeVehicleHardware::isVariableUpdateRateSupported(const VehiclePropConfig& return false; } -void FakeVehicleHardware::refreshTimeStampForInterval(int64_t intervalInNanos) { +void FakeVehicleHardware::refreshTimestampForInterval(int64_t intervalInNanos) { std::unordered_map eventModeByPropIdAreaId; @@ -2152,7 +2272,7 @@ void FakeVehicleHardware::registerRefreshLocked(PropIdAreaId propIdAreaId, // This is the first action for the interval, register a timer callback for that interval. auto action = std::make_shared( - [this, intervalInNanos] { refreshTimeStampForInterval(intervalInNanos); }); + [this, intervalInNanos] { refreshTimestampForInterval(intervalInNanos); }); mActionByIntervalInNanos[intervalInNanos] = ActionForInterval{ .propIdAreaIdsToRefresh = {propIdAreaId}, .recurrentAction = action, @@ -2194,7 +2314,7 @@ StatusCode FakeVehicleHardware::subscribePropIdAreaIdLocked( case VehiclePropertyChangeMode::CONTINUOUS: if (sampleRateHz == 0.f) { ALOGE("Must not use sample rate 0 for a continuous property"); - return StatusCode::INTERNAL_ERROR; + return StatusCode::INVALID_ARG; } // For continuous properties, we must generate a new onPropertyChange event // periodically according to the sample rate. diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/Android.bp b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/Android.bp index b763d2f55d0ac71b415005c3ab0118f2b74a46ce..ac70b51423661d76e673e930342ec6a862450ba1 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/Android.bp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/Android.bp @@ -41,7 +41,9 @@ cc_test { "libgmock", ], shared_libs: [ + "libgrpc++", "libjsoncpp", + "libprotobuf-cpp-full", ], data: [ ":VehicleHalDefaultProperties_JSON", diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp index 6d2efd5b5c2b55edb2e6311c14a5e8a83733d887..cab33e10e808ac55da5969f72975c48e47ebfafb 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp @@ -506,6 +506,12 @@ TEST_F(FakeVehicleHardwareTest, testGetDefaultValues) { continue; } + if (propId == toInt(VehicleProperty::VEHICLE_IN_USE) || + propId == toInt(VehicleProperty::AP_POWER_BOOTUP_REASON)) { + // These may be controller by an external power control unit. + continue; + } + if (isGlobalProp(propId)) { if (config.initialValue == RawPropValues{}) { addGetValueRequest(getValueRequests, expectedGetValueResults, requestId++, @@ -2617,8 +2623,8 @@ TEST_F(FakeVehicleHardwareTest, testDumpSpecificPropertiesInvalidProp) { DumpResult result = getHardware()->dump(options); ASSERT_FALSE(result.callerShouldDumpState); ASSERT_NE(result.buffer, ""); - ASSERT_THAT(result.buffer, ContainsRegex(StringPrintf("1:.*prop: %s.*\nNo property %d\n", - prop1.c_str(), INVALID_PROP_ID))); + ASSERT_THAT(result.buffer, ContainsRegex(StringPrintf("1:.*prop: %s.*\nNo property INVALID\n", + prop1.c_str()))); } TEST_F(FakeVehicleHardwareTest, testDumpSpecificPropertiesNoArg) { @@ -2701,8 +2707,7 @@ TEST_F(FakeVehicleHardwareTest, testDumpInjectEvent) { {"--inject-event", propIdStr, "-i", "1234", "-t", std::to_string(timestamp)}); ASSERT_FALSE(result.callerShouldDumpState); - ASSERT_THAT(result.buffer, - ContainsRegex(StringPrintf("Event for property: %d injected", prop))); + ASSERT_THAT(result.buffer, ContainsRegex("Event for property: ENGINE_OIL_LEVEL injected")); ASSERT_TRUE(waitForChangedProperties(prop, 0, /*count=*/1, milliseconds(1000))) << "No changed event received for injected event from vehicle bus"; auto events = getChangedProperties(); @@ -3444,6 +3449,14 @@ TEST_F(FakeVehicleHardwareTest, testSubscribeUnusubscribe_onChange) { << "must not receive on change events if the propId, areaId is unsubscribed"; } +TEST_F(FakeVehicleHardwareTest, testSubscribeContinuous_rate0_mustReturnInvalidArg) { + int32_t propSpeed = toInt(VehicleProperty::PERF_VEHICLE_SPEED); + int32_t areaId = 0; + auto status = getHardware()->subscribe(newSubscribeOptions(propSpeed, areaId, 0)); + + ASSERT_EQ(status, StatusCode::INVALID_ARG); +} + TEST_F(FakeVehicleHardwareTest, testSetHvacTemperatureValueSuggestion) { float CELSIUS = static_cast(toInt(VehicleUnit::CELSIUS)); float FAHRENHEIT = static_cast(toInt(VehicleUnit::FAHRENHEIT)); diff --git a/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h b/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h index bbd88dab484828a46bfa90e9bf3e6e2a30dddd50..30f14e29063bef4ac1fc815c2ad67e7edf51853e 100644 --- a/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h +++ b/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h @@ -19,6 +19,7 @@ #include #include +#include #include #include #include @@ -50,6 +51,7 @@ #include #include #include +#include #include #include #include @@ -64,6 +66,7 @@ #include #include #include +#include #include #include #include diff --git a/automotive/vehicle/aidl/impl/utils/common/include/VehicleObjectPool.h b/automotive/vehicle/aidl/impl/utils/common/include/VehicleObjectPool.h index 6e812d1d40db8ed1f6c776907a59d884309fcf09..501ce40b385e1c4d3b16081cc754a57b00e294aa 100644 --- a/automotive/vehicle/aidl/impl/utils/common/include/VehicleObjectPool.h +++ b/automotive/vehicle/aidl/impl/utils/common/include/VehicleObjectPool.h @@ -235,7 +235,7 @@ class VehiclePropValuePool { bool isDisposable(aidl::android::hardware::automotive::vehicle::VehiclePropertyType type, size_t vectorSize) const { - return vectorSize > mMaxRecyclableVectorSize || isComplexType(type); + return vectorSize == 0 || vectorSize > mMaxRecyclableVectorSize || isComplexType(type); } RecyclableType obtainDisposable( diff --git a/automotive/vehicle/aidl/impl/utils/common/include/VehicleUtils.h b/automotive/vehicle/aidl/impl/utils/common/include/VehicleUtils.h index 546421e109e3f300cb37aa8310d548462090f2ce..aca725df5611a6864efae85d259ad5ac0ff8557b 100644 --- a/automotive/vehicle/aidl/impl/utils/common/include/VehicleUtils.h +++ b/automotive/vehicle/aidl/impl/utils/common/include/VehicleUtils.h @@ -124,7 +124,6 @@ createVehiclePropValueVec(aidl::android::hardware::automotive::vehicle::VehicleP break; // Valid, but nothing to do. default: ALOGE("createVehiclePropValue: unknown type: %d", toInt(type)); - val.reset(nullptr); } return val; } @@ -334,6 +333,23 @@ inline std::string propIdToString(int32_t propId) { static_cast(propId)); } +template +void roundToNearestResolution(std::vector& arrayToSanitize, float resolution) { + if (resolution == 0) { + return; + } + for (size_t i = 0; i < arrayToSanitize.size(); i++) { + arrayToSanitize[i] = (T)((std::round(arrayToSanitize[i] / resolution)) * resolution); + } +} + +inline void sanitizeByResolution(aidl::android::hardware::automotive::vehicle::RawPropValues* value, + float resolution) { + roundToNearestResolution(value->int32Values, resolution); + roundToNearestResolution(value->floatValues, resolution); + roundToNearestResolution(value->int64Values, resolution); +} + } // namespace vehicle } // namespace automotive } // namespace hardware diff --git a/automotive/vehicle/aidl/impl/utils/common/src/VehicleObjectPool.cpp b/automotive/vehicle/aidl/impl/utils/common/src/VehicleObjectPool.cpp index 2480a7362e940a3704536e60beb3ebca08ca1b5e..7e0276739eeb2d6915347b29f98022558d30fe14 100644 --- a/automotive/vehicle/aidl/impl/utils/common/src/VehicleObjectPool.cpp +++ b/automotive/vehicle/aidl/impl/utils/common/src/VehicleObjectPool.cpp @@ -55,13 +55,6 @@ VehiclePropValuePool::RecyclableType VehiclePropValuePool::obtain(const VehicleP int propId = src.prop; VehiclePropertyType type = getPropType(propId); size_t vectorSize = getVehicleRawValueVectorSize(src.value, type); - if (vectorSize == 0 && !isComplexType(type)) { - ALOGW("empty vehicle prop value, contains no content"); - ALOGW("empty vehicle prop value, contains no content, prop: %d", propId); - // Return any empty VehiclePropValue. - return RecyclableType{new VehiclePropValue{}, mDisposableDeleter}; - } - auto dest = obtain(type, vectorSize); dest->prop = propId; diff --git a/automotive/vehicle/aidl/impl/utils/common/test/VehicleObjectPoolTest.cpp b/automotive/vehicle/aidl/impl/utils/common/test/VehicleObjectPoolTest.cpp index a62532c911746330ddb28585e18258cbe7cb6d73..6226e8943c008a8d336abf0862cce5efd3943b62 100644 --- a/automotive/vehicle/aidl/impl/utils/common/test/VehicleObjectPoolTest.cpp +++ b/automotive/vehicle/aidl/impl/utils/common/test/VehicleObjectPoolTest.cpp @@ -267,6 +267,20 @@ TEST_F(VehicleObjectPoolTest, testObtainCopyInt32Values) { ASSERT_EQ(*gotValue, prop); } +TEST_F(VehicleObjectPoolTest, testObtainCopyInt32ValuesEmptyArray) { + VehiclePropValue prop{ + // INT32_VEC property. + .prop = toInt(VehicleProperty::INFO_FUEL_TYPE), + .areaId = 2, + .timestamp = 3, + .value = {.int32Values = {}}, + }; + auto gotValue = mValuePool->obtain(prop); + + ASSERT_NE(gotValue, nullptr); + ASSERT_EQ(*gotValue, prop); +} + TEST_F(VehicleObjectPoolTest, testObtainCopyInt64Values) { VehiclePropValue prop{ // INT64_VEC property. diff --git a/automotive/vehicle/aidl/impl/vhal/Android.bp b/automotive/vehicle/aidl/impl/vhal/Android.bp index c29345f6224044bcd2f77f519126b48bdc8cb55a..aa30f807d9c77c9b99384bdfd428bfab802ce389 100644 --- a/automotive/vehicle/aidl/impl/vhal/Android.bp +++ b/automotive/vehicle/aidl/impl/vhal/Android.bp @@ -55,12 +55,17 @@ cc_library { "src/ConnectedClient.cpp", "src/DefaultVehicleHal.cpp", "src/SubscriptionManager.cpp", + // A target to check whether the file + // android.hardware.automotive.vehicle-types-meta.json needs update. + // The output is just an empty cpp file and not actually used. + ":check_generated_enum_metadata_json", ], static_libs: [ "VehicleHalUtils", ], header_libs: [ "IVehicleHardware", + "IVehicleGeneratedHeaders", ], shared_libs: [ "libbinder_ndk", diff --git a/automotive/vehicle/aidl/impl/vhal/include/DefaultVehicleHal.h b/automotive/vehicle/aidl/impl/vhal/include/DefaultVehicleHal.h index f7a71b4587cbca471702b53f498463759fe9eb9f..250b30cac60a8e13907907d4d55ac9216ec5b86b 100644 --- a/automotive/vehicle/aidl/impl/vhal/include/DefaultVehicleHal.h +++ b/automotive/vehicle/aidl/impl/vhal/include/DefaultVehicleHal.h @@ -49,6 +49,9 @@ class DefaultVehicleHal final : public aidl::android::hardware::automotive::vehi explicit DefaultVehicleHal(std::unique_ptr hardware); + // Test-only + DefaultVehicleHal(std::unique_ptr hardware, int32_t testInterfaceVersion); + ~DefaultVehicleHal(); ndk::ScopedAStatus getAllPropConfigs( @@ -153,6 +156,8 @@ class DefaultVehicleHal final : public aidl::android::hardware::automotive::vehi mPropertyChangeEventsBatchingConsumer; // Only set once during initialization. std::chrono::nanoseconds mEventBatchingWindow; + // Only used for testing. + int32_t mTestInterfaceVersion = 0; std::mutex mLock; std::unordered_map> mOnBinderDiedContexts @@ -227,6 +232,8 @@ class DefaultVehicleHal final : public aidl::android::hardware::automotive::vehi std::vector&& batchedEvents); + int32_t getVhalInterfaceVersion(); + // Puts the property change events into a queue so that they can handled in batch. static void batchPropertyChangeEvent( const std::weak_ptr #include +#include +#include #include #include #include @@ -39,6 +41,7 @@ namespace vehicle { // A structure to represent subscription config for one subscription client. struct SubConfig { float sampleRateHz; + float resolution; bool enableVur; }; @@ -47,14 +50,19 @@ class ContSubConfigs final { public: using ClientIdType = const AIBinder*; - void addClient(const ClientIdType& clientId, float sampleRateHz, bool enableVur); + void addClient(const ClientIdType& clientId, const SubConfig& subConfig); void removeClient(const ClientIdType& clientId); float getMaxSampleRateHz() const; + float getMinRequiredResolution() const; bool isVurEnabled() const; - bool isVurEnabledForClient(const ClientIdType& clientId); + bool isVurEnabledForClient(const ClientIdType& clientId) const; + float getResolutionForClient(const ClientIdType& clientId) const; private: float mMaxSampleRateHz = 0.; + // Baseline for resolution is maximum possible float. We want to sanitize to the highest + // requested resolution, which is the smallest float value for resolution. + float mMinRequiredResolution = std::numeric_limits::max(); bool mEnableVur; std::unordered_map mConfigByClient; @@ -117,6 +125,9 @@ class SubscriptionManager final { // Checks whether the sample rate is valid. static bool checkSampleRateHz(float sampleRateHz); + // Checks whether the resolution is valid. + static bool checkResolution(float resolution); + private: // Friend class for testing. friend class DefaultVehicleHalTest; @@ -153,8 +164,8 @@ class SubscriptionManager final { VhalResult addContinuousSubscriberLocked(const ClientIdType& clientId, const PropIdAreaId& propIdAreaId, - float sampleRateHz, bool enableVur) - REQUIRES(mLock); + float sampleRateHz, float resolution, + bool enableVur) REQUIRES(mLock); VhalResult addOnChangeSubscriberLocked(const PropIdAreaId& propIdAreaId) REQUIRES(mLock); // Removes the subscription client for the continuous [propId, areaId]. VhalResult removeContinuousSubscriberLocked(const ClientIdType& clientId, diff --git a/automotive/vehicle/aidl/impl/vhal/src/DefaultVehicleHal.cpp b/automotive/vehicle/aidl/impl/vhal/src/DefaultVehicleHal.cpp index 76d2f316ca0760c74ec34d66acdf532e0ae73a81..a29861f4756439461e483e19f115d0395270c374 100644 --- a/automotive/vehicle/aidl/impl/vhal/src/DefaultVehicleHal.cpp +++ b/automotive/vehicle/aidl/impl/vhal/src/DefaultVehicleHal.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -61,6 +62,7 @@ using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyAccess; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyChangeMode; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyStatus; using ::aidl::android::hardware::automotive::vehicle::VehiclePropValue; +using ::aidl::android::hardware::automotive::vehicle::VersionForVehicleProperty; using ::android::automotive::car_binder_lib::LargeParcelableBase; using ::android::base::Error; using ::android::base::expected; @@ -94,8 +96,13 @@ float getDefaultSampleRateHz(float sampleRateHz, float minSampleRateHz, float ma } // namespace DefaultVehicleHal::DefaultVehicleHal(std::unique_ptr vehicleHardware) + : DefaultVehicleHal(std::move(vehicleHardware), /* testInterfaceVersion= */ 0){}; + +DefaultVehicleHal::DefaultVehicleHal(std::unique_ptr vehicleHardware, + int32_t testInterfaceVersion) : mVehicleHardware(std::move(vehicleHardware)), - mPendingRequestPool(std::make_shared(TIMEOUT_IN_NANO)) { + mPendingRequestPool(std::make_shared(TIMEOUT_IN_NANO)), + mTestInterfaceVersion(testInterfaceVersion) { if (!getAllPropConfigsFromHardware()) { return; } @@ -312,13 +319,46 @@ void DefaultVehicleHal::setTimeout(int64_t timeoutInNano) { mPendingRequestPool = std::make_unique(timeoutInNano); } +int32_t DefaultVehicleHal::getVhalInterfaceVersion() { + if (mTestInterfaceVersion != 0) { + return mTestInterfaceVersion; + } + int32_t myVersion = 0; + getInterfaceVersion(&myVersion); + return myVersion; +} + bool DefaultVehicleHal::getAllPropConfigsFromHardware() { auto configs = mVehicleHardware->getAllPropertyConfigs(); + std::vector filteredConfigs; + int32_t myVersion = getVhalInterfaceVersion(); for (auto& config : configs) { + if (!isSystemProp(config.prop)) { + filteredConfigs.push_back(std::move(config)); + continue; + } + VehicleProperty property = static_cast(config.prop); + std::string propertyName = aidl::android::hardware::automotive::vehicle::toString(property); + auto it = VersionForVehicleProperty.find(property); + if (it == VersionForVehicleProperty.end()) { + ALOGE("The property: %s is not a supported system property, ignore", + propertyName.c_str()); + continue; + } + int requiredVersion = it->second; + if (myVersion < requiredVersion) { + ALOGE("The property: %s is not supported for current client VHAL version, " + "require %d, current version: %d, ignore", + propertyName.c_str(), requiredVersion, myVersion); + continue; + } + filteredConfigs.push_back(std::move(config)); + } + for (auto& config : filteredConfigs) { mConfigsByPropId[config.prop] = config; } VehiclePropConfigs vehiclePropConfigs; - vehiclePropConfigs.payloads = std::move(configs); + vehiclePropConfigs.payloads = std::move(filteredConfigs); auto result = LargeParcelableBase::parcelableToStableLargeParcelable(vehiclePropConfigs); if (!result.ok()) { ALOGE("failed to convert configs to shared memory file, error: %s, code: %d", @@ -413,9 +453,9 @@ ScopedAStatus DefaultVehicleHal::getValues(const CallbackType& callback, .status = getErrorCode(result), .prop = {}, }); - } else { - hardwareRequests.push_back(request); + continue; } + hardwareRequests.push_back(request); } // The set of request Ids that we would send to hardware. @@ -682,6 +722,10 @@ VhalResult DefaultVehicleHal::checkSubscribeOptions( return StatusError(StatusCode::INVALID_ARG) << "invalid sample rate: " << sampleRateHz << " HZ"; } + if (!SubscriptionManager::checkResolution(option.resolution)) { + return StatusError(StatusCode::INVALID_ARG) + << "invalid resolution: " << option.resolution; + } } } return {}; @@ -816,6 +860,7 @@ VhalResult DefaultVehicleHal::checkPermissionHelper( if (!result.ok()) { return StatusError(StatusCode::INVALID_ARG) << getErrorMsg(result); } + const VehiclePropConfig* config = result.value(); const VehicleAreaConfig* areaConfig = getAreaConfig(value, *config); @@ -900,6 +945,7 @@ binder_status_t DefaultVehicleHal::dump(int fd, const char** args, uint32_t numA dprintf(fd, "Vehicle HAL State: \n"); { std::scoped_lock lockGuard(mLock); + dprintf(fd, "Interface version: %" PRId32 "\n", getVhalInterfaceVersion()); dprintf(fd, "Containing %zu property configs\n", mConfigsByPropId.size()); dprintf(fd, "Currently have %zu getValues clients\n", mGetValuesClients.size()); dprintf(fd, "Currently have %zu setValues clients\n", mSetValuesClients.size()); diff --git a/automotive/vehicle/aidl/impl/vhal/src/SubscriptionManager.cpp b/automotive/vehicle/aidl/impl/vhal/src/SubscriptionManager.cpp index 29d81a75e7ed14ad6aba118724c2e40de5488b15..f1106eea5454528843b925090b3d661dcdde1113 100644 --- a/automotive/vehicle/aidl/impl/vhal/src/SubscriptionManager.cpp +++ b/automotive/vehicle/aidl/impl/vhal/src/SubscriptionManager.cpp @@ -43,11 +43,12 @@ using ::ndk::ScopedAStatus; constexpr float ONE_SECOND_IN_NANOS = 1'000'000'000.; SubscribeOptions newSubscribeOptions(int32_t propId, int32_t areaId, float sampleRateHz, - bool enableVur) { + float resolution, bool enableVur) { SubscribeOptions subscribedOptions; subscribedOptions.propId = propId; subscribedOptions.areaIds = {areaId}; subscribedOptions.sampleRate = sampleRateHz; + subscribedOptions.resolution = resolution; subscribedOptions.enableVariableUpdateRate = enableVur; return subscribedOptions; @@ -81,8 +82,18 @@ Result SubscriptionManager::getIntervalNanos(float sampleRateHz) { return intervalNanos; } +bool SubscriptionManager::checkResolution(float resolution) { + if (resolution == 0) { + return true; + } + + float log = std::log10(resolution); + return log == (int)log; +} + void ContSubConfigs::refreshCombinedConfig() { float maxSampleRateHz = 0.; + float minRequiredResolution = std::numeric_limits::max(); bool enableVur = true; // This is not called frequently so a brute-focre is okay. More efficient way exists but this // is simpler. @@ -90,6 +101,9 @@ void ContSubConfigs::refreshCombinedConfig() { if (subConfig.sampleRateHz > maxSampleRateHz) { maxSampleRateHz = subConfig.sampleRateHz; } + if (subConfig.resolution < minRequiredResolution) { + minRequiredResolution = subConfig.resolution; + } if (!subConfig.enableVur) { // If one client does not enable variable update rate, we cannot enable variable update // rate in IVehicleHardware. @@ -97,14 +111,12 @@ void ContSubConfigs::refreshCombinedConfig() { } } mMaxSampleRateHz = maxSampleRateHz; + mMinRequiredResolution = minRequiredResolution; mEnableVur = enableVur; } -void ContSubConfigs::addClient(const ClientIdType& clientId, float sampleRateHz, bool enableVur) { - mConfigByClient[clientId] = { - .sampleRateHz = sampleRateHz, - .enableVur = enableVur, - }; +void ContSubConfigs::addClient(const ClientIdType& clientId, const SubConfig& subConfig) { + mConfigByClient[clientId] = subConfig; refreshCombinedConfig(); } @@ -117,12 +129,26 @@ float ContSubConfigs::getMaxSampleRateHz() const { return mMaxSampleRateHz; } +float ContSubConfigs::getMinRequiredResolution() const { + return mMinRequiredResolution; +} + bool ContSubConfigs::isVurEnabled() const { return mEnableVur; } -bool ContSubConfigs::isVurEnabledForClient(const ClientIdType& clientId) { - return mConfigByClient[clientId].enableVur; +bool ContSubConfigs::isVurEnabledForClient(const ClientIdType& clientId) const { + if (mConfigByClient.find(clientId) == mConfigByClient.end()) { + return false; + } + return mConfigByClient.at(clientId).enableVur; +} + +float ContSubConfigs::getResolutionForClient(const ClientIdType& clientId) const { + if (mConfigByClient.find(clientId) == mConfigByClient.end()) { + return 0.0f; + } + return mConfigByClient.at(clientId).resolution; } VhalResult SubscriptionManager::addOnChangeSubscriberLocked( @@ -135,7 +161,8 @@ VhalResult SubscriptionManager::addOnChangeSubscriberLocked( int32_t propId = propIdAreaId.propId; int32_t areaId = propIdAreaId.areaId; if (auto status = mVehicleHardware->subscribe( - newSubscribeOptions(propId, areaId, /*updateRateHz=*/0, /*enableVur*/ false)); + newSubscribeOptions(propId, areaId, /*updateRateHz=*/0, /*resolution*/ 0.0f, + /*enableVur*/ false)); status != StatusCode::OK) { return StatusError(status) << StringPrintf("failed subscribe for prop: %s, areaId: %" PRId32, @@ -146,10 +173,15 @@ VhalResult SubscriptionManager::addOnChangeSubscriberLocked( VhalResult SubscriptionManager::addContinuousSubscriberLocked( const ClientIdType& clientId, const PropIdAreaId& propIdAreaId, float sampleRateHz, - bool enableVur) { + float resolution, bool enableVur) { // Make a copy so that we don't modify 'mContSubConfigsByPropIdArea' on failure cases. ContSubConfigs newConfig = mContSubConfigsByPropIdArea[propIdAreaId]; - newConfig.addClient(clientId, sampleRateHz, enableVur); + SubConfig subConfig = { + .sampleRateHz = sampleRateHz, + .resolution = resolution, + .enableVur = enableVur, + }; + newConfig.addClient(clientId, subConfig); return updateContSubConfigsLocked(propIdAreaId, newConfig); } @@ -183,7 +215,10 @@ VhalResult SubscriptionManager::updateContSubConfigsLocked(const PropIdAre const auto& oldConfig = mContSubConfigsByPropIdArea[propIdAreaId]; float newRateHz = newConfig.getMaxSampleRateHz(); float oldRateHz = oldConfig.getMaxSampleRateHz(); - if (newRateHz == oldRateHz && newConfig.isVurEnabled() == oldConfig.isVurEnabled()) { + float newResolution = newConfig.getMinRequiredResolution(); + float oldResolution = oldConfig.getMinRequiredResolution(); + if (newRateHz == oldRateHz && newResolution == oldResolution && + newConfig.isVurEnabled() == oldConfig.isVurEnabled()) { mContSubConfigsByPropIdArea[propIdAreaId] = newConfig; return {}; } @@ -199,8 +234,8 @@ VhalResult SubscriptionManager::updateContSubConfigsLocked(const PropIdAre } } if (newRateHz != 0) { - if (auto status = mVehicleHardware->subscribe( - newSubscribeOptions(propId, areaId, newRateHz, newConfig.isVurEnabled())); + if (auto status = mVehicleHardware->subscribe(newSubscribeOptions( + propId, areaId, newRateHz, newResolution, newConfig.isVurEnabled())); status != StatusCode::OK) { return StatusError(status) << StringPrintf( "failed subscribe for prop: %s, areaId" @@ -231,6 +266,11 @@ VhalResult SubscriptionManager::subscribe(const std::shared_ptr SubscriptionManager::subscribe(const std::shared_ptr result; if (isContinuousProperty) { result = addContinuousSubscriberLocked(clientId, propIdAreaId, option.sampleRate, + option.resolution, option.enableVariableUpdateRate); } else { result = addOnChangeSubscriberLocked(propIdAreaId); @@ -393,15 +434,19 @@ SubscriptionManager::getSubscribedClients(std::vector&& update for (const auto& [client, callback] : mClientsByPropIdAreaId[propIdAreaId]) { auto& subConfigs = mContSubConfigsByPropIdArea[propIdAreaId]; + // Clients must be sent different VehiclePropValues with different levels of granularity + // as requested by the client using resolution. + VehiclePropValue newValue = value; + sanitizeByResolution(&(newValue.value), subConfigs.getResolutionForClient(client)); // If client wants VUR (and VUR is supported as checked in DefaultVehicleHal), it is // possible that VUR is not enabled in IVehicleHardware because another client does not // enable VUR. We will implement VUR filtering here for the client that enables it. if (subConfigs.isVurEnabledForClient(client) && !subConfigs.isVurEnabled()) { - if (isValueUpdatedLocked(callback, value)) { - clients[callback].push_back(value); + if (isValueUpdatedLocked(callback, newValue)) { + clients[callback].push_back(newValue); } } else { - clients[callback].push_back(value); + clients[callback].push_back(newValue); } } } diff --git a/automotive/vehicle/aidl/impl/vhal/test/DefaultVehicleHalTest.cpp b/automotive/vehicle/aidl/impl/vhal/test/DefaultVehicleHalTest.cpp index a63cb846eb71d53985cd332937cac6c1399be498..11a8fc7ac1132fd74d2dc44109fc0d8c7b23ad8b 100644 --- a/automotive/vehicle/aidl/impl/vhal/test/DefaultVehicleHalTest.cpp +++ b/automotive/vehicle/aidl/impl/vhal/test/DefaultVehicleHalTest.cpp @@ -79,36 +79,37 @@ using ::ndk::ScopedFileDescriptor; using ::ndk::SpAIBinder; using ::testing::ContainsRegex; +using ::testing::ElementsAre; using ::testing::Eq; using ::testing::UnorderedElementsAre; using ::testing::UnorderedElementsAreArray; using ::testing::WhenSortedBy; constexpr int32_t INVALID_PROP_ID = 0; -// VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:INT32 -constexpr int32_t INT32_WINDOW_PROP = 10001 + 0x10000000 + 0x03000000 + 0x00400000; -// VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 -constexpr int32_t GLOBAL_ON_CHANGE_PROP = 10002 + 0x10000000 + 0x01000000 + 0x00400000; -// VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 -constexpr int32_t GLOBAL_CONTINUOUS_PROP = 10003 + 0x10000000 + 0x01000000 + 0x00400000; -// VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:INT32 -constexpr int32_t AREA_ON_CHANGE_PROP = 10004 + 0x10000000 + 0x03000000 + 0x00400000; -// VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:INT32 -constexpr int32_t AREA_CONTINUOUS_PROP = 10005 + 0x10000000 + 0x03000000 + 0x00400000; -// VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 -constexpr int32_t READ_ONLY_PROP = 10006 + 0x10000000 + 0x01000000 + 0x00400000; -// VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 -constexpr int32_t WRITE_ONLY_PROP = 10007 + 0x10000000 + 0x01000000 + 0x00400000; -// VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 -constexpr int32_t GLOBAL_CONTINUOUS_PROP_NO_VUR = 10008 + 0x10000000 + 0x01000000 + 0x00400000; -// VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 -constexpr int32_t GLOBAL_NONE_ACCESS_PROP = 10009 + 0x10000000 + 0x01000000 + 0x00400000; -// VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:INT32 -constexpr int32_t AREA_NONE_ACCESS_PROP = 10010 + 0x10000000 + 0x03000000 + 0x00400000; +// VehiclePropertyGroup:VENDOR,VehicleArea:WINDOW,VehiclePropertyType:INT32 +constexpr int32_t INT32_WINDOW_PROP = 10001 + 0x20000000 + 0x03000000 + 0x00400000; +// VehiclePropertyGroup:VENDOR,VehicleArea:GLOBAL,VehiclePropertyType:INT32 +constexpr int32_t GLOBAL_ON_CHANGE_PROP = 10002 + 0x20000000 + 0x01000000 + 0x00400000; +// VehiclePropertyGroup:VENDOR,VehicleArea:GLOBAL,VehiclePropertyType:INT32 +constexpr int32_t GLOBAL_CONTINUOUS_PROP = 10003 + 0x20000000 + 0x01000000 + 0x00400000; +// VehiclePropertyGroup:VENDOR,VehicleArea:WINDOW,VehiclePropertyType:INT32 +constexpr int32_t AREA_ON_CHANGE_PROP = 10004 + 0x20000000 + 0x03000000 + 0x00400000; +// VehiclePropertyGroup:VENDOR,VehicleArea:WINDOW,VehiclePropertyType:INT32 +constexpr int32_t AREA_CONTINUOUS_PROP = 10005 + 0x20000000 + 0x03000000 + 0x00400000; +// VehiclePropertyGroup:VENDOR,VehicleArea:GLOBAL,VehiclePropertyType:INT32 +constexpr int32_t READ_ONLY_PROP = 10006 + 0x20000000 + 0x01000000 + 0x00400000; +// VehiclePropertyGroup:VENDOR,VehicleArea:GLOBAL,VehiclePropertyType:INT32 +constexpr int32_t WRITE_ONLY_PROP = 10007 + 0x20000000 + 0x01000000 + 0x00400000; +// VehiclePropertyGroup:VENDOR,VehicleArea:GLOBAL,VehiclePropertyType:INT32 +constexpr int32_t GLOBAL_CONTINUOUS_PROP_NO_VUR = 10008 + 0x20000000 + 0x01000000 + 0x00400000; +// VehiclePropertyGroup:VENDOR,VehicleArea:GLOBAL,VehiclePropertyType:INT32 +constexpr int32_t GLOBAL_NONE_ACCESS_PROP = 10009 + 0x20000000 + 0x01000000 + 0x00400000; +// VehiclePropertyGroup:VENDOR,VehicleArea:WINDOW,VehiclePropertyType:INT32 +constexpr int32_t AREA_NONE_ACCESS_PROP = 10010 + 0x20000000 + 0x03000000 + 0x00400000; int32_t testInt32VecProp(size_t i) { - // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC - return static_cast(i) + 0x10000000 + 0x01000000 + 0x00410000; + // VehiclePropertyGroup:VENDOR,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC + return static_cast(i) + 0x20000000 + 0x01000000 + 0x00410000; } std::string toString(const std::vector& options) { @@ -232,6 +233,14 @@ std::vector getSubscribeInvalidOptionsTestCases .sampleRate = 0.0, }, }, + { + .name = "invalid_resolution", + .option = + { + .propId = GLOBAL_CONTINUOUS_PROP, + .resolution = 2.0, + }, + }, { .name = "static_property", .option = @@ -556,10 +565,10 @@ class DefaultVehicleHalTest : public testing::Test { TEST_F(DefaultVehicleHalTest, testGetAllPropConfigsSmall) { auto testConfigs = std::vector({ VehiclePropConfig{ - .prop = 1, + .prop = testInt32VecProp(1), }, VehiclePropConfig{ - .prop = 2, + .prop = testInt32VecProp(2), }, }); @@ -580,7 +589,7 @@ TEST_F(DefaultVehicleHalTest, testGetAllPropConfigsLarge) { // 5000 VehiclePropConfig exceeds 4k memory limit, so it would be sent through shared memory. for (size_t i = 0; i < 5000; i++) { testConfigs.push_back(VehiclePropConfig{ - .prop = static_cast(i), + .prop = testInt32VecProp(i), }); } @@ -600,13 +609,42 @@ TEST_F(DefaultVehicleHalTest, testGetAllPropConfigsLarge) { ASSERT_EQ(result.value().getObject()->payloads, testConfigs); } +TEST_F(DefaultVehicleHalTest, testGetAllPropConfigsFilterOutUnsupportedPropIdsForThisVersion) { + auto testConfigs = std::vector({ + // This is supported from V2. + VehiclePropConfig{ + .prop = toInt(VehicleProperty::PERF_VEHICLE_SPEED), + }, + // This is supported from V3 + VehiclePropConfig{ + .prop = toInt(VehicleProperty::ULTRASONICS_SENSOR_POSITION), + }, + }); + + auto hardware = std::make_unique(); + hardware->setPropertyConfigs(testConfigs); + auto vhal = ndk::SharedRefBase::make(std::move(hardware), + /* testInterfaceVersion= */ 2); + std::shared_ptr client = IVehicle::fromBinder(vhal->asBinder()); + + VehiclePropConfigs output; + auto status = client->getAllPropConfigs(&output); + + ASSERT_TRUE(status.isOk()) << "getAllPropConfigs failed: " << status.getMessage(); + ASSERT_THAT(output.payloads, ElementsAre(VehiclePropConfig{ + .prop = toInt(VehicleProperty::PERF_VEHICLE_SPEED), + })); +} + TEST_F(DefaultVehicleHalTest, testGetPropConfigs) { + int32_t propId1 = testInt32VecProp(1); + int32_t propId2 = testInt32VecProp(2); auto testConfigs = std::vector({ VehiclePropConfig{ - .prop = 1, + .prop = propId1, }, VehiclePropConfig{ - .prop = 2, + .prop = propId2, }, }); @@ -616,7 +654,7 @@ TEST_F(DefaultVehicleHalTest, testGetPropConfigs) { std::shared_ptr client = IVehicle::fromBinder(vhal->asBinder()); VehiclePropConfigs output; - auto status = client->getPropConfigs(std::vector({1, 2}), &output); + auto status = client->getPropConfigs(std::vector({propId1, propId2}), &output); ASSERT_TRUE(status.isOk()) << "getPropConfigs failed: " << status.getMessage(); ASSERT_EQ(output.payloads, testConfigs); @@ -625,10 +663,10 @@ TEST_F(DefaultVehicleHalTest, testGetPropConfigs) { TEST_F(DefaultVehicleHalTest, testGetPropConfigsInvalidArg) { auto testConfigs = std::vector({ VehiclePropConfig{ - .prop = 1, + .prop = testInt32VecProp(1), }, VehiclePropConfig{ - .prop = 2, + .prop = testInt32VecProp(2), }, }); @@ -638,7 +676,9 @@ TEST_F(DefaultVehicleHalTest, testGetPropConfigsInvalidArg) { std::shared_ptr client = IVehicle::fromBinder(vhal->asBinder()); VehiclePropConfigs output; - auto status = client->getPropConfigs(std::vector({1, 2, 3}), &output); + auto status = client->getPropConfigs( + std::vector({testInt32VecProp(1), testInt32VecProp(2), testInt32VecProp(3)}), + &output); ASSERT_FALSE(status.isOk()) << "getPropConfigs must fail with invalid prop ID"; ASSERT_EQ(status.getServiceSpecificError(), toInt(StatusCode::INVALID_ARG)); diff --git a/automotive/vehicle/aidl/impl/vhal/test/SubscriptionManagerTest.cpp b/automotive/vehicle/aidl/impl/vhal/test/SubscriptionManagerTest.cpp index aa5f003dec1ad7d3d5a55ac80865134ab294936f..f3772022e8ee5843561ce02448731aa0a88d6e06 100644 --- a/automotive/vehicle/aidl/impl/vhal/test/SubscriptionManagerTest.cpp +++ b/automotive/vehicle/aidl/impl/vhal/test/SubscriptionManagerTest.cpp @@ -520,6 +520,14 @@ TEST_F(SubscriptionManagerTest, testCheckSampleRateHzInvalidZero) { ASSERT_FALSE(SubscriptionManager::checkSampleRateHz(0)); } +TEST_F(SubscriptionManagerTest, testCheckResolutionValid) { + ASSERT_TRUE(SubscriptionManager::checkResolution(1.0)); +} + +TEST_F(SubscriptionManagerTest, testCheckResolutionInvalid) { + ASSERT_FALSE(SubscriptionManager::checkResolution(2.0)); +} + TEST_F(SubscriptionManagerTest, testSubscribe_enableVur) { std::vector options = {{ .propId = 0, @@ -641,6 +649,102 @@ TEST_F(SubscriptionManagerTest, testSubscribe_enableVur_filterUnchangedEvents) { << "Must filter out property events if VUR is enabled"; } +TEST_F(SubscriptionManagerTest, testSubscribe_enableVur_filterUnchangedEvents_withResolution) { + SpAIBinder binder1 = ndk::SharedRefBase::make()->asBinder(); + std::shared_ptr client1 = IVehicleCallback::fromBinder(binder1); + SpAIBinder binder2 = ndk::SharedRefBase::make()->asBinder(); + std::shared_ptr client2 = IVehicleCallback::fromBinder(binder2); + SubscribeOptions client1Option = { + .propId = 0, + .areaIds = {0}, + .sampleRate = 10.0, + .resolution = 0.01, + .enableVariableUpdateRate = false, + }; + auto result = getManager()->subscribe(client1, {client1Option}, true); + ASSERT_TRUE(result.ok()) << "failed to subscribe: " << result.error().message(); + + ASSERT_THAT(getHardware()->getSubscribeOptions(), UnorderedElementsAre(client1Option)); + + getHardware()->clearSubscribeOptions(); + SubscribeOptions client2Option = { + .propId = 0, + .areaIds = {0, 1}, + .sampleRate = 20.0, + .resolution = 0.1, + .enableVariableUpdateRate = true, + }; + + result = getManager()->subscribe(client2, {client2Option}, true); + ASSERT_TRUE(result.ok()) << "failed to subscribe: " << result.error().message(); + + ASSERT_THAT(getHardware()->getSubscribeOptions(), + UnorderedElementsAre( + SubscribeOptions{ + .propId = 0, + .areaIds = {0}, + .sampleRate = 20.0, + .resolution = 0.01, + // This is enabled for client2, but disabled for client1. + .enableVariableUpdateRate = false, + }, + SubscribeOptions{ + .propId = 0, + .areaIds = {1}, + .sampleRate = 20.0, + .resolution = 0.1, + .enableVariableUpdateRate = true, + })); + + std::vector propertyEvents = {{ + .prop = 0, + .areaId = 0, + .value = {.floatValues = {1.0}}, + .timestamp = 1, + }, + { + .prop = 0, + .areaId = 1, + .value = {.floatValues = {1.0}}, + .timestamp = 1, + }}; + auto clients = + getManager()->getSubscribedClients(std::vector(propertyEvents)); + + ASSERT_THAT(clients[client1], UnorderedElementsAre(propertyEvents[0])); + ASSERT_THAT(clients[client2], UnorderedElementsAre(propertyEvents[0], propertyEvents[1])); + + clients = getManager()->getSubscribedClients({{ + .prop = 0, + .areaId = 0, + .value = {.floatValues = {1.01}}, + .timestamp = 2, + }}); + + ASSERT_FALSE(clients.find(client1) == clients.end()) + << "Must not filter out property events if VUR is not enabled"; + ASSERT_TRUE(clients.find(client2) == clients.end()) + << "Must filter out property events if VUR is enabled and change is too small"; + ASSERT_TRUE(abs(clients[client1][0].value.floatValues[0] - 1.01) < 0.0000001) + << "Expected property value == 1.01, instead got " + << clients[client1][0].value.floatValues[0]; + + clients = getManager()->getSubscribedClients({{ + .prop = 0, + .areaId = 1, + .value = {.floatValues = {1.06}}, + .timestamp = 3, + }}); + + ASSERT_TRUE(clients.find(client1) == clients.end()) + << "Must not get property events for an areaId that the client hasn't subscribed to"; + ASSERT_FALSE(clients.find(client2) == clients.end()) + << "Must get property events significant changes"; + ASSERT_TRUE(abs(clients[client2][0].value.floatValues[0] - 1.1) < 0.0000001) + << "Expected property value == 1.1, instead got " + << clients[client2][0].value.floatValues[0]; +} + TEST_F(SubscriptionManagerTest, testSubscribe_enableVur_mustNotFilterStatusChange) { SpAIBinder binder1 = ndk::SharedRefBase::make()->asBinder(); std::shared_ptr client1 = IVehicleCallback::fromBinder(binder1); diff --git a/automotive/vehicle/aidl/impl/vhal/vhal-default-service.xml b/automotive/vehicle/aidl/impl/vhal/vhal-default-service.xml index 9834cdbc67d18b2463383978691a8df332d22cac..b0c6ae7779d6409fd7f42e8c630ffeaa2e4d0412 100644 --- a/automotive/vehicle/aidl/impl/vhal/vhal-default-service.xml +++ b/automotive/vehicle/aidl/impl/vhal/vhal-default-service.xml @@ -1,7 +1,7 @@ android.hardware.automotive.vehicle - 2 + 3 IVehicle/default diff --git a/automotive/vehicle/aidl/rust_impl/README.md b/automotive/vehicle/aidl/rust_impl/README.md new file mode 100644 index 0000000000000000000000000000000000000000..33f996b3e0c6739e2a4ff851d9173b76f2e682a0 --- /dev/null +++ b/automotive/vehicle/aidl/rust_impl/README.md @@ -0,0 +1,12 @@ +# Rust Skeleton VHAL implementation. + +WARNING: This is not a reference VHAL implementation and does not contain +any actual implementation. + +This folder contains a skeleton VHAL implementation in Rust to demonstrate +how vendor may implement a Rust VHAL. To run this VHAL, include +`android.hardware.automotive.vehicle-V3-rust-service` in your image. + +This implementation returns `StatusCode::UNKNOWN_ERROR` for all operations +and does not pass VTS/CTS. Vendor must replace the logic in +`default_vehicle_hal.rs` with the actual implementation. diff --git a/automotive/vehicle/aidl/rust_impl/vhal/Android.bp b/automotive/vehicle/aidl/rust_impl/vhal/Android.bp new file mode 100644 index 0000000000000000000000000000000000000000..46f37d81f2c8ea75048713bcdf0f7498c73c5fa0 --- /dev/null +++ b/automotive/vehicle/aidl/rust_impl/vhal/Android.bp @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +rust_binary { + name: "android.hardware.automotive.vehicle-V3-rust-service", + relative_install_path: "hw", + vendor: true, + srcs: ["src/*.rs"], + crate_root: "src/main.rs", + defaults: ["VehicleHalInterfaceRustDefaults"], + vintf_fragments: ["vhal-rust-service.xml"], + init_rc: ["vhal-rust-service.rc"], + rustlibs: [ + "libbinder_rs", + ], +} diff --git a/automotive/vehicle/aidl/rust_impl/vhal/src/default_vehicle_hal.rs b/automotive/vehicle/aidl/rust_impl/vhal/src/default_vehicle_hal.rs new file mode 100644 index 0000000000000000000000000000000000000000..1f5dc950ab37e5f279e06f6c736feaf0ca532136 --- /dev/null +++ b/automotive/vehicle/aidl/rust_impl/vhal/src/default_vehicle_hal.rs @@ -0,0 +1,55 @@ +use android_hardware_automotive_vehicle::aidl::android::hardware::automotive::vehicle::{ + IVehicle::IVehicle, + IVehicleCallback::IVehicleCallback, + VehiclePropConfigs::VehiclePropConfigs, + GetValueRequests::GetValueRequests, + SetValueRequests::SetValueRequests, + SubscribeOptions::SubscribeOptions, +}; +use binder::{Interface, Result as BinderResult, StatusCode, Strong}; + +/// This struct is defined to implement IVehicle AIDL interface. +pub struct DefaultVehicleHal; + +impl Interface for DefaultVehicleHal {} + +impl IVehicle for DefaultVehicleHal { + fn getAllPropConfigs(&self) -> BinderResult { + Err(StatusCode::UNKNOWN_ERROR.into()) + } + + fn getPropConfigs(&self, _props: &[i32]) -> BinderResult { + Err(StatusCode::UNKNOWN_ERROR.into()) + } + + fn getValues( + &self, _callback: &Strong, _requests: &GetValueRequests + ) -> BinderResult<()> { + Err(StatusCode::UNKNOWN_ERROR.into()) + } + + fn setValues( + &self, _callback: &Strong, _requests: &SetValueRequests + ) -> BinderResult<()> { + Err(StatusCode::UNKNOWN_ERROR.into()) + } + + fn subscribe( + &self, _callback: &Strong, _options: &[SubscribeOptions], + _max_shared_memory_file_count: i32 + ) -> BinderResult<()> { + Err(StatusCode::UNKNOWN_ERROR.into()) + } + + fn unsubscribe( + &self, _callback: &Strong, _prop_ids: &[i32] + ) -> BinderResult<()> { + Err(StatusCode::UNKNOWN_ERROR.into()) + } + + fn returnSharedMemory( + &self, _callback: &Strong, _shared_memory_id: i64 + ) -> BinderResult<()> { + Err(StatusCode::UNKNOWN_ERROR.into()) + } +} diff --git a/automotive/vehicle/aidl/rust_impl/vhal/src/main.rs b/automotive/vehicle/aidl/rust_impl/vhal/src/main.rs new file mode 100644 index 0000000000000000000000000000000000000000..59b248d27c8fec2d209dece9761389da8858e646 --- /dev/null +++ b/automotive/vehicle/aidl/rust_impl/vhal/src/main.rs @@ -0,0 +1,18 @@ +mod default_vehicle_hal; + +use android_hardware_automotive_vehicle::aidl::android::hardware::automotive::vehicle::IVehicle::BnVehicle; +use crate::default_vehicle_hal::DefaultVehicleHal; + +fn main() { + binder::ProcessState::start_thread_pool(); + let my_service = DefaultVehicleHal; + let service_name = "android.hardware.automotive.vehicle.IVehicle/default"; + let my_service_binder = BnVehicle::new_binder( + my_service, + binder::BinderFeatures::default(), + ); + binder::add_service(service_name, my_service_binder.as_binder()) + .expect(format!("Failed to register {}?", service_name).as_str()); + // Does not return. + binder::ProcessState::join_thread_pool() +} diff --git a/automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.rc b/automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.rc new file mode 100644 index 0000000000000000000000000000000000000000..dff9894d444974fb0cfbaf9e2feab5ea45449398 --- /dev/null +++ b/automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.rc @@ -0,0 +1,4 @@ +service vendor.vehicle-hal-default /vendor/bin/hw/android.hardware.automotive.vehicle-V3-rust-service + class early_hal + user vehicle_network + group system inet diff --git a/automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.xml b/automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.xml new file mode 100644 index 0000000000000000000000000000000000000000..b0c6ae7779d6409fd7f42e8c630ffeaa2e4d0412 --- /dev/null +++ b/automotive/vehicle/aidl/rust_impl/vhal/vhal-rust-service.xml @@ -0,0 +1,7 @@ + + + android.hardware.automotive.vehicle + 3 + IVehicle/default + + diff --git a/automotive/vehicle/aidl_property/Android.bp b/automotive/vehicle/aidl_property/Android.bp index db9638254945030b7690519b2052a5a5ffa1093c..bce22846afa9101190a99ab90a00e5119ff76a88 100644 --- a/automotive/vehicle/aidl_property/Android.bp +++ b/automotive/vehicle/aidl_property/Android.bp @@ -28,7 +28,7 @@ aidl_interface { // This HAL was originally part of android.hardware.automotive.vehicle "android/hardware/automotive/vehicle/*.aidl", ], - frozen: false, + frozen: true, stability: "vintf", backend: { cpp: { @@ -42,6 +42,9 @@ aidl_interface { "com.android.car.framework", ], }, + rust: { + enabled: true, + }, }, versions_with_info: [ { @@ -52,6 +55,17 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, + ], +} +filegroup { + name: "android.hardware.automotive.vehicle.property-files", + srcs: [ + "android/hardware/automotive/vehicle/*.aidl", + ], } diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/.hash b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..fa66801a0a15390249cbd53a46a6ca92b3c571b2 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/.hash @@ -0,0 +1 @@ +2190f6d54b998635069a8d87d3d053cc3bc041dc diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/AutomaticEmergencyBrakingState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/AutomaticEmergencyBrakingState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b316df7454d907aba25ee154bd36c8b2b9b5dddf --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/AutomaticEmergencyBrakingState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum AutomaticEmergencyBrakingState { + OTHER = 0, + ENABLED = 1, + ACTIVATED = 2, + USER_OVERRIDE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/BlindSpotWarningState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/BlindSpotWarningState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..535b0b1e2f41ba233e785d159cb21ec976c41735 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/BlindSpotWarningState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum BlindSpotWarningState { + OTHER = 0, + NO_WARNING = 1, + WARNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CameraServiceState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CameraServiceState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..84f5ec70d5542b0264f11789d0b2d22eb94ea39e --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CameraServiceState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CameraServiceState { + UNAVAILABLE = 0, + INACTIVE = 1, + REQUESTED = 2, + ACTIVE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserRequest.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..22c690c00f9db5049fa0df236b8c98fcf9961353 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserRequest.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable CreateUserRequest { + int requestId; + android.hardware.automotive.vehicle.UserInfo newUserInfo; + @utf8InCpp String newUserName; + android.hardware.automotive.vehicle.UsersInfo usersInfo; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserResponse.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserResponse.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7d0196b4e51bda6ec4f474b5ccb2caa263b36cb0 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserResponse.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable CreateUserResponse { + int requestId; + android.hardware.automotive.vehicle.CreateUserStatus status = android.hardware.automotive.vehicle.CreateUserStatus.SUCCESS; + @utf8InCpp String errorMessage; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserStatus.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4c3b751656d988b220ef7d1d69b91e971738895f --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CreateUserStatus.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CreateUserStatus { + SUCCESS = 1, + FAILURE = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CrossTrafficMonitoringWarningState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CrossTrafficMonitoringWarningState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..90e2d8dfb8c64adfc7ba16a685be7d2ba39df636 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CrossTrafficMonitoringWarningState.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CrossTrafficMonitoringWarningState { + OTHER = 0, + NO_WARNING = 1, + WARNING_FRONT_LEFT = 2, + WARNING_FRONT_RIGHT = 3, + WARNING_FRONT_BOTH = 4, + WARNING_REAR_LEFT = 5, + WARNING_REAR_RIGHT = 6, + WARNING_REAR_BOTH = 7, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlCommand.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlCommand.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d6a104d25bc6579f8482f29cd4dfd81f37b3cc6b --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlCommand.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CruiseControlCommand { + ACTIVATE = 1, + SUSPEND = 2, + INCREASE_TARGET_SPEED = 3, + DECREASE_TARGET_SPEED = 4, + INCREASE_TARGET_TIME_GAP = 5, + DECREASE_TARGET_TIME_GAP = 6, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ddaffa30c23c4fa1c5bd036a3a9502d81962d6ff --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CruiseControlState { + OTHER = 0, + ENABLED = 1, + ACTIVATED = 2, + USER_OVERRIDE = 3, + SUSPENDED = 4, + FORCED_DEACTIVATION_WARNING = 5, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..aab9dfe9662524b0abe6042dababee1db04d07b4 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CruiseControlType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CruiseControlType { + OTHER = 0, + STANDARD = 1, + ADAPTIVE = 2, + PREDICTIVE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CustomInputType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CustomInputType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4decb6985da0df64e4a35f09ec4a3c89e609419b --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/CustomInputType.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CustomInputType { + CUSTOM_EVENT_F1 = 1001, + CUSTOM_EVENT_F2 = 1002, + CUSTOM_EVENT_F3 = 1003, + CUSTOM_EVENT_F4 = 1004, + CUSTOM_EVENT_F5 = 1005, + CUSTOM_EVENT_F6 = 1006, + CUSTOM_EVENT_F7 = 1007, + CUSTOM_EVENT_F8 = 1008, + CUSTOM_EVENT_F9 = 1009, + CUSTOM_EVENT_F10 = 1010, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticFloatSensorIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticFloatSensorIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9704704eab9724340c48ccca628c226f33b9e487 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticFloatSensorIndex.aidl @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum DiagnosticFloatSensorIndex { + CALCULATED_ENGINE_LOAD = 0, + ENGINE_COOLANT_TEMPERATURE = 1, + SHORT_TERM_FUEL_TRIM_BANK1 = 2, + LONG_TERM_FUEL_TRIM_BANK1 = 3, + SHORT_TERM_FUEL_TRIM_BANK2 = 4, + LONG_TERM_FUEL_TRIM_BANK2 = 5, + FUEL_PRESSURE = 6, + INTAKE_MANIFOLD_ABSOLUTE_PRESSURE = 7, + ENGINE_RPM = 8, + VEHICLE_SPEED = 9, + TIMING_ADVANCE = 10, + MAF_AIR_FLOW_RATE = 11, + THROTTLE_POSITION = 12, + OXYGEN_SENSOR1_VOLTAGE = 13, + OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM = 14, + OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO = 15, + OXYGEN_SENSOR2_VOLTAGE = 16, + OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM = 17, + OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO = 18, + OXYGEN_SENSOR3_VOLTAGE = 19, + OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM = 20, + OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO = 21, + OXYGEN_SENSOR4_VOLTAGE = 22, + OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM = 23, + OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO = 24, + OXYGEN_SENSOR5_VOLTAGE = 25, + OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM = 26, + OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO = 27, + OXYGEN_SENSOR6_VOLTAGE = 28, + OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM = 29, + OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO = 30, + OXYGEN_SENSOR7_VOLTAGE = 31, + OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM = 32, + OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO = 33, + OXYGEN_SENSOR8_VOLTAGE = 34, + OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM = 35, + OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO = 36, + FUEL_RAIL_PRESSURE = 37, + FUEL_RAIL_GAUGE_PRESSURE = 38, + COMMANDED_EXHAUST_GAS_RECIRCULATION = 39, + EXHAUST_GAS_RECIRCULATION_ERROR = 40, + COMMANDED_EVAPORATIVE_PURGE = 41, + FUEL_TANK_LEVEL_INPUT = 42, + EVAPORATION_SYSTEM_VAPOR_PRESSURE = 43, + CATALYST_TEMPERATURE_BANK1_SENSOR1 = 44, + CATALYST_TEMPERATURE_BANK2_SENSOR1 = 45, + CATALYST_TEMPERATURE_BANK1_SENSOR2 = 46, + CATALYST_TEMPERATURE_BANK2_SENSOR2 = 47, + ABSOLUTE_LOAD_VALUE = 48, + FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO = 49, + RELATIVE_THROTTLE_POSITION = 50, + ABSOLUTE_THROTTLE_POSITION_B = 51, + ABSOLUTE_THROTTLE_POSITION_C = 52, + ACCELERATOR_PEDAL_POSITION_D = 53, + ACCELERATOR_PEDAL_POSITION_E = 54, + ACCELERATOR_PEDAL_POSITION_F = 55, + COMMANDED_THROTTLE_ACTUATOR = 56, + ETHANOL_FUEL_PERCENTAGE = 57, + ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE = 58, + SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1 = 59, + SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2 = 60, + SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3 = 61, + SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4 = 62, + LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1 = 63, + LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2 = 64, + LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3 = 65, + LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4 = 66, + RELATIVE_ACCELERATOR_PEDAL_POSITION = 67, + HYBRID_BATTERY_PACK_REMAINING_LIFE = 68, + FUEL_INJECTION_TIMING = 69, + ENGINE_FUEL_RATE = 70, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticIntegerSensorIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticIntegerSensorIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b3f13d426373ed1a0f94fa2e7c90cd64a21f5c71 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DiagnosticIntegerSensorIndex.aidl @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum DiagnosticIntegerSensorIndex { + FUEL_SYSTEM_STATUS = 0, + MALFUNCTION_INDICATOR_LIGHT_ON = 1, + IGNITION_MONITORS_SUPPORTED = 2, + IGNITION_SPECIFIC_MONITORS = 3, + INTAKE_AIR_TEMPERATURE = 4, + COMMANDED_SECONDARY_AIR_STATUS = 5, + NUM_OXYGEN_SENSORS_PRESENT = 6, + RUNTIME_SINCE_ENGINE_START = 7, + DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON = 8, + WARMUPS_SINCE_CODES_CLEARED = 9, + DISTANCE_TRAVELED_SINCE_CODES_CLEARED = 10, + ABSOLUTE_BAROMETRIC_PRESSURE = 11, + CONTROL_MODULE_VOLTAGE = 12, + AMBIENT_AIR_TEMPERATURE = 13, + TIME_WITH_MALFUNCTION_LIGHT_ON = 14, + TIME_SINCE_TROUBLE_CODES_CLEARED = 15, + MAX_FUEL_AIR_EQUIVALENCE_RATIO = 16, + MAX_OXYGEN_SENSOR_VOLTAGE = 17, + MAX_OXYGEN_SENSOR_CURRENT = 18, + MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE = 19, + MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR = 20, + FUEL_TYPE = 21, + FUEL_RAIL_ABSOLUTE_PRESSURE = 22, + ENGINE_OIL_TEMPERATURE = 23, + DRIVER_DEMAND_PERCENT_TORQUE = 24, + ENGINE_ACTUAL_PERCENT_TORQUE = 25, + ENGINE_REFERENCE_PERCENT_TORQUE = 26, + ENGINE_PERCENT_TORQUE_DATA_IDLE = 27, + ENGINE_PERCENT_TORQUE_DATA_POINT1 = 28, + ENGINE_PERCENT_TORQUE_DATA_POINT2 = 29, + ENGINE_PERCENT_TORQUE_DATA_POINT3 = 30, + ENGINE_PERCENT_TORQUE_DATA_POINT4 = 31, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..54c02d53d1b2ef0c30c0a53c0c64ac689277d4fd --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum DriverDistractionState { + OTHER = 0, + NOT_DISTRACTED = 1, + DISTRACTED = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionWarning.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionWarning.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9236b1c278f225ff51aeea17a8598d79582ae98f --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDistractionWarning.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum DriverDistractionWarning { + OTHER = 0, + NO_WARNING = 1, + WARNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..22a90f36572b599752e252b1f3c077e149bd64a6 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionState.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum DriverDrowsinessAttentionState { + OTHER = 0, + KSS_RATING_1_EXTREMELY_ALERT = 1, + KSS_RATING_2_VERY_ALERT = 2, + KSS_RATING_3_ALERT = 3, + KSS_RATING_4_RATHER_ALERT = 4, + KSS_RATING_5_NEITHER_ALERT_NOR_SLEEPY = 5, + KSS_RATING_6_SOME_SLEEPINESS = 6, + KSS_RATING_7_SLEEPY_NO_EFFORT = 7, + KSS_RATING_8_SLEEPY_SOME_EFFORT = 8, + KSS_RATING_9_VERY_SLEEPY = 9, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionWarning.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionWarning.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dbf2364d4b934cb9295eb57343c93fb507a604b7 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/DriverDrowsinessAttentionWarning.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum DriverDrowsinessAttentionWarning { + OTHER = 0, + NO_WARNING = 1, + WARNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicStabilityControlState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicStabilityControlState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b061a25ecf59cf61e9081e18ab2ee67b306bf462 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicStabilityControlState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ElectronicStabilityControlState { + OTHER = 0, + ENABLED = 1, + ACTIVATED = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardStatus.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9772aeeba0442d07e5adeba551fb7e9f0e44ae74 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardStatus.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ElectronicTollCollectionCardStatus { + UNKNOWN = 0, + ELECTRONIC_TOLL_COLLECTION_CARD_VALID = 1, + ELECTRONIC_TOLL_COLLECTION_CARD_INVALID = 2, + ELECTRONIC_TOLL_COLLECTION_CARD_NOT_INSERTED = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..22cf2c388b93bff590ddcade170223753561a72b --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ElectronicTollCollectionCardType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ElectronicTollCollectionCardType { + UNKNOWN = 0, + JP_ELECTRONIC_TOLL_COLLECTION_CARD = 1, + JP_ELECTRONIC_TOLL_COLLECTION_CARD_V2 = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EmergencyLaneKeepAssistState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EmergencyLaneKeepAssistState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..078acde1689cc069ec6b04e1de39a203ae77c11a --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EmergencyLaneKeepAssistState.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EmergencyLaneKeepAssistState { + OTHER = 0, + ENABLED = 1, + WARNING_LEFT = 2, + WARNING_RIGHT = 3, + ACTIVATED_STEER_LEFT = 4, + ACTIVATED_STEER_RIGHT = 5, + USER_OVERRIDE = 6, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ErrorState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ErrorState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dd950ce88c833d1e9046554a0bc2943f44d39983 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ErrorState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ErrorState { + OTHER_ERROR_STATE = (-1) /* -1 */, + NOT_AVAILABLE_DISABLED = (-2) /* -2 */, + NOT_AVAILABLE_SPEED_LOW = (-3) /* -3 */, + NOT_AVAILABLE_SPEED_HIGH = (-4) /* -4 */, + NOT_AVAILABLE_POOR_VISIBILITY = (-5) /* -5 */, + NOT_AVAILABLE_SAFETY = (-6) /* -6 */, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvChargeState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvChargeState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fe1c240a2dcc55b5c448a5d3cc4d85aee00255b7 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvChargeState.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvChargeState { + UNKNOWN = 0, + CHARGING = 1, + FULLY_CHARGED = 2, + NOT_CHARGING = 3, + ERROR = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvConnectorType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvConnectorType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b469578e7756dfb0344f8272c7a12c0ced4c17b2 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvConnectorType.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvConnectorType { + UNKNOWN = 0, + IEC_TYPE_1_AC = 1, + IEC_TYPE_2_AC = 2, + IEC_TYPE_3_AC = 3, + IEC_TYPE_4_DC = 4, + IEC_TYPE_1_CCS_DC = 5, + IEC_TYPE_2_CCS_DC = 6, + TESLA_ROADSTER = 7, + TESLA_HPWC = 8, + TESLA_SUPERCHARGER = 9, + GBT_AC = 10, + GBT_DC = 11, + OTHER = 101, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvRegenerativeBrakingState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvRegenerativeBrakingState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b8695623fb5a74bd5b29687810a343b54f472314 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvRegenerativeBrakingState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvRegenerativeBrakingState { + UNKNOWN = 0, + DISABLED = 1, + PARTIALLY_ENABLED = 2, + FULLY_ENABLED = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvStoppingMode.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvStoppingMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3be8d1263fe0e3cf657c997b60b647d9d84488b8 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvStoppingMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvStoppingMode { + OTHER = 0, + CREEP = 1, + ROLL = 2, + HOLD = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceRequestIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceRequestIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2fdb9b5a8dc9b6786d355beb966e09ff55de8466 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceRequestIndex.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvsServiceRequestIndex { + TYPE = 0, + STATE = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..df81ee7d27c5b461ac32abe09cd9971ee9c6f0e1 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceState.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvsServiceState { + OFF = 0, + ON = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..285732cc3940b527670547295d185dd995ee6e7f --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/EvsServiceType.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum EvsServiceType { + REARVIEW = 0, + SURROUNDVIEW = 1, + FRONTVIEW = 2, + LEFTVIEW = 3, + RIGHTVIEW = 4, + DRIVERVIEW = 5, + FRONTPASSENGERSVIEW = 6, + REARPASSENGERSVIEW = 7, + USER_DEFINED = 1000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ForwardCollisionWarningState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ForwardCollisionWarningState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..371885d3b5ac11fedf124dbbad9162b290bc4697 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ForwardCollisionWarningState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ForwardCollisionWarningState { + OTHER = 0, + NO_WARNING = 1, + WARNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/FuelType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/FuelType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..14bb61b7af9ab50f6935ab376a806c4bfec5e433 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/FuelType.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum FuelType { + FUEL_TYPE_UNKNOWN = 0, + FUEL_TYPE_UNLEADED = 1, + FUEL_TYPE_LEADED = 2, + FUEL_TYPE_DIESEL_1 = 3, + FUEL_TYPE_DIESEL_2 = 4, + FUEL_TYPE_BIODIESEL = 5, + FUEL_TYPE_E85 = 6, + FUEL_TYPE_LPG = 7, + FUEL_TYPE_CNG = 8, + FUEL_TYPE_LNG = 9, + FUEL_TYPE_ELECTRIC = 10, + FUEL_TYPE_HYDROGEN = 11, + FUEL_TYPE_OTHER = 12, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/GsrComplianceRequirementType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/GsrComplianceRequirementType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9c565ee818685ed510bde3d7a973076907e2fad0 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/GsrComplianceRequirementType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum GsrComplianceRequirementType { + GSR_COMPLIANCE_NOT_REQUIRED = 0, + GSR_COMPLIANCE_REQUIRED_V1 = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionDriverState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionDriverState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bb390f22244ab76bac0b0dc7491dddbbb50cae87 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionDriverState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum HandsOnDetectionDriverState { + OTHER = 0, + HANDS_ON = 1, + HANDS_OFF = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionWarning.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionWarning.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4ea4d1d4505c2fe2e558aaab9ddbaefd815911c4 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/HandsOnDetectionWarning.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum HandsOnDetectionWarning { + OTHER = 0, + NO_WARNING = 1, + WARNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ImpactSensorLocation.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ImpactSensorLocation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6b75d8cd516ca030322aec29537904584ce55e0a --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ImpactSensorLocation.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ImpactSensorLocation { + OTHER = 0x01, + FRONT = 0x02, + FRONT_LEFT_DOOR_SIDE = 0x04, + FRONT_RIGHT_DOOR_SIDE = 0x08, + REAR_LEFT_DOOR_SIDE = 0x10, + REAR_RIGHT_DOOR_SIDE = 0x20, + REAR = 0x40, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequest.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a4c048aadb53ae54203689c33472ab86a32e6429 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequest.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable InitialUserInfoRequest { + int requestId; + android.hardware.automotive.vehicle.InitialUserInfoRequestType requestType = android.hardware.automotive.vehicle.InitialUserInfoRequestType.UNKNOWN; + android.hardware.automotive.vehicle.UsersInfo usersInfo; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequestType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequestType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..51260fa7b086855fd399e5de8ede6cb3fd3dd076 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoRequestType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum InitialUserInfoRequestType { + UNKNOWN = 0, + FIRST_BOOT = 1, + FIRST_BOOT_AFTER_OTA = 2, + COLD_BOOT = 3, + RESUME = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponse.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponse.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f0e161261d819e1fb27e1ad5784add0ec9682520 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponse.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable InitialUserInfoResponse { + int requestId; + android.hardware.automotive.vehicle.InitialUserInfoResponseAction action = android.hardware.automotive.vehicle.InitialUserInfoResponseAction.DEFAULT; + android.hardware.automotive.vehicle.UserInfo userToSwitchOrCreate; + @utf8InCpp String userLocales; + @utf8InCpp String userNameToCreate; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponseAction.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponseAction.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d654b5c23e9297a3956146c17ec1dc4ea8f6e50d --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/InitialUserInfoResponseAction.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum InitialUserInfoResponseAction { + DEFAULT = 0, + SWITCH = 1, + CREATE = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistCommand.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistCommand.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9e726052e8c997bd43d28963651f55379e727360 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistCommand.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LaneCenteringAssistCommand { + ACTIVATE = 1, + DEACTIVATE = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c5afe2be1a2744b7f3d7c5994bf12a8ead8e0eb0 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneCenteringAssistState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LaneCenteringAssistState { + OTHER = 0, + ENABLED = 1, + ACTIVATION_REQUESTED = 2, + ACTIVATED = 3, + USER_OVERRIDE = 4, + FORCED_DEACTIVATION_WARNING = 5, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneDepartureWarningState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneDepartureWarningState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cdddb6f2d2a432c44ae505a222c50acbad44822b --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneDepartureWarningState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LaneDepartureWarningState { + OTHER = 0, + NO_WARNING = 1, + WARNING_LEFT = 2, + WARNING_RIGHT = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneKeepAssistState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneKeepAssistState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9c92ff69c55f83d51fbcee8b9c0cf79444aad731 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LaneKeepAssistState.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LaneKeepAssistState { + OTHER = 0, + ENABLED = 1, + ACTIVATED_STEER_LEFT = 2, + ACTIVATED_STEER_RIGHT = 3, + USER_OVERRIDE = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LocationCharacterization.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LocationCharacterization.aidl new file mode 100644 index 0000000000000000000000000000000000000000..27abe417dc79e80b977b56e0b579738d268bde5d --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LocationCharacterization.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LocationCharacterization { + PRIOR_LOCATIONS = 0x1, + GYROSCOPE_FUSION = 0x2, + ACCELEROMETER_FUSION = 0x4, + COMPASS_FUSION = 0x8, + WHEEL_SPEED_FUSION = 0x10, + STEERING_ANGLE_FUSION = 0x20, + CAR_SPEED_FUSION = 0x40, + DEAD_RECKONED = 0x80, + RAW_GNSS_ONLY = 0x100, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..70014e1dda941ecc17399e1e7fb71efed20cd30e --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LowSpeedAutomaticEmergencyBrakingState { + OTHER = 0, + ENABLED = 1, + ACTIVATED = 2, + USER_OVERRIDE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedCollisionWarningState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedCollisionWarningState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6f6338b2fd276f2ca5280ebe2b6deaccc252622a --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/LowSpeedCollisionWarningState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LowSpeedCollisionWarningState { + OTHER = 0, + NO_WARNING = 1, + WARNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CommonIgnitionMonitors.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CommonIgnitionMonitors.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7d122241eb4c066b9f7fb3925d1c31c4c8942383 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CommonIgnitionMonitors.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2CommonIgnitionMonitors { + COMPONENTS_AVAILABLE = (0x1 << 0) /* 1 */, + COMPONENTS_INCOMPLETE = (0x1 << 1) /* 2 */, + FUEL_SYSTEM_AVAILABLE = (0x1 << 2) /* 4 */, + FUEL_SYSTEM_INCOMPLETE = (0x1 << 3) /* 8 */, + MISFIRE_AVAILABLE = (0x1 << 4) /* 16 */, + MISFIRE_INCOMPLETE = (0x1 << 5) /* 32 */, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CompressionIgnitionMonitors.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CompressionIgnitionMonitors.aidl new file mode 100644 index 0000000000000000000000000000000000000000..90240bf4bf7862b1730edd0670af778e11073c58 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2CompressionIgnitionMonitors.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2CompressionIgnitionMonitors { + COMPONENTS_AVAILABLE = (0x1 << 0) /* 1 */, + COMPONENTS_INCOMPLETE = (0x1 << 1) /* 2 */, + FUEL_SYSTEM_AVAILABLE = (0x1 << 2) /* 4 */, + FUEL_SYSTEM_INCOMPLETE = (0x1 << 3) /* 8 */, + MISFIRE_AVAILABLE = (0x1 << 4) /* 16 */, + MISFIRE_INCOMPLETE = (0x1 << 5) /* 32 */, + EGR_OR_VVT_AVAILABLE = (0x1 << 6) /* 64 */, + EGR_OR_VVT_INCOMPLETE = (0x1 << 7) /* 128 */, + PM_FILTER_AVAILABLE = (0x1 << 8) /* 256 */, + PM_FILTER_INCOMPLETE = (0x1 << 9) /* 512 */, + EXHAUST_GAS_SENSOR_AVAILABLE = (0x1 << 10) /* 1024 */, + EXHAUST_GAS_SENSOR_INCOMPLETE = (0x1 << 11) /* 2048 */, + BOOST_PRESSURE_AVAILABLE = (0x1 << 12) /* 4096 */, + BOOST_PRESSURE_INCOMPLETE = (0x1 << 13) /* 8192 */, + NOx_SCR_AVAILABLE = (0x1 << 14) /* 16384 */, + NOx_SCR_INCOMPLETE = (0x1 << 15) /* 32768 */, + NMHC_CATALYST_AVAILABLE = (0x1 << 16) /* 65536 */, + NMHC_CATALYST_INCOMPLETE = (0x1 << 17) /* 131072 */, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelSystemStatus.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelSystemStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9d588ead1c73b6355b84507a0a40a7320783d5ff --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelSystemStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2FuelSystemStatus { + OPEN_INSUFFICIENT_ENGINE_TEMPERATURE = 1, + CLOSED_LOOP = 2, + OPEN_ENGINE_LOAD_OR_DECELERATION = 4, + OPEN_SYSTEM_FAILURE = 8, + CLOSED_LOOP_BUT_FEEDBACK_FAULT = 16, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3ab3920d04e6a1f63f59ac971d79949bf76bb0f6 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2FuelType.aidl @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2FuelType { + NOT_AVAILABLE = 0, + GASOLINE = 1, + METHANOL = 2, + ETHANOL = 3, + DIESEL = 4, + LPG = 5, + CNG = 6, + PROPANE = 7, + ELECTRIC = 8, + BIFUEL_RUNNING_GASOLINE = 9, + BIFUEL_RUNNING_METHANOL = 10, + BIFUEL_RUNNING_ETHANOL = 11, + BIFUEL_RUNNING_LPG = 12, + BIFUEL_RUNNING_CNG = 13, + BIFUEL_RUNNING_PROPANE = 14, + BIFUEL_RUNNING_ELECTRIC = 15, + BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION = 16, + HYBRID_GASOLINE = 17, + HYBRID_ETHANOL = 18, + HYBRID_DIESEL = 19, + HYBRID_ELECTRIC = 20, + HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION = 21, + HYBRID_REGENERATIVE = 22, + BIFUEL_RUNNING_DIESEL = 23, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2IgnitionMonitorKind.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2IgnitionMonitorKind.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ec8f1c2e57da0b6b5b3c42e60b21c1dede4a677a --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2IgnitionMonitorKind.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2IgnitionMonitorKind { + SPARK = 0, + COMPRESSION = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SecondaryAirStatus.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SecondaryAirStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7f445bf564cd1aac18ce92dca73a3542829fd1bd --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SecondaryAirStatus.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2SecondaryAirStatus { + UPSTREAM = 1, + DOWNSTREAM_OF_CATALYCIC_CONVERTER = 2, + FROM_OUTSIDE_OR_OFF = 4, + PUMP_ON_FOR_DIAGNOSTICS = 8, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SparkIgnitionMonitors.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SparkIgnitionMonitors.aidl new file mode 100644 index 0000000000000000000000000000000000000000..51e321b828bc299c782bc0e79ddd2f9d945acc6f --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/Obd2SparkIgnitionMonitors.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum Obd2SparkIgnitionMonitors { + COMPONENTS_AVAILABLE = (0x1 << 0) /* 1 */, + COMPONENTS_INCOMPLETE = (0x1 << 1) /* 2 */, + FUEL_SYSTEM_AVAILABLE = (0x1 << 2) /* 4 */, + FUEL_SYSTEM_INCOMPLETE = (0x1 << 3) /* 8 */, + MISFIRE_AVAILABLE = (0x1 << 4) /* 16 */, + MISFIRE_INCOMPLETE = (0x1 << 5) /* 32 */, + EGR_AVAILABLE = (0x1 << 6) /* 64 */, + EGR_INCOMPLETE = (0x1 << 7) /* 128 */, + OXYGEN_SENSOR_HEATER_AVAILABLE = (0x1 << 8) /* 256 */, + OXYGEN_SENSOR_HEATER_INCOMPLETE = (0x1 << 9) /* 512 */, + OXYGEN_SENSOR_AVAILABLE = (0x1 << 10) /* 1024 */, + OXYGEN_SENSOR_INCOMPLETE = (0x1 << 11) /* 2048 */, + AC_REFRIGERANT_AVAILABLE = (0x1 << 12) /* 4096 */, + AC_REFRIGERANT_INCOMPLETE = (0x1 << 13) /* 8192 */, + SECONDARY_AIR_SYSTEM_AVAILABLE = (0x1 << 14) /* 16384 */, + SECONDARY_AIR_SYSTEM_INCOMPLETE = (0x1 << 15) /* 32768 */, + EVAPORATIVE_SYSTEM_AVAILABLE = (0x1 << 16) /* 65536 */, + EVAPORATIVE_SYSTEM_INCOMPLETE = (0x1 << 17) /* 131072 */, + HEATED_CATALYST_AVAILABLE = (0x1 << 18) /* 262144 */, + HEATED_CATALYST_INCOMPLETE = (0x1 << 19) /* 524288 */, + CATALYST_AVAILABLE = (0x1 << 20) /* 1048576 */, + CATALYST_INCOMPLETE = (0x1 << 21) /* 2097152 */, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/PortLocationType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/PortLocationType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b831c7ebd9e3bad39b3ae8dd5a286b5e306f6a22 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/PortLocationType.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum PortLocationType { + UNKNOWN = 0, + FRONT_LEFT = 1, + FRONT_RIGHT = 2, + REAR_RIGHT = 3, + REAR_LEFT = 4, + FRONT = 5, + REAR = 6, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ProcessTerminationReason.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ProcessTerminationReason.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f2838ad818d34a134a961ddcfeca3a01475bd37b --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/ProcessTerminationReason.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum ProcessTerminationReason { + NOT_RESPONDING = 1, + IO_OVERUSE = 2, + MEMORY_OVERUSE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RemoveUserRequest.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RemoveUserRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..74457b9ab7fb3474134927dc93ef1df507cd831b --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RemoveUserRequest.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable RemoveUserRequest { + int requestId; + android.hardware.automotive.vehicle.UserInfo removedUserInfo; + android.hardware.automotive.vehicle.UsersInfo usersInfo; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RotaryInputType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RotaryInputType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ff900347113f11d6c944efc636c4a624bed86db0 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/RotaryInputType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum RotaryInputType { + ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION = 0, + ROTARY_INPUT_TYPE_AUDIO_VOLUME = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserMessageType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserMessageType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a3e59f128d089446b83543b41e02b866858af719 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserMessageType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum SwitchUserMessageType { + UNKNOWN = 0, + LEGACY_ANDROID_SWITCH = 1, + ANDROID_SWITCH = 2, + VEHICLE_RESPONSE = 3, + VEHICLE_REQUEST = 4, + ANDROID_POST_SWITCH = 5, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserRequest.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3012b7a51de879ea50577d432c9058391224b319 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserRequest.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SwitchUserRequest { + int requestId; + android.hardware.automotive.vehicle.SwitchUserMessageType messageType = android.hardware.automotive.vehicle.SwitchUserMessageType.UNKNOWN; + android.hardware.automotive.vehicle.UserInfo targetUser; + android.hardware.automotive.vehicle.UsersInfo usersInfo; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserResponse.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserResponse.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8915d1b86693d5f619b0e3795a20fad3e6e3c917 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserResponse.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable SwitchUserResponse { + int requestId; + android.hardware.automotive.vehicle.SwitchUserMessageType messageType = android.hardware.automotive.vehicle.SwitchUserMessageType.UNKNOWN; + android.hardware.automotive.vehicle.SwitchUserStatus status = android.hardware.automotive.vehicle.SwitchUserStatus.SUCCESS; + @utf8InCpp String errorMessage; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserStatus.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c7be9ec949c7a59a385f9e72faa4ee3bbfe1c130 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/SwitchUserStatus.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum SwitchUserStatus { + SUCCESS = 1, + FAILURE = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/TrailerState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/TrailerState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2491340acd4062fa4136c3b1565a86345f33718d --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/TrailerState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum TrailerState { + UNKNOWN = 0, + NOT_PRESENT = 1, + PRESENT = 2, + ERROR = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociation.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a540f8ead8a3cdc4cde62576e17bb72829cb1d73 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociation.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UserIdentificationAssociation { + android.hardware.automotive.vehicle.UserIdentificationAssociationType type = android.hardware.automotive.vehicle.UserIdentificationAssociationType.INVALID; + android.hardware.automotive.vehicle.UserIdentificationAssociationValue value = android.hardware.automotive.vehicle.UserIdentificationAssociationValue.UNKNOWN; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationSetValue.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationSetValue.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1fd9ee8c315b0d594e847aacadbc5995d4c09a2c --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationSetValue.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum UserIdentificationAssociationSetValue { + INVALID = 0, + ASSOCIATE_CURRENT_USER = 1, + DISASSOCIATE_CURRENT_USER = 2, + DISASSOCIATE_ALL_USERS = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6498375b0f3e0ac113790426741383026b2f14b1 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum UserIdentificationAssociationType { + INVALID = 0, + KEY_FOB = 1, + CUSTOM_1 = 101, + CUSTOM_2 = 102, + CUSTOM_3 = 103, + CUSTOM_4 = 104, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationValue.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationValue.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d5e01691fa57b947440b3715380857551b993066 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationAssociationValue.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum UserIdentificationAssociationValue { + UNKNOWN = 1, + ASSOCIATED_CURRENT_USER = 2, + ASSOCIATED_ANOTHER_USER = 3, + NOT_ASSOCIATED_ANY_USER = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationGetRequest.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationGetRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fe7fd6f6bc3e665ad877a78495a88eeabb9788e5 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationGetRequest.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UserIdentificationGetRequest { + int requestId; + android.hardware.automotive.vehicle.UserInfo userInfo; + int numberAssociationTypes; + android.hardware.automotive.vehicle.UserIdentificationAssociationType[] associationTypes; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationResponse.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationResponse.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3e2a2579cc9286be6575a267e013942e16820e40 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationResponse.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UserIdentificationResponse { + int requestId; + int numberAssociation; + android.hardware.automotive.vehicle.UserIdentificationAssociation[] associations; + @utf8InCpp String errorMessage; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetAssociation.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetAssociation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..57840fb77c09c2c32e65e3bc9f089dea18440f96 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetAssociation.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UserIdentificationSetAssociation { + android.hardware.automotive.vehicle.UserIdentificationAssociationType type = android.hardware.automotive.vehicle.UserIdentificationAssociationType.INVALID; + android.hardware.automotive.vehicle.UserIdentificationAssociationSetValue value = android.hardware.automotive.vehicle.UserIdentificationAssociationSetValue.INVALID; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetRequest.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..db01b515a8ba008072b78df371b2c95c4096cbb4 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserIdentificationSetRequest.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UserIdentificationSetRequest { + int requestId; + android.hardware.automotive.vehicle.UserInfo userInfo; + int numberAssociations; + android.hardware.automotive.vehicle.UserIdentificationSetAssociation[] associations; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserInfo.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..feb5a73ed4f937aed62d4e6a213512b68e53ae25 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UserInfo.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UserInfo { + int userId = 0; + int flags; + const int USER_FLAG_SYSTEM = 0x01; + const int USER_FLAG_GUEST = 0x02; + const int USER_FLAG_EPHEMERAL = 0x04; + const int USER_FLAG_ADMIN = 0x08; + const int USER_FLAG_DISABLED = 0x10; + const int USER_FLAG_PROFILE = 0x20; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UsersInfo.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UsersInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..edcef2edfd57207de4e1ed4d1fff3653d3d701a6 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/UsersInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable UsersInfo { + android.hardware.automotive.vehicle.UserInfo currentUser; + int numberUsers; + android.hardware.automotive.vehicle.UserInfo[] existingUsers; +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAirbagLocation.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAirbagLocation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9b966d7f942dfd066aedee7f7b12907ec7556a12 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAirbagLocation.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAirbagLocation { + OTHER = 0x01, + FRONT = 0x02, + KNEE = 0x04, + LEFT_SIDE = 0x08, + RIGHT_SIDE = 0x10, + CURTAIN = 0x20, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl new file mode 100644 index 0000000000000000000000000000000000000000..55af2ab0fa0f782dc5ebf82497dd3929f82985ec --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleApPowerBootupReason { + USER_POWER_ON = 0, + SYSTEM_USER_DETECTION = 1, + SYSTEM_REMOTE_ACCESS = 2, + SYSTEM_ENTER_GARAGE_MODE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateConfigFlag.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateConfigFlag.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cc124902334e99bb421787f7616da3208a92097e --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateConfigFlag.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleApPowerStateConfigFlag { + ENABLE_DEEP_SLEEP_FLAG = 0x1, + CONFIG_SUPPORT_TIMER_POWER_ON_FLAG = 0x2, + ENABLE_HIBERNATION_FLAG = 0x4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReport.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReport.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e4f7e54f7537eb23b2bd3b656100e2459734dd29 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReport.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleApPowerStateReport { + WAIT_FOR_VHAL = 0x1, + DEEP_SLEEP_ENTRY = 0x2, + DEEP_SLEEP_EXIT = 0x3, + SHUTDOWN_POSTPONE = 0x4, + SHUTDOWN_START = 0x5, + ON = 0x6, + SHUTDOWN_PREPARE = 0x7, + SHUTDOWN_CANCELLED = 0x8, + HIBERNATION_ENTRY = 0x9, + HIBERNATION_EXIT = 0xA, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReq.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReq.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8b94d3159869fa04a41a565ed6764bd9b40e3c1a --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReq.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleApPowerStateReq { + ON = 0, + SHUTDOWN_PREPARE = 1, + CANCEL_SHUTDOWN = 2, + FINISHED = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReqIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReqIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f995c73ee535885802b07185261e97b510e52f2b --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateReqIndex.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleApPowerStateReqIndex { + STATE = 0, + ADDITIONAL = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8b345b2bd11e116d861a6c9a13221706b50744e5 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleApPowerStateShutdownParam { + SHUTDOWN_IMMEDIATELY = 1, + CAN_SLEEP = 2, + SHUTDOWN_ONLY = 3, + SLEEP_IMMEDIATELY = 4, + HIBERNATE_IMMEDIATELY = 5, + CAN_HIBERNATE = 6, + EMERGENCY_SHUTDOWN = 7, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleArea.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleArea.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b63003a73380fa47ce7ea845c498acf07a6de53e --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleArea.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleArea { + GLOBAL = 0x01000000, + WINDOW = 0x03000000, + MIRROR = 0x04000000, + SEAT = 0x05000000, + DOOR = 0x06000000, + WHEEL = 0x07000000, + VENDOR = 0x08000000, + MASK = 0x0f000000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaDoor.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaDoor.aidl new file mode 100644 index 0000000000000000000000000000000000000000..04976d631d18fd57103286d193d3255fb5252726 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaDoor.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAreaDoor { + ROW_1_LEFT = 0x00000001, + ROW_1_RIGHT = 0x00000004, + ROW_2_LEFT = 0x00000010, + ROW_2_RIGHT = 0x00000040, + ROW_3_LEFT = 0x00000100, + ROW_3_RIGHT = 0x00000400, + HOOD = 0x10000000, + REAR = 0x20000000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaMirror.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaMirror.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2d1c0483a2af07ee69ad1e3144c77801c80a7ffe --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaMirror.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAreaMirror { + DRIVER_LEFT = 0x00000001, + DRIVER_RIGHT = 0x00000002, + DRIVER_CENTER = 0x00000004, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaSeat.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaSeat.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a24f51569777bc2b9a33c496d2a33686c173da63 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaSeat.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAreaSeat { + UNKNOWN = 0x0000, + ROW_1_LEFT = 0x0001, + ROW_1_CENTER = 0x0002, + ROW_1_RIGHT = 0x0004, + ROW_2_LEFT = 0x0010, + ROW_2_CENTER = 0x0020, + ROW_2_RIGHT = 0x0040, + ROW_3_LEFT = 0x0100, + ROW_3_CENTER = 0x0200, + ROW_3_RIGHT = 0x0400, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWheel.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWheel.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d1b314e0acce34b6a2609b59740c6070d994f063 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWheel.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAreaWheel { + UNKNOWN = 0x0, + LEFT_FRONT = 0x1, + RIGHT_FRONT = 0x2, + LEFT_REAR = 0x4, + RIGHT_REAR = 0x8, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWindow.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWindow.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2afcca3dd1c06a9fd2f92e87663e5cb6e0f1811c --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAreaWindow.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAreaWindow { + FRONT_WINDSHIELD = 0x00000001, + REAR_WINDSHIELD = 0x00000002, + ROW_1_LEFT = 0x00000010, + ROW_1_RIGHT = 0x00000040, + ROW_2_LEFT = 0x00000100, + ROW_2_RIGHT = 0x00000400, + ROW_3_LEFT = 0x00001000, + ROW_3_RIGHT = 0x00004000, + ROOF_TOP_1 = 0x00010000, + ROOF_TOP_2 = 0x00020000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAutonomousState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAutonomousState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e15e71ed3e8a6b93eae65146cf89480b1599086a --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleAutonomousState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleAutonomousState { + LEVEL_0 = 0, + LEVEL_1 = 1, + LEVEL_2 = 2, + LEVEL_3 = 3, + LEVEL_4 = 4, + LEVEL_5 = 5, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleDisplay.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleDisplay.aidl new file mode 100644 index 0000000000000000000000000000000000000000..be335ec7e7736b0e0aa0168de56464c2179f0977 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleDisplay.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleDisplay { + MAIN = 0, + INSTRUMENT_CLUSTER = 1, + HUD = 2, + INPUT = 3, + AUXILIARY = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleGear.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleGear.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b8a299c41a74398727136a7eb24e47bba427f5d2 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleGear.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleGear { + GEAR_UNKNOWN = 0x0000, + GEAR_NEUTRAL = 0x0001, + GEAR_REVERSE = 0x0002, + GEAR_PARK = 0x0004, + GEAR_DRIVE = 0x0008, + GEAR_1 = 0x0010, + GEAR_2 = 0x0020, + GEAR_3 = 0x0040, + GEAR_4 = 0x0080, + GEAR_5 = 0x0100, + GEAR_6 = 0x0200, + GEAR_7 = 0x0400, + GEAR_8 = 0x0800, + GEAR_9 = 0x1000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHvacFanDirection.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHvacFanDirection.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4f9870a674248233b2843f5f0a67ce5dd477b6a7 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHvacFanDirection.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleHvacFanDirection { + UNKNOWN = 0x0, + FACE = 0x1, + FLOOR = 0x2, + FACE_AND_FLOOR = 0x3, + DEFROST = 0x4, + DEFROST_AND_FLOOR = 0x06, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwKeyInputAction.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwKeyInputAction.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c4ac002067cd031d2fca3919b844adf147a7f68f --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwKeyInputAction.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleHwKeyInputAction { + ACTION_DOWN = 0, + ACTION_UP = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionButtonStateFlag.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionButtonStateFlag.aidl new file mode 100644 index 0000000000000000000000000000000000000000..29c5ed6f6e33c0f890a92ba7ac8fcb1896bd4d28 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionButtonStateFlag.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleHwMotionButtonStateFlag { + BUTTON_PRIMARY = 0x0001, + BUTTON_SECONDARY = 0x0002, + BUTTON_TERTIARY = 0x0004, + BUTTON_BACK = 0x0008, + BUTTON_FORWARD = 0x0010, + BUTTON_STYLUS_PRIMARY = 0x0020, + BUTTON_STYLUS_SECONDARY = 0x0040, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputAction.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputAction.aidl new file mode 100644 index 0000000000000000000000000000000000000000..db4b41eb9d3b62ec8137d4420963f50ceddf36bf --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputAction.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleHwMotionInputAction { + ACTION_DOWN = 0, + ACTION_UP = 1, + ACTION_MOVE = 2, + ACTION_CANCEL = 3, + ACTION_OUTSIDE = 4, + ACTION_POINTER_DOWN = 5, + ACTION_POINTER_UP = 6, + ACTION_HOVER_MOVE = 7, + ACTION_SCROLL = 8, + ACTION_HOVER_ENTER = 9, + ACTION_HOVER_EXIT = 10, + ACTION_BUTTON_PRESS = 11, + ACTION_BUTTON_RELEASE = 12, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputSource.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputSource.aidl new file mode 100644 index 0000000000000000000000000000000000000000..88c7873a43e6a19d27607f32f5223afbd76b5595 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionInputSource.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleHwMotionInputSource { + SOURCE_UNKNOWN = 0, + SOURCE_KEYBOARD = 1, + SOURCE_DPAD = 2, + SOURCE_GAMEPAD = 3, + SOURCE_TOUCHSCREEN = 4, + SOURCE_MOUSE = 5, + SOURCE_STYLUS = 6, + SOURCE_BLUETOOTH_STYLUS = 7, + SOURCE_TRACKBALL = 8, + SOURCE_MOUSE_RELATIVE = 9, + SOURCE_TOUCHPAD = 10, + SOURCE_TOUCH_NAVIGATION = 11, + SOURCE_ROTARY_ENCODER = 12, + SOURCE_JOYSTICK = 13, + SOURCE_HDMI = 14, + SOURCE_SENSOR = 15, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionToolType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionToolType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2b3bc7f157222a259a779f8e9da7573841ce18f3 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleHwMotionToolType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleHwMotionToolType { + TOOL_TYPE_UNKNOWN = 0, + TOOL_TYPE_FINGER = 1, + TOOL_TYPE_STYLUS = 2, + TOOL_TYPE_MOUSE = 3, + TOOL_TYPE_ERASER = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleIgnitionState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleIgnitionState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f572a128bb900ce6316b8ad980a7e93307edda06 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleIgnitionState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleIgnitionState { + UNDEFINED = 0, + LOCK = 1, + OFF, + ACC, + ON, + START, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d5698514075d32f34e511275671a779828098283 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleLightState { + OFF = 0, + ON = 1, + DAYTIME_RUNNING = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightSwitch.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightSwitch.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f244884f988318d666b782839ce054ed15f76b96 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleLightSwitch.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleLightSwitch { + OFF = 0, + ON = 1, + DAYTIME_RUNNING = 2, + AUTOMATIC = 0x100, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleOilLevel.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleOilLevel.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f2eb5aa9134a4069ea4bca311201a33408833267 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleOilLevel.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleOilLevel { + CRITICALLY_LOW = 0, + LOW = 1, + NORMAL = 2, + HIGH = 3, + ERROR = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleProperty.aidl new file mode 100644 index 0000000000000000000000000000000000000000..be8d3ac6ab1692b9663aea5f4c1665643d97590c --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -0,0 +1,304 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleProperty { + INVALID = 0x00000000, + INFO_VIN = (((0x0100 + 0x10000000) + 0x01000000) + 0x00100000) /* 286261504 */, + INFO_MAKE = (((0x0101 + 0x10000000) + 0x01000000) + 0x00100000) /* 286261505 */, + INFO_MODEL = (((0x0102 + 0x10000000) + 0x01000000) + 0x00100000) /* 286261506 */, + INFO_MODEL_YEAR = (((0x0103 + 0x10000000) + 0x01000000) + 0x00400000) /* 289407235 */, + INFO_FUEL_CAPACITY = (((0x0104 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504388 */, + INFO_FUEL_TYPE = (((0x0105 + 0x10000000) + 0x01000000) + 0x00410000) /* 289472773 */, + INFO_EV_BATTERY_CAPACITY = (((0x0106 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504390 */, + INFO_EV_CONNECTOR_TYPE = (((0x0107 + 0x10000000) + 0x01000000) + 0x00410000) /* 289472775 */, + INFO_FUEL_DOOR_LOCATION = (((0x0108 + 0x10000000) + 0x01000000) + 0x00400000) /* 289407240 */, + INFO_EV_PORT_LOCATION = (((0x0109 + 0x10000000) + 0x01000000) + 0x00400000) /* 289407241 */, + INFO_DRIVER_SEAT = (((0x010A + 0x10000000) + 0x05000000) + 0x00400000) /* 356516106 */, + INFO_EXTERIOR_DIMENSIONS = (((0x010B + 0x10000000) + 0x01000000) + 0x00410000) /* 289472779 */, + INFO_MULTI_EV_PORT_LOCATIONS = (((0x010C + 0x10000000) + 0x01000000) + 0x00410000) /* 289472780 */, + PERF_ODOMETER = (((0x0204 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504644 */, + PERF_VEHICLE_SPEED = (((0x0207 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504647 */, + PERF_VEHICLE_SPEED_DISPLAY = (((0x0208 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504648 */, + PERF_STEERING_ANGLE = (((0x0209 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504649 */, + PERF_REAR_STEERING_ANGLE = (((0x0210 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504656 */, + ENGINE_COOLANT_TEMP = (((0x0301 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504897 */, + ENGINE_OIL_LEVEL = (((0x0303 + 0x10000000) + 0x01000000) + 0x00400000) /* 289407747 */, + ENGINE_OIL_TEMP = (((0x0304 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504900 */, + ENGINE_RPM = (((0x0305 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504901 */, + WHEEL_TICK = (((0x0306 + 0x10000000) + 0x01000000) + 0x00510000) /* 290521862 */, + FUEL_LEVEL = (((0x0307 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504903 */, + FUEL_DOOR_OPEN = (((0x0308 + 0x10000000) + 0x01000000) + 0x00200000) /* 287310600 */, + EV_BATTERY_LEVEL = (((0x0309 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504905 */, + EV_CURRENT_BATTERY_CAPACITY = (((0x030D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.FLOAT) /* 291504909 */, + EV_CHARGE_PORT_OPEN = (((0x030A + 0x10000000) + 0x01000000) + 0x00200000) /* 287310602 */, + EV_CHARGE_PORT_CONNECTED = (((0x030B + 0x10000000) + 0x01000000) + 0x00200000) /* 287310603 */, + EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = (((0x030C + 0x10000000) + 0x01000000) + 0x00600000) /* 291504908 */, + RANGE_REMAINING = (((0x0308 + 0x10000000) + 0x01000000) + 0x00600000) /* 291504904 */, + EV_BATTERY_AVERAGE_TEMPERATURE = (((0x030E + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.FLOAT) /* 291504910 */, + TIRE_PRESSURE = (((0x0309 + 0x10000000) + 0x07000000) + 0x00600000) /* 392168201 */, + CRITICALLY_LOW_TIRE_PRESSURE = (((0x030A + 0x10000000) + 0x07000000) + 0x00600000) /* 392168202 */, + ENGINE_IDLE_AUTO_STOP_ENABLED = (((0x0320 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287310624 */, + IMPACT_DETECTED = (((0x0330 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289407792 */, + GEAR_SELECTION = (((0x0400 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408000 */, + CURRENT_GEAR = (((0x0401 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408001 */, + PARKING_BRAKE_ON = (((0x0402 + 0x10000000) + 0x01000000) + 0x00200000) /* 287310850 */, + PARKING_BRAKE_AUTO_APPLY = (((0x0403 + 0x10000000) + 0x01000000) + 0x00200000) /* 287310851 */, + EV_BRAKE_REGENERATION_LEVEL = (((0x040C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289408012 */, + FUEL_LEVEL_LOW = (((0x0405 + 0x10000000) + 0x01000000) + 0x00200000) /* 287310853 */, + NIGHT_MODE = (((0x0407 + 0x10000000) + 0x01000000) + 0x00200000) /* 287310855 */, + TURN_SIGNAL_STATE = (((0x0408 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408008 */, + IGNITION_STATE = (((0x0409 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408009 */, + ABS_ACTIVE = (((0x040A + 0x10000000) + 0x01000000) + 0x00200000) /* 287310858 */, + TRACTION_CONTROL_ACTIVE = (((0x040B + 0x10000000) + 0x01000000) + 0x00200000) /* 287310859 */, + EV_STOPPING_MODE = (((0x040D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289408013 */, + ELECTRONIC_STABILITY_CONTROL_ENABLED = (((0x040E + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287310862 */, + ELECTRONIC_STABILITY_CONTROL_STATE = (((0x040F + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289408015 */, + HVAC_FAN_SPEED = (((0x0500 + 0x10000000) + 0x05000000) + 0x00400000) /* 356517120 */, + HVAC_FAN_DIRECTION = (((0x0501 + 0x10000000) + 0x05000000) + 0x00400000) /* 356517121 */, + HVAC_TEMPERATURE_CURRENT = (((0x0502 + 0x10000000) + 0x05000000) + 0x00600000) /* 358614274 */, + HVAC_TEMPERATURE_SET = (((0x0503 + 0x10000000) + 0x05000000) + 0x00600000) /* 358614275 */, + HVAC_DEFROSTER = (((0x0504 + 0x10000000) + 0x03000000) + 0x00200000) /* 320865540 */, + HVAC_AC_ON = (((0x0505 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419973 */, + HVAC_MAX_AC_ON = (((0x0506 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419974 */, + HVAC_MAX_DEFROST_ON = (((0x0507 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419975 */, + HVAC_RECIRC_ON = (((0x0508 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419976 */, + HVAC_DUAL_ON = (((0x0509 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419977 */, + HVAC_AUTO_ON = (((0x050A + 0x10000000) + 0x05000000) + 0x00200000) /* 354419978 */, + HVAC_SEAT_TEMPERATURE = (((0x050B + 0x10000000) + 0x05000000) + 0x00400000) /* 356517131 */, + HVAC_SIDE_MIRROR_HEAT = (((0x050C + 0x10000000) + 0x04000000) + 0x00400000) /* 339739916 */, + HVAC_STEERING_WHEEL_HEAT = (((0x050D + 0x10000000) + 0x01000000) + 0x00400000) /* 289408269 */, + HVAC_TEMPERATURE_DISPLAY_UNITS = (((0x050E + 0x10000000) + 0x01000000) + 0x00400000) /* 289408270 */, + HVAC_ACTUAL_FAN_SPEED_RPM = (((0x050F + 0x10000000) + 0x05000000) + 0x00400000) /* 356517135 */, + HVAC_POWER_ON = (((0x0510 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419984 */, + HVAC_FAN_DIRECTION_AVAILABLE = (((0x0511 + 0x10000000) + 0x05000000) + 0x00410000) /* 356582673 */, + HVAC_AUTO_RECIRC_ON = (((0x0512 + 0x10000000) + 0x05000000) + 0x00200000) /* 354419986 */, + HVAC_SEAT_VENTILATION = (((0x0513 + 0x10000000) + 0x05000000) + 0x00400000) /* 356517139 */, + HVAC_ELECTRIC_DEFROSTER_ON = (((0x0514 + 0x10000000) + 0x03000000) + 0x00200000) /* 320865556 */, + HVAC_TEMPERATURE_VALUE_SUGGESTION = (((0x0515 + 0x10000000) + 0x01000000) + 0x00610000) /* 291570965 */, + DISTANCE_DISPLAY_UNITS = (((0x0600 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408512 */, + FUEL_VOLUME_DISPLAY_UNITS = (((0x0601 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408513 */, + TIRE_PRESSURE_DISPLAY_UNITS = (((0x0602 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408514 */, + EV_BATTERY_DISPLAY_UNITS = (((0x0603 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408515 */, + FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = (((0x0604 + 0x10000000) + 0x01000000) + 0x00200000) /* 287311364 */, + VEHICLE_SPEED_DISPLAY_UNITS = (((0x0605 + 0x10000000) + 0x01000000) + 0x00400000) /* 289408517 */, + EXTERNAL_CAR_TIME = (((0x0608 + 0x10000000) + 0x01000000) + 0x00500000) /* 290457096 */, + ANDROID_EPOCH_TIME = (((0x0606 + 0x10000000) + 0x01000000) + 0x00500000) /* 290457094 */, + STORAGE_ENCRYPTION_BINDING_SEED = (((0x0607 + 0x10000000) + 0x01000000) + 0x00700000) /* 292554247 */, + ENV_OUTSIDE_TEMPERATURE = (((0x0703 + 0x10000000) + 0x01000000) + 0x00600000) /* 291505923 */, + AP_POWER_STATE_REQ = (((0x0A00 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475072 */, + AP_POWER_STATE_REPORT = (((0x0A01 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475073 */, + AP_POWER_BOOTUP_REASON = (((0x0A02 + 0x10000000) + 0x01000000) + 0x00400000) /* 289409538 */, + DISPLAY_BRIGHTNESS = (((0x0A03 + 0x10000000) + 0x01000000) + 0x00400000) /* 289409539 */, + PER_DISPLAY_BRIGHTNESS = (((0x0A04 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475076 */, + VALET_MODE_ENABLED = (((0x0A05 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287312389 */, + HEAD_UP_DISPLAY_ENABLED = (((0x0A06 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 354421254 */, + HW_KEY_INPUT = (((0x0A10 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475088 */, + HW_KEY_INPUT_V2 = (((0x0A11 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.MIXED) /* 367004177 */, + HW_MOTION_INPUT = (((0x0A12 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.MIXED) /* 367004178 */, + HW_ROTARY_INPUT = (((0x0A20 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475104 */, + HW_CUSTOM_INPUT = (((0X0A30 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475120 */, + DOOR_POS = (((0x0B00 + 0x10000000) + 0x06000000) + 0x00400000) /* 373295872 */, + DOOR_MOVE = (((0x0B01 + 0x10000000) + 0x06000000) + 0x00400000) /* 373295873 */, + DOOR_LOCK = (((0x0B02 + 0x10000000) + 0x06000000) + 0x00200000) /* 371198722 */, + DOOR_CHILD_LOCK_ENABLED = (((0x0B03 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.DOOR) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 371198723 */, + MIRROR_Z_POS = (((0x0B40 + 0x10000000) + 0x04000000) + 0x00400000) /* 339741504 */, + MIRROR_Z_MOVE = (((0x0B41 + 0x10000000) + 0x04000000) + 0x00400000) /* 339741505 */, + MIRROR_Y_POS = (((0x0B42 + 0x10000000) + 0x04000000) + 0x00400000) /* 339741506 */, + MIRROR_Y_MOVE = (((0x0B43 + 0x10000000) + 0x04000000) + 0x00400000) /* 339741507 */, + MIRROR_LOCK = (((0x0B44 + 0x10000000) + 0x01000000) + 0x00200000) /* 287312708 */, + MIRROR_FOLD = (((0x0B45 + 0x10000000) + 0x01000000) + 0x00200000) /* 287312709 */, + MIRROR_AUTO_FOLD_ENABLED = (((0x0B46 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.MIRROR) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 337644358 */, + MIRROR_AUTO_TILT_ENABLED = (((0x0B47 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.MIRROR) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 337644359 */, + SEAT_MEMORY_SELECT = (((0x0B80 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518784 */, + SEAT_MEMORY_SET = (((0x0B81 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518785 */, + SEAT_BELT_BUCKLED = (((0x0B82 + 0x10000000) + 0x05000000) + 0x00200000) /* 354421634 */, + SEAT_BELT_HEIGHT_POS = (((0x0B83 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518787 */, + SEAT_BELT_HEIGHT_MOVE = (((0x0B84 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518788 */, + SEAT_FORE_AFT_POS = (((0x0B85 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518789 */, + SEAT_FORE_AFT_MOVE = (((0x0B86 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518790 */, + SEAT_BACKREST_ANGLE_1_POS = (((0x0B87 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518791 */, + SEAT_BACKREST_ANGLE_1_MOVE = (((0x0B88 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518792 */, + SEAT_BACKREST_ANGLE_2_POS = (((0x0B89 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518793 */, + SEAT_BACKREST_ANGLE_2_MOVE = (((0x0B8A + 0x10000000) + 0x05000000) + 0x00400000) /* 356518794 */, + SEAT_HEIGHT_POS = (((0x0B8B + 0x10000000) + 0x05000000) + 0x00400000) /* 356518795 */, + SEAT_HEIGHT_MOVE = (((0x0B8C + 0x10000000) + 0x05000000) + 0x00400000) /* 356518796 */, + SEAT_DEPTH_POS = (((0x0B8D + 0x10000000) + 0x05000000) + 0x00400000) /* 356518797 */, + SEAT_DEPTH_MOVE = (((0x0B8E + 0x10000000) + 0x05000000) + 0x00400000) /* 356518798 */, + SEAT_TILT_POS = (((0x0B8F + 0x10000000) + 0x05000000) + 0x00400000) /* 356518799 */, + SEAT_TILT_MOVE = (((0x0B90 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518800 */, + SEAT_LUMBAR_FORE_AFT_POS = (((0x0B91 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518801 */, + SEAT_LUMBAR_FORE_AFT_MOVE = (((0x0B92 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518802 */, + SEAT_LUMBAR_SIDE_SUPPORT_POS = (((0x0B93 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518803 */, + SEAT_LUMBAR_SIDE_SUPPORT_MOVE = (((0x0B94 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518804 */, + SEAT_HEADREST_HEIGHT_POS = (((0x0B95 + 0x10000000) + 0x01000000) + 0x00400000) /* 289409941 */, + SEAT_HEADREST_HEIGHT_POS_V2 = (((0x0BA4 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518820 */, + SEAT_HEADREST_HEIGHT_MOVE = (((0x0B96 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518806 */, + SEAT_HEADREST_ANGLE_POS = (((0x0B97 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518807 */, + SEAT_HEADREST_ANGLE_MOVE = (((0x0B98 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518808 */, + SEAT_HEADREST_FORE_AFT_POS = (((0x0B99 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518809 */, + SEAT_HEADREST_FORE_AFT_MOVE = (((0x0B9A + 0x10000000) + 0x05000000) + 0x00400000) /* 356518810 */, + SEAT_FOOTWELL_LIGHTS_STATE = (((0x0B9B + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518811 */, + SEAT_FOOTWELL_LIGHTS_SWITCH = (((0x0B9C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518812 */, + SEAT_EASY_ACCESS_ENABLED = (((0x0B9D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 354421661 */, + SEAT_AIRBAG_ENABLED = (((0x0B9E + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 354421662 */, + SEAT_AIRBAGS_DEPLOYED = (((0x0BA5 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518821 */, + SEAT_CUSHION_SIDE_SUPPORT_POS = (((0x0B9F + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518815 */, + SEAT_CUSHION_SIDE_SUPPORT_MOVE = (((0x0BA0 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518816 */, + SEAT_LUMBAR_VERTICAL_POS = (((0x0BA1 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518817 */, + SEAT_LUMBAR_VERTICAL_MOVE = (((0x0BA2 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518818 */, + SEAT_WALK_IN_POS = (((0x0BA3 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518819 */, + SEAT_BELT_PRETENSIONER_DEPLOYED = (((0x0BA6 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 354421670 */, + SEAT_OCCUPANCY = (((0x0BB0 + 0x10000000) + 0x05000000) + 0x00400000) /* 356518832 */, + WINDOW_POS = (((0x0BC0 + 0x10000000) + 0x03000000) + 0x00400000) /* 322964416 */, + WINDOW_MOVE = (((0x0BC1 + 0x10000000) + 0x03000000) + 0x00400000) /* 322964417 */, + WINDOW_LOCK = (((0x0BC4 + 0x10000000) + 0x03000000) + 0x00200000) /* 320867268 */, + WINDSHIELD_WIPERS_PERIOD = (((0x0BC5 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.WINDOW) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 322964421 */, + WINDSHIELD_WIPERS_STATE = (((0x0BC6 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.WINDOW) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 322964422 */, + WINDSHIELD_WIPERS_SWITCH = (((0x0BC7 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.WINDOW) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 322964423 */, + STEERING_WHEEL_DEPTH_POS = (((0x0BE0 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410016 */, + STEERING_WHEEL_DEPTH_MOVE = (((0x0BE1 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410017 */, + STEERING_WHEEL_HEIGHT_POS = (((0x0BE2 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410018 */, + STEERING_WHEEL_HEIGHT_MOVE = (((0x0BE3 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410019 */, + STEERING_WHEEL_THEFT_LOCK_ENABLED = (((0x0BE4 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287312868 */, + STEERING_WHEEL_LOCKED = (((0x0BE5 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287312869 */, + STEERING_WHEEL_EASY_ACCESS_ENABLED = (((0x0BE6 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287312870 */, + GLOVE_BOX_DOOR_POS = (((0x0BF0 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 356518896 */, + GLOVE_BOX_LOCKED = (((0x0BF1 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 354421745 */, + VEHICLE_MAP_SERVICE = (((0x0C00 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299895808 */, + LOCATION_CHARACTERIZATION = (((0x0C10 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410064 */, + ULTRASONICS_SENSOR_POSITION = (((0x0C20 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916128 */, + ULTRASONICS_SENSOR_ORIENTATION = (((0x0C21 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.FLOAT_VEC) /* 409013281 */, + ULTRASONICS_SENSOR_FIELD_OF_VIEW = (((0x0C22 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916130 */, + ULTRASONICS_SENSOR_DETECTION_RANGE = (((0x0C23 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916131 */, + ULTRASONICS_SENSOR_SUPPORTED_RANGES = (((0x0C24 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916132 */, + ULTRASONICS_SENSOR_MEASURED_DISTANCE = (((0x0C25 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916133 */, + OBD2_LIVE_FRAME = (((0x0D00 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896064 */, + OBD2_FREEZE_FRAME = (((0x0D01 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896065 */, + OBD2_FREEZE_FRAME_INFO = (((0x0D02 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896066 */, + OBD2_FREEZE_FRAME_CLEAR = (((0x0D03 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896067 */, + HEADLIGHTS_STATE = (((0x0E00 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410560 */, + HIGH_BEAM_LIGHTS_STATE = (((0x0E01 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410561 */, + FOG_LIGHTS_STATE = (((0x0E02 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410562 */, + HAZARD_LIGHTS_STATE = (((0x0E03 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410563 */, + HEADLIGHTS_SWITCH = (((0x0E10 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410576 */, + HIGH_BEAM_LIGHTS_SWITCH = (((0x0E11 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410577 */, + FOG_LIGHTS_SWITCH = (((0x0E12 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410578 */, + HAZARD_LIGHTS_SWITCH = (((0x0E13 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410579 */, + CABIN_LIGHTS_STATE = (((0x0F01 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410817 */, + CABIN_LIGHTS_SWITCH = (((0x0F02 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410818 */, + READING_LIGHTS_STATE = (((0x0F03 + 0x10000000) + 0x05000000) + 0x00400000) /* 356519683 */, + READING_LIGHTS_SWITCH = (((0x0F04 + 0x10000000) + 0x05000000) + 0x00400000) /* 356519684 */, + STEERING_WHEEL_LIGHTS_STATE = (((0x0F0C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410828 */, + STEERING_WHEEL_LIGHTS_SWITCH = (((0x0F0D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410829 */, + SUPPORT_CUSTOMIZE_VENDOR_PERMISSION = (((0x0F05 + 0x10000000) + 0x01000000) + 0x00200000) /* 287313669 */, + DISABLED_OPTIONAL_FEATURES = (((0x0F06 + 0x10000000) + 0x01000000) + 0x00100000) /* 286265094 */, + INITIAL_USER_INFO = (((0x0F07 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896583 */, + SWITCH_USER = (((0x0F08 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896584 */, + CREATE_USER = (((0x0F09 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896585 */, + REMOVE_USER = (((0x0F0A + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896586 */, + USER_IDENTIFICATION_ASSOCIATION = (((0x0F0B + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896587 */, + EVS_SERVICE_REQUEST = (((0x0F10 + 0x10000000) + 0x01000000) + 0x00410000) /* 289476368 */, + POWER_POLICY_REQ = (((0x0F21 + 0x10000000) + 0x01000000) + 0x00100000) /* 286265121 */, + POWER_POLICY_GROUP_REQ = (((0x0F22 + 0x10000000) + 0x01000000) + 0x00100000) /* 286265122 */, + CURRENT_POWER_POLICY = (((0x0F23 + 0x10000000) + 0x01000000) + 0x00100000) /* 286265123 */, + WATCHDOG_ALIVE = (((0xF31 + 0x10000000) + 0x01000000) + 0x00500000) /* 290459441 */, + WATCHDOG_TERMINATED_PROCESS = (((0x0F32 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896626 */, + VHAL_HEARTBEAT = (((0x0F33 + 0x10000000) + 0x01000000) + 0x00500000) /* 290459443 */, + CLUSTER_SWITCH_UI = (((0x0F34 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410868 */, + CLUSTER_DISPLAY_STATE = (((0x0F35 + 0x10000000) + 0x01000000) + 0x00410000) /* 289476405 */, + CLUSTER_REPORT_STATE = (((0x0F36 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896630 */, + CLUSTER_REQUEST_DISPLAY = (((0x0F37 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410871 */, + CLUSTER_NAVIGATION_STATE = (((0x0F38 + 0x10000000) + 0x01000000) + 0x00700000) /* 292556600 */, + ELECTRONIC_TOLL_COLLECTION_CARD_TYPE = (((0x0F39 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410873 */, + ELECTRONIC_TOLL_COLLECTION_CARD_STATUS = (((0x0F3A + 0x10000000) + 0x01000000) + 0x00400000) /* 289410874 */, + FRONT_FOG_LIGHTS_STATE = (((0x0F3B + 0x10000000) + 0x01000000) + 0x00400000) /* 289410875 */, + FRONT_FOG_LIGHTS_SWITCH = (((0x0F3C + 0x10000000) + 0x01000000) + 0x00400000) /* 289410876 */, + REAR_FOG_LIGHTS_STATE = (((0x0F3D + 0x10000000) + 0x01000000) + 0x00400000) /* 289410877 */, + REAR_FOG_LIGHTS_SWITCH = (((0x0F3E + 0x10000000) + 0x01000000) + 0x00400000) /* 289410878 */, + EV_CHARGE_CURRENT_DRAW_LIMIT = (((0x0F3F + 0x10000000) + 0x01000000) + 0x00600000) /* 291508031 */, + EV_CHARGE_PERCENT_LIMIT = (((0x0F40 + 0x10000000) + 0x01000000) + 0x00600000) /* 291508032 */, + EV_CHARGE_STATE = (((0x0F41 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410881 */, + EV_CHARGE_SWITCH = (((0x0F42 + 0x10000000) + 0x01000000) + 0x00200000) /* 287313730 */, + EV_CHARGE_TIME_REMAINING = (((0x0F43 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410883 */, + EV_REGENERATIVE_BRAKING_STATE = (((0x0F44 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410884 */, + TRAILER_PRESENT = (((0x0F45 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410885 */, + VEHICLE_CURB_WEIGHT = (((0x0F46 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410886 */, + GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT = (((0x0F47 + 0x10000000) + 0x01000000) + 0x00400000) /* 289410887 */, + SUPPORTED_PROPERTY_IDS = (((0x0F48 + 0x10000000) + 0x01000000) + 0x00410000) /* 289476424 */, + SHUTDOWN_REQUEST = (((0x0F49 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410889 */, + VEHICLE_IN_USE = (((0x0F4A + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313738 */, + CLUSTER_HEARTBEAT = (((0x0F4B + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.MIXED) /* 299896651 */, + VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL = (((0x0F4C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410892 */, + CAMERA_SERVICE_CURRENT_STATE = (((0x0F4D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 289476429 */, + AUTOMATIC_EMERGENCY_BRAKING_ENABLED = (((0x1000 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313920 */, + AUTOMATIC_EMERGENCY_BRAKING_STATE = (((0x1001 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411073 */, + FORWARD_COLLISION_WARNING_ENABLED = (((0x1002 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313922 */, + FORWARD_COLLISION_WARNING_STATE = (((0x1003 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411075 */, + BLIND_SPOT_WARNING_ENABLED = (((0x1004 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313924 */, + BLIND_SPOT_WARNING_STATE = (((0x1005 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.MIRROR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 339742725 */, + LANE_DEPARTURE_WARNING_ENABLED = (((0x1006 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313926 */, + LANE_DEPARTURE_WARNING_STATE = (((0x1007 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411079 */, + LANE_KEEP_ASSIST_ENABLED = (((0x1008 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313928 */, + LANE_KEEP_ASSIST_STATE = (((0x1009 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411081 */, + LANE_CENTERING_ASSIST_ENABLED = (((0x100A + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313930 */, + LANE_CENTERING_ASSIST_COMMAND = (((0x100B + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411083 */, + LANE_CENTERING_ASSIST_STATE = (((0x100C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411084 */, + EMERGENCY_LANE_KEEP_ASSIST_ENABLED = (((0x100D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313933 */, + EMERGENCY_LANE_KEEP_ASSIST_STATE = (((0x100E + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411086 */, + CRUISE_CONTROL_ENABLED = (((0x100F + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313935 */, + CRUISE_CONTROL_TYPE = (((0x1010 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411088 */, + CRUISE_CONTROL_STATE = (((0x1011 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411089 */, + CRUISE_CONTROL_COMMAND = (((0x1012 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411090 */, + CRUISE_CONTROL_TARGET_SPEED = (((0x1013 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.FLOAT) /* 291508243 */, + ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP = (((0x1014 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411092 */, + ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE = (((0x1015 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411093 */, + HANDS_ON_DETECTION_ENABLED = (((0x1016 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313942 */, + HANDS_ON_DETECTION_DRIVER_STATE = (((0x1017 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411095 */, + HANDS_ON_DETECTION_WARNING = (((0x1018 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411096 */, + DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED = (((0x1019 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313945 */, + DRIVER_DROWSINESS_ATTENTION_STATE = (((0x101A + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411098 */, + DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED = (((0x101B + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313947 */, + DRIVER_DROWSINESS_ATTENTION_WARNING = (((0x101C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411100 */, + DRIVER_DISTRACTION_SYSTEM_ENABLED = (((0x101D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313949 */, + DRIVER_DISTRACTION_STATE = (((0x101E + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411102 */, + DRIVER_DISTRACTION_WARNING_ENABLED = (((0x101F + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313951 */, + DRIVER_DISTRACTION_WARNING = (((0x1020 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411104 */, + LOW_SPEED_COLLISION_WARNING_ENABLED = (((0x1021 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313953 */, + LOW_SPEED_COLLISION_WARNING_STATE = (((0x1022 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411106 */, + CROSS_TRAFFIC_MONITORING_ENABLED = (((0x1023 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313955 */, + CROSS_TRAFFIC_MONITORING_WARNING_STATE = (((0x1024 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411108 */, + LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED = (((0x1025 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313957 */, + LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE = (((0x1026 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411110 */, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyGroup.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyGroup.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b4f6850bbf0fdce119bc490543929a2d41d9259b --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyGroup.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehiclePropertyGroup { + SYSTEM = 0x10000000, + VENDOR = 0x20000000, + BACKPORTED = 0x30000000, + MASK = 0xf0000000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7525cbbf6979f2e32aaf811ea4df32095f9b6c1a --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehiclePropertyType.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehiclePropertyType { + STRING = 0x00100000, + BOOLEAN = 0x00200000, + INT32 = 0x00400000, + INT32_VEC = 0x00410000, + INT64 = 0x00500000, + INT64_VEC = 0x00510000, + FLOAT = 0x00600000, + FLOAT_VEC = 0x00610000, + BYTES = 0x00700000, + MIXED = 0x00e00000, + MASK = 0x00ff0000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleSeatOccupancyState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleSeatOccupancyState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3e870e89258e67362e1dd8d3501568e5630f7558 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleSeatOccupancyState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleSeatOccupancyState { + UNKNOWN = 0, + VACANT = 1, + OCCUPIED = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleTurnSignal.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleTurnSignal.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0431b45b9add68a511007d651fa33e9d893aa51f --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleTurnSignal.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleTurnSignal { + NONE = 0x00, + RIGHT = 0x01, + LEFT = 0x02, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleUnit.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleUnit.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9aca98bec2c088a1a2520330ea6b43913a3b9476 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleUnit.aidl @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleUnit { + SHOULD_NOT_USE = 0x000, + METER_PER_SEC = 0x01, + RPM = 0x02, + HERTZ = 0x03, + PERCENTILE = 0x10, + MILLIMETER = 0x20, + METER = 0x21, + KILOMETER = 0x23, + MILE = 0x24, + CELSIUS = 0x30, + FAHRENHEIT = 0x31, + KELVIN = 0x32, + MILLILITER = 0x40, + LITER = 0x41, + GALLON = 0x42, + US_GALLON = 0x42, + IMPERIAL_GALLON = 0x43, + NANO_SECS = 0x50, + MILLI_SECS = 0x51, + SECS = 0x53, + YEAR = 0x59, + WATT_HOUR = 0x60, + MILLIAMPERE = 0x61, + MILLIVOLT = 0x62, + MILLIWATTS = 0x63, + AMPERE_HOURS = 0x64, + KILOWATT_HOUR = 0x65, + AMPERE = 0x66, + KILOPASCAL = 0x70, + PSI = 0x71, + BAR = 0x72, + DEGREES = 0x80, + MILES_PER_HOUR = 0x90, + KILOMETERS_PER_HOUR = 0x91, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleVendorPermission.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleVendorPermission.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3aa326c9c795dd0bbcbc0f7d2e7f8a923c2d27bd --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VehicleVendorPermission.aidl @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VehicleVendorPermission { + PERMISSION_DEFAULT = 0x00000000, + PERMISSION_SET_VENDOR_CATEGORY_WINDOW = 0X00000001, + PERMISSION_GET_VENDOR_CATEGORY_WINDOW = 0x00000002, + PERMISSION_SET_VENDOR_CATEGORY_DOOR = 0x00000003, + PERMISSION_GET_VENDOR_CATEGORY_DOOR = 0x00000004, + PERMISSION_SET_VENDOR_CATEGORY_SEAT = 0x00000005, + PERMISSION_GET_VENDOR_CATEGORY_SEAT = 0x00000006, + PERMISSION_SET_VENDOR_CATEGORY_MIRROR = 0x00000007, + PERMISSION_GET_VENDOR_CATEGORY_MIRROR = 0x00000008, + PERMISSION_SET_VENDOR_CATEGORY_INFO = 0x00000009, + PERMISSION_GET_VENDOR_CATEGORY_INFO = 0x0000000A, + PERMISSION_SET_VENDOR_CATEGORY_ENGINE = 0x0000000B, + PERMISSION_GET_VENDOR_CATEGORY_ENGINE = 0x0000000C, + PERMISSION_SET_VENDOR_CATEGORY_HVAC = 0x0000000D, + PERMISSION_GET_VENDOR_CATEGORY_HVAC = 0x0000000E, + PERMISSION_SET_VENDOR_CATEGORY_LIGHT = 0x0000000F, + PERMISSION_GET_VENDOR_CATEGORY_LIGHT = 0x00000010, + PERMISSION_SET_VENDOR_CATEGORY_1 = 0x00010000, + PERMISSION_GET_VENDOR_CATEGORY_1 = 0x00011000, + PERMISSION_SET_VENDOR_CATEGORY_2 = 0x00020000, + PERMISSION_GET_VENDOR_CATEGORY_2 = 0x00021000, + PERMISSION_SET_VENDOR_CATEGORY_3 = 0x00030000, + PERMISSION_GET_VENDOR_CATEGORY_3 = 0x00031000, + PERMISSION_SET_VENDOR_CATEGORY_4 = 0x00040000, + PERMISSION_GET_VENDOR_CATEGORY_4 = 0x00041000, + PERMISSION_SET_VENDOR_CATEGORY_5 = 0x00050000, + PERMISSION_GET_VENDOR_CATEGORY_5 = 0x00051000, + PERMISSION_SET_VENDOR_CATEGORY_6 = 0x00060000, + PERMISSION_GET_VENDOR_CATEGORY_6 = 0x00061000, + PERMISSION_SET_VENDOR_CATEGORY_7 = 0x00070000, + PERMISSION_GET_VENDOR_CATEGORY_7 = 0x00071000, + PERMISSION_SET_VENDOR_CATEGORY_8 = 0x00080000, + PERMISSION_GET_VENDOR_CATEGORY_8 = 0x00081000, + PERMISSION_SET_VENDOR_CATEGORY_9 = 0x00090000, + PERMISSION_GET_VENDOR_CATEGORY_9 = 0x00091000, + PERMISSION_SET_VENDOR_CATEGORY_10 = 0x000A0000, + PERMISSION_GET_VENDOR_CATEGORY_10 = 0x000A1000, + PERMISSION_NOT_ACCESSIBLE = 0xF0000000, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsAvailabilityStateIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsAvailabilityStateIntegerValuesIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0dcfbc4a5dd82f80bea3e7ebb659ec26edc8f25e --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsAvailabilityStateIntegerValuesIndex.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsAvailabilityStateIntegerValuesIndex { + MESSAGE_TYPE = 0, + SEQUENCE_NUMBER = 1, + NUMBER_OF_ASSOCIATED_LAYERS = 2, + LAYERS_START = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsBaseMessageIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsBaseMessageIntegerValuesIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..45514d081aca8d8f722870e3175f0102db7ec912 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsBaseMessageIntegerValuesIndex.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsBaseMessageIntegerValuesIndex { + MESSAGE_TYPE = 0, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageType.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1248c069ce2bb6dbb37fd96a040231968bb3ea9f --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageType.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsMessageType { + SUBSCRIBE = 1, + SUBSCRIBE_TO_PUBLISHER = 2, + UNSUBSCRIBE = 3, + UNSUBSCRIBE_TO_PUBLISHER = 4, + OFFERING = 5, + AVAILABILITY_REQUEST = 6, + SUBSCRIPTIONS_REQUEST = 7, + AVAILABILITY_RESPONSE = 8, + AVAILABILITY_CHANGE = 9, + SUBSCRIPTIONS_RESPONSE = 10, + SUBSCRIPTIONS_CHANGE = 11, + DATA = 12, + PUBLISHER_ID_REQUEST = 13, + PUBLISHER_ID_RESPONSE = 14, + PUBLISHER_INFORMATION_REQUEST = 15, + PUBLISHER_INFORMATION_RESPONSE = 16, + START_SESSION = 17, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerAndPublisherIdIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerAndPublisherIdIntegerValuesIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8b0e3a5ef2bdc1d31dc21c3bf6dc628e096b0d77 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerAndPublisherIdIntegerValuesIndex.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsMessageWithLayerAndPublisherIdIntegerValuesIndex { + MESSAGE_TYPE = 0, + LAYER_TYPE = 1, + LAYER_SUBTYPE = 2, + LAYER_VERSION = 3, + PUBLISHER_ID = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerIntegerValuesIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..65dd4ae39556a261192e0fd80098dfe668403cd7 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsMessageWithLayerIntegerValuesIndex.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsMessageWithLayerIntegerValuesIndex { + MESSAGE_TYPE = 0, + LAYER_TYPE = 1, + LAYER_SUBTYPE = 2, + LAYER_VERSION = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsOfferingMessageIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsOfferingMessageIntegerValuesIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fc2a9c18446f8afe247cfc8e89c3f96c8bbadf97 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsOfferingMessageIntegerValuesIndex.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsOfferingMessageIntegerValuesIndex { + MESSAGE_TYPE = 0, + PUBLISHER_ID = 1, + NUMBER_OF_OFFERS = 2, + OFFERING_START = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsPublisherInformationIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsPublisherInformationIntegerValuesIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a9b017fdb10f5679ce36eb90f810135ff3e982a7 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsPublisherInformationIntegerValuesIndex.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsPublisherInformationIntegerValuesIndex { + MESSAGE_TYPE = 0, + PUBLISHER_ID = 1, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsStartSessionMessageIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsStartSessionMessageIntegerValuesIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d942bc8392f29c7d4d761bd8342c6e22a83b39d0 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsStartSessionMessageIntegerValuesIndex.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsStartSessionMessageIntegerValuesIndex { + MESSAGE_TYPE = 0, + SERVICE_ID = 1, + CLIENT_ID = 2, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsSubscriptionsStateIntegerValuesIndex.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsSubscriptionsStateIntegerValuesIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..796d7f722c5d88ceced8f78faafb6cfb9adf8d53 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/VmsSubscriptionsStateIntegerValuesIndex.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum VmsSubscriptionsStateIntegerValuesIndex { + MESSAGE_TYPE = 0, + SEQUENCE_NUMBER = 1, + NUMBER_OF_LAYERS = 2, + NUMBER_OF_ASSOCIATED_LAYERS = 3, + SUBSCRIPTIONS_START = 4, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d0c1e8d70d99d0e9618f16f7ca0df21ce2ec615b --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum WindshieldWipersState { + OTHER = 0, + OFF = 1, + ON = 2, + SERVICE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersSwitch.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersSwitch.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6c170fe6a4300f959e2026042f98ef2d65728397 --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/3/android/hardware/automotive/vehicle/WindshieldWipersSwitch.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum WindshieldWipersSwitch { + OTHER = 0, + OFF = 1, + MIST = 2, + INTERMITTENT_LEVEL_1 = 3, + INTERMITTENT_LEVEL_2 = 4, + INTERMITTENT_LEVEL_3 = 5, + INTERMITTENT_LEVEL_4 = 6, + INTERMITTENT_LEVEL_5 = 7, + CONTINUOUS_LEVEL_1 = 8, + CONTINUOUS_LEVEL_2 = 9, + CONTINUOUS_LEVEL_3 = 10, + CONTINUOUS_LEVEL_4 = 11, + CONTINUOUS_LEVEL_5 = 12, + AUTO = 13, + SERVICE = 14, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/CameraServiceState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/CameraServiceState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..84f5ec70d5542b0264f11789d0b2d22eb94ea39e --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/CameraServiceState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum CameraServiceState { + UNAVAILABLE = 0, + INACTIVE = 1, + REQUESTED = 2, + ACTIVE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..70014e1dda941ecc17399e1e7fb71efed20cd30e --- /dev/null +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.automotive.vehicle; +@Backing(type="int") @VintfStability +enum LowSpeedAutomaticEmergencyBrakingState { + OTHER = 0, + ENABLED = 1, + ACTIVATED = 2, + USER_OVERRIDE = 3, +} diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl index 9720aca787374de1666a3b48855b35ab7a3c75b0..55af2ab0fa0f782dc5ebf82497dd3929f82985ec 100644 --- a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl @@ -37,4 +37,5 @@ enum VehicleApPowerBootupReason { USER_POWER_ON = 0, SYSTEM_USER_DETECTION = 1, SYSTEM_REMOTE_ACCESS = 2, + SYSTEM_ENTER_GARAGE_MODE = 3, } diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl index efae92f8abcc05c3968221f7d42827ec6216b11e..be8d3ac6ab1692b9663aea5f4c1665643d97590c 100644 --- a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -123,6 +123,7 @@ enum VehicleProperty { DISPLAY_BRIGHTNESS = (((0x0A03 + 0x10000000) + 0x01000000) + 0x00400000) /* 289409539 */, PER_DISPLAY_BRIGHTNESS = (((0x0A04 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475076 */, VALET_MODE_ENABLED = (((0x0A05 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287312389 */, + HEAD_UP_DISPLAY_ENABLED = (((0x0A06 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 354421254 */, HW_KEY_INPUT = (((0x0A10 + 0x10000000) + 0x01000000) + 0x00410000) /* 289475088 */, HW_KEY_INPUT_V2 = (((0x0A11 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.MIXED) /* 367004177 */, HW_MOTION_INPUT = (((0x0A12 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.SEAT) + android.hardware.automotive.vehicle.VehiclePropertyType.MIXED) /* 367004178 */, @@ -198,10 +199,11 @@ enum VehicleProperty { VEHICLE_MAP_SERVICE = (((0x0C00 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299895808 */, LOCATION_CHARACTERIZATION = (((0x0C10 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410064 */, ULTRASONICS_SENSOR_POSITION = (((0x0C20 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916128 */, - ULTRASONICS_SENSOR_ORIENTATION = (((0x0C21 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916129 */, + ULTRASONICS_SENSOR_ORIENTATION = (((0x0C21 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.FLOAT_VEC) /* 409013281 */, ULTRASONICS_SENSOR_FIELD_OF_VIEW = (((0x0C22 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916130 */, ULTRASONICS_SENSOR_DETECTION_RANGE = (((0x0C23 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916131 */, ULTRASONICS_SENSOR_SUPPORTED_RANGES = (((0x0C24 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916132 */, + ULTRASONICS_SENSOR_MEASURED_DISTANCE = (((0x0C25 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.VENDOR) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 406916133 */, OBD2_LIVE_FRAME = (((0x0D00 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896064 */, OBD2_FREEZE_FRAME = (((0x0D01 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896065 */, OBD2_FREEZE_FRAME_INFO = (((0x0D02 + 0x10000000) + 0x01000000) + 0x00e00000) /* 299896066 */, @@ -259,6 +261,7 @@ enum VehicleProperty { VEHICLE_IN_USE = (((0x0F4A + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313738 */, CLUSTER_HEARTBEAT = (((0x0F4B + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.MIXED) /* 299896651 */, VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL = (((0x0F4C + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289410892 */, + CAMERA_SERVICE_CURRENT_STATE = (((0x0F4D + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32_VEC) /* 289476429 */, AUTOMATIC_EMERGENCY_BRAKING_ENABLED = (((0x1000 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313920 */, AUTOMATIC_EMERGENCY_BRAKING_STATE = (((0x1001 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411073 */, FORWARD_COLLISION_WARNING_ENABLED = (((0x1002 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313922 */, @@ -296,4 +299,6 @@ enum VehicleProperty { LOW_SPEED_COLLISION_WARNING_STATE = (((0x1022 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411106 */, CROSS_TRAFFIC_MONITORING_ENABLED = (((0x1023 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313955 */, CROSS_TRAFFIC_MONITORING_WARNING_STATE = (((0x1024 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411108 */, + LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED = (((0x1025 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313957 */, + LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE = (((0x1026 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411110 */, } diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/CameraServiceState.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/CameraServiceState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0e0191367fc7d9357a28d7cb7387e9473e8ac291 --- /dev/null +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/CameraServiceState.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.automotive.vehicle; + +/** + * Used by CAMERA_SERVICE_CURRENT_STATE to describe current state of CarEvsService types. + * + * This is consistent with CarEvsManager.SERVICE_STATE_* constants. + */ +@VintfStability +@Backing(type="int") +enum CameraServiceState { + /** + * State that a corresponding service type is not available. + */ + UNAVAILABLE = 0, + + /** + * State that a corresponding service type is inactive; it's available but not used + * by any clients yet. + */ + INACTIVE = 1, + + /** + * State that CarEvsService requested launching a registered activity; the service is waiting + * for a video request from it. + */ + REQUESTED = 2, + + /** + * State that a corresponding service type is actively being used. + */ + ACTIVE = 3, +} diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..978da25d151eab0a72af90bd7c67ebe7978869c1 --- /dev/null +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/LowSpeedAutomaticEmergencyBrakingState.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.automotive.vehicle; + +/** + * Used to enumerate the state of Low Speed Automatic Emergency Braking. + */ +@VintfStability +@Backing(type="int") +enum LowSpeedAutomaticEmergencyBrakingState { + + /** + * This state is used as an alternative to any LowSpeedAutomaticEmergencyBrakingState value that + * is not defined in the platform. Ideally, implementations of + * VehicleProperty#LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE should not use this state. The + * framework can use this field to remain backwards compatible if + * LowSpeedAutomaticEmergencyBrakingState is extended to include additional states. + */ + OTHER = 0, + /** + * Low Speed Automatic Emergency Braking is enabled and monitoring safety, but brakes are not + * activated. + */ + ENABLED = 1, + /** + * Low Speed Automatic Emergency Braking is enabled and currently has the brakes applied for the + * vehicle. + */ + ACTIVATED = 2, + /** + * Many Low Speed Automatic Emergency Braking implementations allow the driver to override Low + * Speed Automatic Emergency Braking. This means that the car has determined it should brake, + * but a user decides to take over and do something else. This is often done for safety reasons + * and to ensure that the driver can always take control of the vehicle. This state should be + * set when the user is actively overriding the low speed automatic emergency braking system. + */ + USER_OVERRIDE = 3, +} diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl index e325b380b72aea8b84283011990e4ff19e57fedd..8c8c2daefb76f196e2ea74ae0bfb93888827950d 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerBootupReason.aidl @@ -34,7 +34,24 @@ enum VehicleApPowerBootupReason { SYSTEM_USER_DETECTION = 1, /** * Automatic power on to execute a remote task. This is triggered by - * receiving a wakeup message from TCU wakeup client. + * receiving a wakeup message from an external system in the vehicle. */ SYSTEM_REMOTE_ACCESS = 2, + /** + * Automatic power on to enter garage mode. This is triggered by + * receiving a wakeup message from an external system in the vehicle. + * + * Note that this does not necessarily mean Android will enter + * the garage mode since user may enter the vehicle after this is set. + * The system will only enter garage mode if VEHICLE_IN_USE is not true + * upon check. + * + * To consider the Time-Of-Check-Time-Of-Use issue, there is a slight chance + * that the vehicle become in-use after car service does the VEHICLE_IN_USE + * check. The external power controller must also check whether the vehicle + * is in use upon receiving the SHUTDOWN_REQUEST, before sending out + * SHUTDOWN_PREPARE, to make sure the system does not enter garage mode or + * shutdown if the vehicle is currently in use. + */ + SYSTEM_ENTER_GARAGE_MODE = 3, } diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl index 923d42aef19e3b2f1a61b2e7d2d87a74d9882e11..538b905671d0f79ada3d3daf623627b592c85f2e 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleApPowerStateShutdownParam.aidl @@ -20,33 +20,39 @@ package android.hardware.automotive.vehicle; @Backing(type="int") enum VehicleApPowerStateShutdownParam { /** - * AP must shutdown immediately. Postponing is not allowed. + * AP must shutdown without Garage mode. + * If AP need to shutdown as soon as possible, EMERGENCY_SHUTDOWN shall be used. */ SHUTDOWN_IMMEDIATELY = 1, /** * AP can enter deep sleep instead of shutting down completely. + * AP can postpone entering deep sleep to run Garage mode. */ CAN_SLEEP = 2, /** - * AP can only shutdown with postponing allowed. + * AP can only shutdown. + * AP can postpone shutdown to run Garage mode. */ SHUTDOWN_ONLY = 3, /** - * AP may enter deep sleep, but must either sleep or shut down immediately. - * Postponing is not allowed. + * AP can enter deep sleep, without Garage mode. + * Depending on the actual implementation, it may shut down immediately */ SLEEP_IMMEDIATELY = 4, /** - * AP must hibernate (suspend to disk) immediately. Postponing is not allowed. - * Depending on the actual implementation, it may shut down immediately + * AP can hibernate (suspend to disk) without Garage mode. + * Depending on the actual implementation, it may shut down immediately. */ HIBERNATE_IMMEDIATELY = 5, /** * AP can enter hibernation (suspend to disk) instead of shutting down completely. + * AP can postpone hibernation to run Garage mode. */ CAN_HIBERNATE = 6, /** - * AP must shutdown (gracefully) without a delay. + * AP must shutdown (gracefully) without a delay. AP cannot run Garage mode. + * This type must be used only in critical situations when AP must shutdown as soon as possible. + * CarService will only notify listeners, but will not wait for completion reports. */ EMERGENCY_SHUTDOWN = 7, } diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl index acb6aeb5a1b870e960a4118f9f296d21cc8aa023..6f5c0c1aafca7744d21ced56926f312155379dc7 100644 --- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl +++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl @@ -52,6 +52,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ INFO_VIN = 0x0100 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING @@ -60,6 +61,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ INFO_MAKE = 0x0101 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING @@ -68,15 +70,17 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ INFO_MODEL = 0x0102 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING /** - * Model year of vehicle. + * Model year of vehicle in YYYY format based on the Gregorian calendar. * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:YEAR + * @unit VehicleUnit.YEAR + * @version 2 */ INFO_MODEL_YEAR = 0x0103 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -85,7 +89,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLILITER + * @unit VehicleUnit.MILLILITER + * @version 2 */ INFO_FUEL_CAPACITY = 0x0104 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -105,6 +110,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @data_enum FuelType + * @version 2 */ INFO_FUEL_TYPE = 0x0105 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -118,7 +124,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:WH + * @unit VehicleUnit.WATT_HOUR + * @version 2 */ INFO_EV_BATTERY_CAPACITY = 0x0106 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -128,6 +135,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @data_enum EvConnectorType * @access VehiclePropertyAccess.READ + * @version 2 */ INFO_EV_CONNECTOR_TYPE = 0x0107 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -137,6 +145,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @data_enum PortLocationType * @access VehiclePropertyAccess.READ + * @version 2 */ INFO_FUEL_DOOR_LOCATION = 0x0108 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -146,6 +155,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @data_enum PortLocationType + * @version 2 */ INFO_EV_PORT_LOCATION = 0x0109 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -156,6 +166,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @data_enum VehicleAreaSeat * @access VehiclePropertyAccess.READ + * @version 2 */ INFO_DRIVER_SEAT = 0x010A + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -173,7 +184,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLIMETER + * @unit VehicleUnit.MILLIMETER + * @version 2 */ INFO_EXTERIOR_DIMENSIONS = 0x010B + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -189,6 +201,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @data_enum PortLocationType + * @version 2 */ INFO_MULTI_EV_PORT_LOCATIONS = 0x010C + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -197,7 +210,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:KILOMETER + * @unit VehicleUnit.KILOMETER + * @version 2 */ PERF_ODOMETER = 0x0204 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -212,7 +226,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:METER_PER_SEC + * @unit VehicleUnit.METER_PER_SEC + * @version 2 */ PERF_VEHICLE_SPEED = 0x0207 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -224,7 +239,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:METER_PER_SEC + * @unit VehicleUnit.METER_PER_SEC + * @version 2 */ PERF_VEHICLE_SPEED_DISPLAY = 0x0208 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -235,7 +251,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:DEGREES + * @unit VehicleUnit.DEGREES + * @version 2 */ PERF_STEERING_ANGLE = 0x0209 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -246,7 +263,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:DEGREES + * @unit VehicleUnit.DEGREES + * @version 2 */ PERF_REAR_STEERING_ANGLE = 0x0210 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -255,7 +273,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:CELSIUS + * @unit VehicleUnit.CELSIUS + * @version 2 */ ENGINE_COOLANT_TEMP = 0x0301 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -265,6 +284,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleOilLevel + * @version 2 */ ENGINE_OIL_LEVEL = 0x0303 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -273,7 +293,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:CELSIUS + * @unit VehicleUnit.CELSIUS + * @version 2 */ ENGINE_OIL_TEMP = 0x0304 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -282,7 +303,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:RPM + * @unit VehicleUnit.RPM + * @version 2 */ ENGINE_RPM = 0x0305 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -323,6 +345,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ + * @version 2 */ WHEEL_TICK = 0x0306 + 0x10000000 + 0x01000000 + 0x00510000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT64_VEC @@ -333,7 +356,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLILITER + * @unit VehicleUnit.MILLILITER + * @version 2 */ FUEL_LEVEL = 0x0307 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -346,6 +370,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ FUEL_DOOR_OPEN = 0x0308 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -358,7 +383,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:WH + * @unit VehicleUnit.WATT_HOUR + * @version 2 */ EV_BATTERY_LEVEL = 0x0309 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -372,7 +398,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:WH + * @unit VehicleUnit.WATT_HOUR + * @version 2 */ EV_CURRENT_BATTERY_CAPACITY = 0x030D + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.FLOAT, @@ -385,6 +412,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ EV_CHARGE_PORT_OPEN = 0x030A + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -393,6 +421,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ EV_CHARGE_PORT_CONNECTED = 0x030B + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -404,7 +433,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MW + * @unit VehicleUnit.MILLIWATTS + * @version 2 */ EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = 0x030C + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -422,7 +452,8 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:METER + * @unit VehicleUnit.METER + * @version 2 */ RANGE_REMAINING = 0x0308 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -435,7 +466,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:CELSIUS + * @unit VehicleUnit.CELSIUS + * @version 3 */ EV_BATTERY_AVERAGE_TEMPERATURE = 0x030E + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.FLOAT, @@ -462,7 +494,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:KILOPASCAL + * @unit VehicleUnit.KILOPASCAL + * @version 2 */ TIRE_PRESSURE = 0x0309 + 0x10000000 + 0x07000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WHEEL,VehiclePropertyType:FLOAT @@ -477,7 +510,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:KILOPASCAL + * @unit VehicleUnit.KILOPASCAL + * @version 2 */ CRITICALLY_LOW_TIRE_PRESSURE = 0x030A + 0x10000000 + 0x07000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WHEEL,VehiclePropertyType:FLOAT @@ -493,6 +527,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ ENGINE_IDLE_AUTO_STOP_ENABLED = 0x0320 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -509,6 +544,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum ImpactSensorLocation + * @version 3 */ IMPACT_DETECTED = 0x0330 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -529,6 +565,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleGear + * @version 2 */ GEAR_SELECTION = 0x0400 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -548,6 +585,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleGear + * @version 2 */ CURRENT_GEAR = 0x0401 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -559,6 +597,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ PARKING_BRAKE_ON = 0x0402 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -576,6 +615,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ PARKING_BRAKE_AUTO_APPLY = 0x0403 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -594,6 +634,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ EV_BRAKE_REGENERATION_LEVEL = 0x040C + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -612,6 +653,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ FUEL_LEVEL_LOW = 0x0405 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -624,6 +666,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ NIGHT_MODE = 0x0407 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -633,6 +676,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleTurnSignal + * @version 2 */ TURN_SIGNAL_STATE = 0x0408 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -642,6 +686,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleIgnitionState + * @version 2 */ IGNITION_STATE = 0x0409 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -654,6 +699,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ ABS_ACTIVE = 0x040A + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -666,6 +712,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ TRACTION_CONTROL_ACTIVE = 0x040B + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -684,6 +731,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum EvStoppingMode + * @version 2 */ EV_STOPPING_MODE = 0x040D + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -705,6 +753,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ ELECTRONIC_STABILITY_CONTROL_ENABLED = 0x040E + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -723,6 +772,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum ElectronicStabilityControlState * @data_enum ErrorState + * @version 2 */ ELECTRONIC_STABILITY_CONTROL_STATE = 0x040F + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -789,6 +839,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_FAN_SPEED = 0x0500 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -802,6 +853,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleHvacFanDirection + * @version 2 */ HVAC_FAN_DIRECTION = 0x0501 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -810,7 +862,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:CELSIUS + * @unit VehicleUnit.CELSIUS + * @version 2 */ HVAC_TEMPERATURE_CURRENT = 0x0502 + 0x10000000 + 0x05000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:FLOAT @@ -841,7 +894,8 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:CELSIUS + * @unit VehicleUnit.CELSIUS + * @version 2 */ HVAC_TEMPERATURE_SET = 0x0503 + 0x10000000 + 0x05000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:FLOAT @@ -854,6 +908,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_DEFROSTER = 0x0504 + 0x10000000 + 0x03000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:BOOLEAN @@ -867,6 +922,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @config_flags Supported areaIds + * @version 2 */ HVAC_AC_ON = 0x0505 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -884,6 +940,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_MAX_AC_ON = 0x0506 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -907,6 +964,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_MAX_DEFROST_ON = 0x0507 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -924,6 +982,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_RECIRC_ON = 0x0508 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -963,6 +1022,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_DUAL_ON = 0x0509 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -985,6 +1045,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_AUTO_ON = 0x050A + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -1007,6 +1068,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_SEAT_TEMPERATURE = 0x050B + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -1030,6 +1092,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_SIDE_MIRROR_HEAT = 0x050C + 0x10000000 + 0x04000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:MIRROR,VehiclePropertyType:INT32 @@ -1053,6 +1116,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_STEERING_WHEEL_HEAT = 0x050D + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1066,7 +1130,7 @@ enum VehicleProperty { * configArray[1] = FAHRENHEIT * * This parameter MAY be used for displaying any HVAC temperature in the system. - * Values must be one of VehicleUnit::CELSIUS or VehicleUnit::FAHRENHEIT + * Values must be one of VehicleUnit.CELSIUS or VehicleUnit.FAHRENHEIT * Note that internally, all temperatures are represented in floating point Celsius. * * If updating HVAC_TEMPERATURE_DISPLAY_UNITS affects the values of other *_DISPLAY_UNITS @@ -1079,6 +1143,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleUnit + * @version 2 */ HVAC_TEMPERATURE_DISPLAY_UNITS = 0x050E + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1087,6 +1152,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_ACTUAL_FAN_SPEED_RPM = 0x050F + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -1133,6 +1199,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_POWER_ON = 0x0510 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -1152,6 +1219,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @data_enum VehicleHvacFanDirection + * @version 2 */ HVAC_FAN_DIRECTION_AVAILABLE = 0x0511 + 0x10000000 + 0x05000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32_VEC @@ -1168,6 +1236,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_AUTO_RECIRC_ON = 0x0512 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -1193,6 +1262,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_SEAT_VENTILATION = 0x0513 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -1205,6 +1275,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HVAC_ELECTRIC_DEFROSTER_ON = 0x0514 + 0x10000000 + 0x03000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:BOOLEAN @@ -1216,7 +1287,7 @@ enum VehicleProperty { * * floatValues[0] = the requested value that an application wants to set a temperature to. * floatValues[1] = the unit for floatValues[0]. It should be one of - * {VehicleUnit:CELSIUS, VehicleUnit:FAHRENHEIT}. + * {VehicleUnit.CELSIUS, VehicleUnit.FAHRENHEIT}. * floatValues[2] = the value OEMs suggested in CELSIUS. This value is not included * in the request. * floatValues[3] = the value OEMs suggested in FAHRENHEIT. This value is not included @@ -1229,22 +1300,23 @@ enum VehicleProperty { * For example, when a user uses the voice assistant to set HVAC temperature to 66.2 in * Fahrenheit. * First, an application will set this property with the value - * [66.2, (float)VehicleUnit:FAHRENHEIT,0,0]. + * [66.2, (float)VehicleUnit.FAHRENHEIT,0,0]. * If OEMs suggest to set 19.0 in Celsius or 66.5 in Fahrenheit for user's request, then VHAL * must generate a callback with property value - * [66.2, (float)VehicleUnit:FAHRENHEIT, 19.0, 66.5]. After the voice assistant gets the + * [66.2, (float)VehicleUnit.FAHRENHEIT, 19.0, 66.5]. After the voice assistant gets the * callback, it will inform the user and set HVAC temperature to the suggested value. * * Another example, an application receives 21 Celsius as the current temperature value by * querying HVC_TEMPERATURE_SET. But the application wants to know what value is displayed on * the car's UI in Fahrenheit. - * For this, the application sets the property to [21, (float)VehicleUnit:CELSIUS, 0, 0]. If + * For this, the application sets the property to [21, (float)VehicleUnit.CELSIUS, 0, 0]. If * the suggested value by the OEM for 21 Celsius is 70 Fahrenheit, then VHAL must generate a - * callback with property value [21, (float)VehicleUnit:CELSIUS, 21.0, 70.0]. + * callback with property value [21, (float)VehicleUnit.CELSIUS, 21.0, 70.0]. * In this case, the application can know that the value is 70.0 Fahrenheit in the car’s UI. * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ HVAC_TEMPERATURE_VALUE_SUGGESTION = 0x0515 + 0x10000000 + 0x01000000 + 0x00610000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT_VEC @@ -1270,6 +1342,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleUnit + * @version 2 */ DISTANCE_DISPLAY_UNITS = 0x0600 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1294,6 +1367,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleUnit + * @version 2 */ FUEL_VOLUME_DISPLAY_UNITS = 0x0601 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1319,6 +1393,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleUnit + * @version 2 */ TIRE_PRESSURE_DISPLAY_UNITS = 0x0602 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1344,6 +1419,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleUnit + * @version 2 */ EV_BATTERY_DISPLAY_UNITS = 0x0603 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1360,6 +1436,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = 0x0604 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -1383,6 +1460,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ VEHICLE_SPEED_DISPLAY_UNITS = 0x0605 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1426,7 +1504,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLI_SECS + * @unit VehicleUnit.MILLI_SECS + * @version 2 */ EXTERNAL_CAR_TIME = 0x0608 + 0x10000000 // VehiclePropertyGroup:SYSTEM + 0x01000000 // VehicleArea:GLOBAL @@ -1455,7 +1534,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE - * @unit VehicleUnit:MILLI_SECS + * @unit VehicleUnit.MILLI_SECS + * @version 2 */ ANDROID_EPOCH_TIME = 0x0606 + 0x10000000 + 0x01000000 + 0x00500000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT64 @@ -1470,6 +1550,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ STORAGE_ENCRYPTION_BINDING_SEED = 0x0607 + 0x10000000 + 0x01000000 + 0x00700000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BYTES @@ -1478,7 +1559,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:CELSIUS + * @unit VehicleUnit.CELSIUS + * @version 2 */ ENV_OUTSIDE_TEMPERATURE = 0x0703 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -1497,6 +1579,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ AP_POWER_STATE_REQ = 0x0A00 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -1511,6 +1594,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ AP_POWER_STATE_REPORT = 0x0A01 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -1525,6 +1609,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ AP_POWER_BOOTUP_REASON = 0x0A02 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1547,6 +1632,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ DISPLAY_BRIGHTNESS = 0x0A03 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -1570,6 +1656,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ PER_DISPLAY_BRIGHTNESS = 0x0A04 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -1586,9 +1673,27 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ VALET_MODE_ENABLED = 0x0A05 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, + /** + * Head up display (HUD) enabled + * + * This property allows the user to turn on/off the HUD for their seat. + * + * Each HUD in the vehicle should be assigned to the seat that is intended to use it. For + * example, if there is a single HUD in the vehicle that is used by the driver so that they no + * longer need to continuously look at the instrument cluster, then this property should be + * defined with a single area ID equal to the driver's seat area value. + * + * @change_mode VehiclePropertyChangeMode.ON_CHANGE + * @access VehiclePropertyAccess.READ_WRITE + * @access VehiclePropertyAccess.READ + * @version 3 + */ + HEAD_UP_DISPLAY_ENABLED = + 0x0A06 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.BOOLEAN, /** * Property to feed H/W input events to android * @@ -1603,6 +1708,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @config_flags + * @version 2 */ HW_KEY_INPUT = 0x0A10 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -1625,6 +1731,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @config_flags + * @version 2 */ HW_KEY_INPUT_V2 = 0x0A11 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.MIXED, @@ -1659,6 +1766,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @config_flags + * @version 2 */ HW_MOTION_INPUT = 0x0A12 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.MIXED, @@ -1682,6 +1790,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @data_enum RotaryInputType * @access VehiclePropertyAccess.READ + * @version 2 */ HW_ROTARY_INPUT = 0x0A20 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -1705,6 +1814,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @data_enum CustomInputType * @access VehiclePropertyAccess.READ + * @version 2 */ HW_CUSTOM_INPUT = 0X0A30 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -1749,6 +1859,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ DOOR_POS = 0x0B00 + 0x10000000 + 0x06000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:DOOR,VehiclePropertyType:INT32 @@ -1774,6 +1885,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ DOOR_MOVE = 0x0B01 + 0x10000000 + 0x06000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:DOOR,VehiclePropertyType:INT32 @@ -1788,6 +1900,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ DOOR_LOCK = 0x0B02 + 0x10000000 + 0x06000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:DOOR,VehiclePropertyType:BOOLEAN @@ -1804,6 +1917,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ DOOR_CHILD_LOCK_ENABLED = 0x0B03 + VehiclePropertyGroup.SYSTEM + VehicleArea.DOOR + VehiclePropertyType.BOOLEAN, @@ -1830,6 +1944,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_Z_POS = 0x0B40 + 0x10000000 + 0x04000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:MIRROR,VehiclePropertyType:INT32 @@ -1856,6 +1971,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_Z_MOVE = 0x0B41 + 0x10000000 + 0x04000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:MIRROR,VehiclePropertyType:INT32 @@ -1882,6 +1998,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_Y_POS = 0x0B42 + 0x10000000 + 0x04000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:MIRROR,VehiclePropertyType:INT32 @@ -1907,6 +2024,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_Y_MOVE = 0x0B43 + 0x10000000 + 0x04000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:MIRROR,VehiclePropertyType:INT32 @@ -1921,6 +2039,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_LOCK = 0x0B44 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -1935,6 +2054,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_FOLD = 0x0B45 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -1952,6 +2072,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_AUTO_FOLD_ENABLED = @@ -1970,6 +2091,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ MIRROR_AUTO_TILT_ENABLED = @@ -1989,6 +2111,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ SEAT_MEMORY_SELECT = 0x0B80 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2002,6 +2125,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ SEAT_MEMORY_SET = 0x0B81 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2019,6 +2143,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BELT_BUCKLED = 0x0B82 + 0x10000000 + 0x05000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:BOOLEAN @@ -2044,6 +2169,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BELT_HEIGHT_POS = 0x0B83 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2072,6 +2198,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BELT_HEIGHT_MOVE = 0x0B84 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2097,6 +2224,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_FORE_AFT_POS = 0x0B85 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2124,6 +2252,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_FORE_AFT_MOVE = 0x0B86 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2151,6 +2280,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BACKREST_ANGLE_1_POS = 0x0B87 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2178,6 +2308,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BACKREST_ANGLE_1_MOVE = 0x0B88 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2207,6 +2338,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BACKREST_ANGLE_2_POS = 0x0B89 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2234,6 +2366,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_BACKREST_ANGLE_2_MOVE = 0x0B8A + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2257,6 +2390,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEIGHT_POS = 0x0B8B + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2282,6 +2416,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEIGHT_MOVE = 0x0B8C + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2310,6 +2445,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_DEPTH_POS = 0x0B8D + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2336,6 +2472,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_DEPTH_MOVE = 0x0B8E + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2363,6 +2500,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_TILT_POS = 0x0B8F + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2390,6 +2528,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_TILT_MOVE = 0x0B90 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2415,6 +2554,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_LUMBAR_FORE_AFT_POS = 0x0B91 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2443,6 +2583,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_LUMBAR_FORE_AFT_MOVE = 0x0B92 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2468,6 +2609,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_LUMBAR_SIDE_SUPPORT_POS = 0x0B93 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2496,6 +2638,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 0x0B94 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2516,6 +2659,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_HEIGHT_POS = 0x0B95 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -2543,6 +2687,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_HEIGHT_POS_V2 = 0x0BA4 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2572,6 +2717,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_HEIGHT_MOVE = 0x0B96 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2595,6 +2741,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_ANGLE_POS = 0x0B97 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2623,6 +2770,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_ANGLE_MOVE = 0x0B98 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2646,6 +2794,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_FORE_AFT_POS = 0x0B99 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2674,6 +2823,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_HEADREST_FORE_AFT_MOVE = 0x0B9A + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2695,6 +2845,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ SEAT_FOOTWELL_LIGHTS_STATE = 0x0B9B + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2720,6 +2871,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ SEAT_FOOTWELL_LIGHTS_SWITCH = 0x0B9C + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2736,6 +2888,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_EASY_ACCESS_ENABLED = 0x0B9D + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.BOOLEAN, @@ -2756,6 +2909,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ SEAT_AIRBAG_ENABLED = 0x0B9E + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.BOOLEAN, @@ -2778,6 +2932,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleAirbagLocation + * @version 2 */ SEAT_AIRBAGS_DEPLOYED = 0x0BA5 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2803,6 +2958,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_CUSHION_SIDE_SUPPORT_POS = 0x0B9F + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2831,6 +2987,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_CUSHION_SIDE_SUPPORT_MOVE = 0x0BA0 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2854,6 +3011,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_LUMBAR_VERTICAL_POS = 0x0BA1 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2880,6 +3038,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_LUMBAR_VERTICAL_MOVE = 0x0BA2 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2906,6 +3065,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ SEAT_WALK_IN_POS = 0x0BA3 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -2924,6 +3084,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 3 */ SEAT_BELT_PRETENSIONER_DEPLOYED = 0x0BA6 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.BOOLEAN, @@ -2936,6 +3097,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleSeatOccupancyState + * @version 2 */ SEAT_OCCUPANCY = 0x0BB0 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -2972,6 +3134,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ WINDOW_POS = 0x0BC0 + 0x10000000 + 0x03000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:INT32 @@ -3014,6 +3177,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ WINDOW_MOVE = 0x0BC1 + 0x10000000 + 0x03000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:INT32 @@ -3028,6 +3192,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ WINDOW_LOCK = 0x0BC4 + 0x10000000 + 0x03000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:WINDOW,VehiclePropertyType:BOOLEAN @@ -3047,7 +3212,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLI_SECS + * @unit VehicleUnit.MILLI_SECS + * @version 2 */ WINDSHIELD_WIPERS_PERIOD = 0x0BC5 + VehiclePropertyGroup.SYSTEM + VehicleArea.WINDOW + VehiclePropertyType.INT32, @@ -3069,6 +3235,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum WindshieldWipersState + * @version 2 */ WINDSHIELD_WIPERS_STATE = 0x0BC6 + VehiclePropertyGroup.SYSTEM + VehicleArea.WINDOW + VehiclePropertyType.INT32, @@ -3095,6 +3262,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum WindshieldWipersSwitch + * @version 2 */ WINDSHIELD_WIPERS_SWITCH = 0x0BC7 + VehiclePropertyGroup.SYSTEM + VehicleArea.WINDOW + VehiclePropertyType.INT32, @@ -3121,6 +3289,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_DEPTH_POS = 0x0BE0 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3147,6 +3316,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_DEPTH_MOVE = 0x0BE1 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3170,6 +3340,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_HEIGHT_POS = 0x0BE2 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3196,6 +3367,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_HEIGHT_MOVE = 0x0BE3 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3211,6 +3383,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_THEFT_LOCK_ENABLED = 0x0BE4 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -3225,6 +3398,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_LOCKED = 0x0BE5 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -3240,6 +3414,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ STEERING_WHEEL_EASY_ACCESS_ENABLED = 0x0BE6 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -3267,6 +3442,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ GLOVE_BOX_DOOR_POS = 0x0BF0 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.INT32, @@ -3286,6 +3462,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ GLOVE_BOX_LOCKED = 0x0BF1 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.BOOLEAN, @@ -3305,6 +3482,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ VEHICLE_MAP_SERVICE = 0x0C00 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -3324,6 +3502,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ LOCATION_CHARACTERIZATION = 0x0C10 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3347,6 +3526,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 3 */ ULTRASONICS_SENSOR_POSITION = 0x0C20 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR + VehiclePropertyType.INT32_VEC, @@ -3378,9 +3558,10 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 3 */ ULTRASONICS_SENSOR_ORIENTATION = 0x0C21 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR - + VehiclePropertyType.INT32_VEC, + + VehiclePropertyType.FLOAT_VEC, /** * Static data for the field of view of each ultrasonic sensor in degrees. @@ -3401,6 +3582,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 3 */ ULTRASONICS_SENSOR_FIELD_OF_VIEW = 0x0C22 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR + VehiclePropertyType.INT32_VEC, @@ -3422,6 +3604,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 3 */ ULTRASONICS_SENSOR_DETECTION_RANGE = 0x0C23 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR + VehiclePropertyType.INT32_VEC, @@ -3468,10 +3651,38 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 3 */ ULTRASONICS_SENSOR_SUPPORTED_RANGES = 0x0C24 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR + VehiclePropertyType.INT32_VEC, + /** + * The distance reading of the nearest detected object per sensor in millimeters. + * + * Each individual sensor is identified by its VehicleAreaConfig#areaId and returns the sensor's + * measured distance formatted as [distance, distance_error] where: + * + * int32Values[0] = distance, the measured distance of the nearest object in millimeters. + * If only a range is supported, this value must be set to the minimum + * supported distance in the detected range as specified in + * ULTRASONICS_SENSOR_SUPPORTED_RANGES. + * int32Values[1] = distance_error, the error of the measured distance value in + * millimeters. + * + * If no object is detected, an empty vector must be returned. If distance_error is not + * available then an array of only the measured distance must be returned. + * + * If the data is aggregated by another ECU, then OEMs have the option of reporting the same + * reading across all included sensors or reporting a virtual representation of all the included + * sensors as if they were one sensor. + * + * @change_mode VehiclePropertyChangeMode.CONTINUOUS + * @access VehiclePropertyAccess.READ + * @version 3 + */ + ULTRASONICS_SENSOR_MEASURED_DISTANCE = 0x0C25 + VehiclePropertyGroup.SYSTEM + VehicleArea.VENDOR + + VehiclePropertyType.INT32_VEC, + /** * OBD2 Live Sensor Data * @@ -3512,6 +3723,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ OBD2_LIVE_FRAME = 0x0D00 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -3538,6 +3750,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ OBD2_FREEZE_FRAME = 0x0D01 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -3555,6 +3768,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ OBD2_FREEZE_FRAME_INFO = 0x0D02 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -3577,6 +3791,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ OBD2_FREEZE_FRAME_CLEAR = 0x0D03 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -3588,6 +3803,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ HEADLIGHTS_STATE = 0x0E00 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3599,6 +3815,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ HIGH_BEAM_LIGHTS_STATE = 0x0E01 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3626,6 +3843,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ FOG_LIGHTS_STATE = 0x0E02 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3637,6 +3855,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ HAZARD_LIGHTS_STATE = 0x0E03 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3652,6 +3871,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ HEADLIGHTS_SWITCH = 0x0E10 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3667,6 +3887,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ HIGH_BEAM_LIGHTS_SWITCH = 0x0E11 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3698,6 +3919,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ FOG_LIGHTS_SWITCH = 0x0E12 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3713,6 +3935,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ HAZARD_LIGHTS_SWITCH = 0x0E13 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3724,6 +3947,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ CABIN_LIGHTS_STATE = 0x0F01 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3742,6 +3966,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ CABIN_LIGHTS_SWITCH = 0x0F02 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -3753,6 +3978,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ READING_LIGHTS_STATE = 0x0F03 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -3771,6 +3997,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ READING_LIGHTS_SWITCH = 0x0F04 + 0x10000000 + 0x05000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:SEAT,VehiclePropertyType:INT32 @@ -3792,6 +4019,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ STEERING_WHEEL_LIGHTS_STATE = 0x0F0C + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3817,6 +4045,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ STEERING_WHEEL_LIGHTS_SWITCH = 0x0F0D + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -3845,6 +4074,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ SUPPORT_CUSTOMIZE_VENDOR_PERMISSION = 0x0F05 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -3861,6 +4091,7 @@ enum VehicleProperty { * ex) "com.android.car.user.CarUserNoticeService,storage_monitoring" * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ DISABLED_OPTIONAL_FEATURES = 0x0F06 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING @@ -3911,6 +4142,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ INITIAL_USER_INFO = 0x0F07 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4077,6 +4309,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ SWITCH_USER = 0x0F08 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4123,6 +4356,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ CREATE_USER = 0x0F09 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4154,6 +4388,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.WRITE + * @version 2 */ REMOVE_USER = 0x0F0A + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4229,6 +4464,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ USER_IDENTIFICATION_ASSOCIATION = 0x0F0B + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4248,6 +4484,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ EVS_SERVICE_REQUEST = 0x0F10 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -4265,6 +4502,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ POWER_POLICY_REQ = 0x0F21 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING @@ -4284,6 +4522,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ POWER_POLICY_GROUP_REQ = 0x0F22 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING @@ -4296,6 +4535,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE + * @version 2 */ CURRENT_POWER_POLICY = 0x0F23 + 0x10000000 + 0x01000000 + 0x00100000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:STRING @@ -4307,6 +4547,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ WATCHDOG_ALIVE = 0xF31 + 0x10000000 + 0x01000000 + 0x00500000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT64 @@ -4318,6 +4559,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ WATCHDOG_TERMINATED_PROCESS = 0x0F32 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4333,6 +4575,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ VHAL_HEARTBEAT = 0x0F33 + 0x10000000 + 0x01000000 + 0x00500000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT64 @@ -4346,6 +4589,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ CLUSTER_SWITCH_UI = 0x0F34 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4370,6 +4614,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ + * @version 2 */ CLUSTER_DISPLAY_STATE = 0x0F35 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -4405,6 +4650,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ CLUSTER_REPORT_STATE = 0x0F36 + 0x10000000 + 0x01000000 + 0x00e00000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:MIXED @@ -4419,6 +4665,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ CLUSTER_REQUEST_DISPLAY = 0x0F37 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4429,6 +4676,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 2 */ CLUSTER_NAVIGATION_STATE = 0x0F38 + 0x10000000 + 0x01000000 + 0x00700000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BYTES @@ -4442,6 +4690,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum ElectronicTollCollectionCardType + * @version 2 */ ELECTRONIC_TOLL_COLLECTION_CARD_TYPE = 0x0F39 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4456,6 +4705,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum ElectronicTollCollectionCardStatus + * @version 2 */ ELECTRONIC_TOLL_COLLECTION_CARD_STATUS = 0x0F3A + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4469,6 +4719,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ FRONT_FOG_LIGHTS_STATE = 0x0F3B + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4487,6 +4738,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ FRONT_FOG_LIGHTS_SWITCH = 0x0F3C + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4501,6 +4753,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightState + * @version 2 */ REAR_FOG_LIGHTS_STATE = 0x0F3D + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4519,6 +4772,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ * @data_enum VehicleLightSwitch + * @version 2 */ REAR_FOG_LIGHTS_SWITCH = 0x0F3E + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4535,7 +4789,8 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:AMPERE + * @unit VehicleUnit.AMPERE + * @version 2 */ EV_CHARGE_CURRENT_DRAW_LIMIT = 0x0F3F + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -4557,6 +4812,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ EV_CHARGE_PERCENT_LIMIT = 0x0F40 + 0x10000000 + 0x01000000 + 0x00600000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:FLOAT @@ -4569,6 +4825,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum EvChargeState + * @version 2 */ EV_CHARGE_STATE = 0x0F41 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4585,6 +4842,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ EV_CHARGE_SWITCH = 0x0F42 + 0x10000000 + 0x01000000 + 0x00200000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:BOOLEAN @@ -4596,7 +4854,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:SECS + * @unit VehicleUnit.SECS + * @version 2 */ EV_CHARGE_TIME_REMAINING = 0x0F43 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4610,6 +4869,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum EvRegenerativeBrakingState + * @version 2 */ EV_REGENERATIVE_BRAKING_STATE = 0x0F44 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4622,12 +4882,13 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum TrailerState + * @version 2 */ TRAILER_PRESENT = 0x0F45 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 /** - * Vehicle’s curb weight + * Vehicle’s curb weight in kilograms. * * Returns the vehicle's curb weight in kilograms. Curb weight is * the total weight of the vehicle with standard equipment and all @@ -4644,9 +4905,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:KILOGRAM + * @version 2 */ - VEHICLE_CURB_WEIGHT = 0x0F46 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4659,6 +4919,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ * @data_enum GsrComplianceRequirementType + * @version 2 */ GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT = 0x0F47 + 0x10000000 + 0x01000000 + 0x00400000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32 @@ -4683,6 +4944,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.STATIC * @access VehiclePropertyAccess.READ + * @version 2 */ SUPPORTED_PROPERTY_IDS = 0x0F48 + 0x10000000 + 0x01000000 + 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC @@ -4690,12 +4952,22 @@ enum VehicleProperty { /** * Request the head unit to be shutdown. * + *

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

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

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

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

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

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

If allowed, the external system will start sending a shutdown signal to the head unit, * which will cause VHAL to send SHUTDOWN_PREPARE message to Android. Android will then start * the shut down process by handling the message. * @@ -4720,6 +4992,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE * @data_enum VehicleApPowerStateShutdownParam + * @version 2 */ SHUTDOWN_REQUEST = 0x0F49 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -4752,6 +5025,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ VEHICLE_IN_USE = 0x0F4A + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -4766,6 +5040,7 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE + * @version 3 */ CLUSTER_HEARTBEAT = 0x0F4B + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.MIXED, @@ -4785,10 +5060,35 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ * @data_enum VehicleAutonomousState + * @version 3 */ VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL = 0x0F4C + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, + /** + * Reports current state of CarEvsService types. + * + * Informs other components of current state of each CarEvsService service type with values + * defined in CameraServiceState. CarEvsService will update this property whenever a service + * type transitions into a new state. + * + * int32[0]: Current state of REARVIEW service type. + * int32[1]: Current state of SURROUNDVIEW service type. + * int32[2]: Current state of FRONTVIEW service type. + * int32[3]: Current state of LEFTVIEW service type. + * int32[4]: Current state of RIGHTVIEW service type. + * int32[5]: Current state of DRIVERVIEW service type. + * int32[6]: Current state of FRONT_PASSENGERVIEW service type. + * int32[7]: Current state of REAR_PASSENGERVIEW service type. + * + * @change_mode VehiclePropertyChangeMode.ON_CHANGE + * @access VehiclePropertyAccess.WRITE + * @data_enum CameraServiceState + * @version 3 + */ + CAMERA_SERVICE_CURRENT_STATE = 0x0F4D + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + + VehiclePropertyType.INT32_VEC, + /*********************************************************************************************** * Start of ADAS Properties * @@ -4799,7 +5099,9 @@ enum VehicleProperty { * Enable or disable Automatic Emergency Braking (AEB). * * Set true to enable AEB and false to disable AEB. When AEB is enabled, the ADAS system in the - * vehicle should be turned on and monitoring to avoid potential collisions. + * vehicle should be turned on and monitoring to avoid potential collisions. This property + * should apply for higher speed applications only. For enabling low speed automatic emergency + * braking, LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED should be used. * * In general, AUTOMATIC_EMERGENCY_BRAKING_ENABLED should always return true or false. If the * feature is not available due to some temporary state, such as the vehicle speed being too @@ -4812,6 +5114,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ AUTOMATIC_EMERGENCY_BRAKING_ENABLED = 0x1000 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -4821,7 +5124,9 @@ enum VehicleProperty { * * Returns the current state of AEB. This property must always return a valid state defined in * AutomaticEmergencyBrakingState or ErrorState. It must not surface errors through StatusCode - * and must use the supported error states instead. + * and must use the supported error states instead. This property should apply for higher speed + * applications only. For representing the state of the low speed automatic emergency braking + * system, LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE should be used. * * If AEB includes forward collision warnings before activating the brakes, those warnings must * be surfaced through the Forward Collision Warning (FCW) properties. @@ -4834,6 +5139,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum AutomaticEmergencyBrakingState * @data_enum ErrorState + * @version 2 */ AUTOMATIC_EMERGENCY_BRAKING_STATE = 0x1001 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -4855,6 +5161,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ FORWARD_COLLISION_WARNING_ENABLED = 0x1002 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -4874,6 +5181,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum ForwardCollisionWarningState * @data_enum ErrorState + * @version 2 */ FORWARD_COLLISION_WARNING_STATE = 0x1003 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -4895,6 +5203,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ BLIND_SPOT_WARNING_ENABLED = 0x1004 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -4914,6 +5223,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum BlindSpotWarningState * @data_enum ErrorState + * @version 2 */ BLIND_SPOT_WARNING_STATE = 0x1005 + VehiclePropertyGroup.SYSTEM + VehicleArea.MIRROR + VehiclePropertyType.INT32, @@ -4936,6 +5246,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ LANE_DEPARTURE_WARNING_ENABLED = 0x1006 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -4955,6 +5266,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum LaneDepartureWarningState * @data_enum ErrorState + * @version 2 */ LANE_DEPARTURE_WARNING_STATE = 0x1007 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -4981,6 +5293,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ LANE_KEEP_ASSIST_ENABLED = 0x1008 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5003,6 +5316,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum LaneKeepAssistState * @data_enum ErrorState + * @version 2 */ LANE_KEEP_ASSIST_STATE = 0x1009 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5030,6 +5344,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ LANE_CENTERING_ASSIST_ENABLED = 0x100A + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5060,6 +5375,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE * @data_enum LaneCenteringAssistCommand + * @version 2 */ LANE_CENTERING_ASSIST_COMMAND = 0x100B + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5082,6 +5398,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum LaneCenteringAssistState * @data_enum ErrorState + * @version 2 */ LANE_CENTERING_ASSIST_STATE = 0x100C + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5105,6 +5422,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ EMERGENCY_LANE_KEEP_ASSIST_ENABLED = 0x100D + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5125,6 +5443,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum EmergencyLaneKeepAssistState * @data_enum ErrorState + * @version 2 */ EMERGENCY_LANE_KEEP_ASSIST_STATE = 0x100E + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5149,6 +5468,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ CRUISE_CONTROL_ENABLED = 0x100F + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5177,6 +5497,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum CruiseControlType * @data_enum ErrorState + * @version 2 */ CRUISE_CONTROL_TYPE = 0x1010 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5197,6 +5518,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum CruiseControlState * @data_enum ErrorState + * @version 2 */ CRUISE_CONTROL_STATE = 0x1011 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5220,6 +5542,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.WRITE * @data_enum CruiseControlCommand + * @version 2 */ CRUISE_CONTROL_COMMAND = 0x1012 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5242,7 +5565,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:METER_PER_SEC + * @unit VehicleUnit.METER_PER_SEC + * @version 2 */ CRUISE_CONTROL_TARGET_SPEED = 0x1013 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.FLOAT, @@ -5273,7 +5597,8 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLI_SECS + * @unit VehicleUnit.MILLI_SECS + * @version 2 */ ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP = 0x1014 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5303,7 +5628,8 @@ enum VehicleProperty { * * @change_mode VehiclePropertyChangeMode.CONTINUOUS * @access VehiclePropertyAccess.READ - * @unit VehicleUnit:MILLIMETER + * @unit VehicleUnit.MILLIMETER + * @version 2 */ ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE = 0x1015 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5325,6 +5651,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ HANDS_ON_DETECTION_ENABLED = 0x1016 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5349,6 +5676,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum HandsOnDetectionDriverState * @data_enum ErrorState + * @version 2 */ HANDS_ON_DETECTION_DRIVER_STATE = 0x1017 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5371,6 +5699,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum HandsOnDetectionWarning * @data_enum ErrorState + * @version 2 */ HANDS_ON_DETECTION_WARNING = 0x1018 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5393,6 +5722,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED = 0x1019 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5419,6 +5749,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum DriverDrowsinessAttentionState * @data_enum ErrorState + * @version 3 */ DRIVER_DROWSINESS_ATTENTION_STATE = 0x101A + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5443,6 +5774,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED = 0x101B + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5464,6 +5796,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum DriverDrowsinessAttentionWarning * @data_enum ErrorState + * @version 3 */ DRIVER_DROWSINESS_ATTENTION_WARNING = 0x101C + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5486,6 +5819,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ DRIVER_DISTRACTION_SYSTEM_ENABLED = 0x101D + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5510,6 +5844,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum DriverDistractionState * @data_enum ErrorState + * @version 3 */ DRIVER_DISTRACTION_STATE = 0x101E + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5533,6 +5868,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 2 */ DRIVER_DISTRACTION_WARNING_ENABLED = 0x101F + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5554,6 +5890,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum DriverDistractionWarning * @data_enum ErrorState + * @version 3 */ DRIVER_DISTRACTION_WARNING = 0x1020 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5579,6 +5916,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ LOW_SPEED_COLLISION_WARNING_ENABLED = 0x1021 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5601,6 +5939,7 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum LowSpeedCollisionWarningState * @data_enum ErrorState + * @version 3 */ LOW_SPEED_COLLISION_WARNING_STATE = 0x1022 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, @@ -5623,6 +5962,7 @@ enum VehicleProperty { * @change_mode VehiclePropertyChangeMode.ON_CHANGE * @access VehiclePropertyAccess.READ_WRITE * @access VehiclePropertyAccess.READ + * @version 3 */ CROSS_TRAFFIC_MONITORING_ENABLED = 0x1023 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, @@ -5642,10 +5982,65 @@ enum VehicleProperty { * @access VehiclePropertyAccess.READ * @data_enum CrossTrafficMonitoringWarningState * @data_enum ErrorState + * @version 3 */ CROSS_TRAFFIC_MONITORING_WARNING_STATE = 0x1024 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, + /** + * Enable or disable Low Speed Automatic Emergency Braking. + * + * Set true to enable Low Speed Automatic Emergency Braking or false to disable Low Speed + * Automatic Emergency Braking. When Low Speed Automatic Emergency Braking is enabled, the ADAS + * system in the vehicle should be turned on and monitoring to avoid potential collisions in low + * speed conditions. This property is different from the pre-existing + * AUTOMATIC_EMERGENCY_BRAKING_ENABLED, which should apply to higher speed applications only. If + * the vehicle doesn't have a separate collision avoidance system for low speed environments, + * this property should not be implemented. + * + * In general, LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED should always return true or false. + * If the feature is not available due to some temporary state, such as the vehicle speed being + * too low, that information must be conveyed through the ErrorState values in the + * LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE property. + * + * This property is defined as VehiclePropertyAccess.READ_WRITE, but OEMs have the option to + * implement it as VehiclePropertyAccess.READ only. + * + * @change_mode VehiclePropertyChangeMode.ON_CHANGE + * @access VehiclePropertyAccess.READ_WRITE + * @access VehiclePropertyAccess.READ + * @version 3 + */ + LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED = + 0x1025 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN, + + /** + * Low Speed Automatic Emergency Braking state. + * + * Returns the current state of Low Speed Automatic Emergency Braking. This property must always + * return a valid state defined in LowSpeedAutomaticEmergencyBrakingState or ErrorState. It must + * not surface errors through StatusCode and must use the supported error states instead. This + * property is different from the pre-existing AUTOMATIC_EMERGENCY_BRAKING_STATE, which should + * apply to higher speed applications only. If the vehicle doesn't have a separate collision + * avoidance system for low speed environments, this property should not be implemented. + * + * If Low Speed Automatic Emergency Braking includes collision warnings before activating the + * brakes, those warnings must be surfaced through use of LOW_SPEED_COLLISION_WARNING_ENABLED + * and LOW_SPEED_COLLISION_WARNING_STATE. + * + * For the global area ID (0), the VehicleAreaConfig#supportedEnumValues array must be defined + * unless all states of both LowSpeedAutomaticEmergencyBrakingState (including OTHER, which is + * not recommended) and ErrorState are supported. + * + * @change_mode VehiclePropertyChangeMode.ON_CHANGE + * @access VehiclePropertyAccess.READ + * @data_enum LowSpeedAutomaticEmergencyBrakingState + * @data_enum ErrorState + * @version 3 + */ + LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE = + 0x1026 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32, + /*************************************************************************** * End of ADAS Properties **************************************************************************/ diff --git a/automotive/vehicle/tools/generate_annotation_enums.py b/automotive/vehicle/tools/generate_annotation_enums.py index 05fc99a23199d1623b16525cd7c2b02f99fc0fba..f2797678ab4f17cdb06b46b7fef910d710f172ef 100755 --- a/automotive/vehicle/tools/generate_annotation_enums.py +++ b/automotive/vehicle/tools/generate_annotation_enums.py @@ -18,7 +18,8 @@ Need ANDROID_BUILD_TOP environmental variable to be set. This script will update ChangeModeForVehicleProperty.h and AccessForVehicleProperty.h under generated_lib/cpp and - ChangeModeForVehicleProperty.java, AccessForVehicleProperty.java, EnumForVehicleProperty.java under generated_lib/java. + ChangeModeForVehicleProperty.java, AccessForVehicleProperty.java, EnumForVehicleProperty.java + UnitsForVehicleProperty.java under generated_lib/java. Usage: $ python generate_annotation_enums.py @@ -42,6 +43,10 @@ ACCESS_JAVA_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/generated_ 'AccessForVehicleProperty.java') ENUM_JAVA_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/generated_lib/java/' + 'EnumForVehicleProperty.java') +UNITS_JAVA_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/generated_lib/java/' + + 'UnitsForVehicleProperty.java') +VERSION_CPP_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/generated_lib/cpp/' + + 'VersionForVehicleProperty.h') SCRIPT_PATH = 'hardware/interfaces/automotive/vehicle/tools/generate_annotation_enums.py' TAB = ' ' @@ -50,6 +55,7 @@ RE_ENUM_END = re.compile('\s*\}\;') RE_COMMENT_BEGIN = re.compile('\s*\/\*\*?') RE_COMMENT_END = re.compile('\s*\*\/') RE_CHANGE_MODE = re.compile('\s*\* @change_mode (\S+)\s*') +RE_VERSION = re.compile('\s*\* @version (\S+)\s*') RE_ACCESS = re.compile('\s*\* @access (\S+)\s*') RE_DATA_ENUM = re.compile('\s*\* @data_enum (\S+)\s*') RE_UNIT = re.compile('\s*\* @unit (\S+)\s+') @@ -81,8 +87,7 @@ LICENSE = """/* """ -CHANGE_MODE_CPP_HEADER = """#ifndef android_hardware_automotive_vehicle_aidl_generated_lib_ChangeModeForVehicleProperty_H_ -#define android_hardware_automotive_vehicle_aidl_generated_lib_ChangeModeForVehicleProperty_H_ +CHANGE_MODE_CPP_HEADER = """#pragma once #include #include @@ -98,7 +103,7 @@ namespace vehicle { std::unordered_map ChangeModeForVehicleProperty = { """ -CHANGE_MODE_CPP_FOOTER = """ +CPP_FOOTER = """ }; } // namespace vehicle @@ -106,12 +111,9 @@ CHANGE_MODE_CPP_FOOTER = """ } // namespace hardware } // namespace android } // aidl - -#endif // android_hardware_automotive_vehicle_aidl_generated_lib_ChangeModeForVehicleProperty_H_ """ -ACCESS_CPP_HEADER = """#ifndef android_hardware_automotive_vehicle_aidl_generated_lib_AccessForVehicleProperty_H_ -#define android_hardware_automotive_vehicle_aidl_generated_lib_AccessForVehicleProperty_H_ +ACCESS_CPP_HEADER = """#pragma once #include #include @@ -127,16 +129,19 @@ namespace vehicle { std::unordered_map AccessForVehicleProperty = { """ -ACCESS_CPP_FOOTER = """ -}; +VERSION_CPP_HEADER = """#pragma once -} // namespace vehicle -} // namespace automotive -} // namespace hardware -} // namespace android -} // aidl +#include + +#include + +namespace aidl { +namespace android { +namespace hardware { +namespace automotive { +namespace vehicle { -#endif // android_hardware_automotive_vehicle_aidl_generated_lib_AccessForVehicleProperty_H_ +std::unordered_map VersionForVehicleProperty = { """ CHANGE_MODE_JAVA_HEADER = """package android.hardware.automotive.vehicle; @@ -148,7 +153,7 @@ public final class ChangeModeForVehicleProperty { public static final Map values = Map.ofEntries( """ -CHANGE_MODE_JAVA_FOOTER = """ +JAVA_FOOTER = """ ); } @@ -163,12 +168,6 @@ public final class AccessForVehicleProperty { public static final Map values = Map.ofEntries( """ -ACCESS_JAVA_FOOTER = """ - ); - -} -""" - ENUM_JAVA_HEADER = """package android.hardware.automotive.vehicle; import java.util.List; @@ -179,10 +178,13 @@ public final class EnumForVehicleProperty { public static final Map>> values = Map.ofEntries( """ -ENUM_JAVA_FOOTER = """ - ); +UNITS_JAVA_HEADER = """package android.hardware.automotive.vehicle; -} +import java.util.Map; + +public final class UnitsForVehicleProperty { + + public static final Map values = Map.ofEntries( """ @@ -192,10 +194,12 @@ class PropertyConfig: def __init__(self): self.name = None self.description = None + self.comment = None self.change_mode = None self.access_modes = [] self.enum_types = [] self.unit_type = None + self.version = None def __repr__(self): return self.__str__() @@ -203,8 +207,9 @@ class PropertyConfig: def __str__(self): return ('PropertyConfig{{' + 'name: {}, description: {}, change_mode: {}, access_modes: {}, enum_types: {}' + - ', unit_type: {}}}').format(self.name, self.description, self.change_mode, - self.access_modes, self.enum_types, self.unit_type) + ', unit_type: {}, version: {}, comment: {}}}').format(self.name, self.description, + self.change_mode, self.access_modes, self.enum_types, self.unit_type, + self.version, self.comment) class FileParser: @@ -230,34 +235,59 @@ class FileParser: in_comment = True config = PropertyConfig() description = '' + continue + if RE_COMMENT_END.match(line): in_comment = False if in_comment: - if not config.description: - sline = line.strip() - # Skip the first line of comment - if sline.startswith('*'): - # Remove the '*'. - sline = sline[1:].strip() - # We reach an empty line of comment, the description part is ending. - if sline == '': - config.description = description - else: - if description != '': - description += ' ' - description += sline match = RE_CHANGE_MODE.match(line) if match: config.change_mode = match.group(1).replace('VehiclePropertyChangeMode.', '') + continue match = RE_ACCESS.match(line) if match: config.access_modes.append(match.group(1).replace('VehiclePropertyAccess.', '')) + continue match = RE_UNIT.match(line) if match: config.unit_type = match.group(1) + continue match = RE_DATA_ENUM.match(line) if match: config.enum_types.append(match.group(1)) + continue + match = RE_VERSION.match(line) + if match: + if config.version != None: + raise Exception('Duplicate version annotation for property: ' + prop_name) + config.version = match.group(1) + continue + + sline = line.strip() + if sline.startswith('*'): + # Remove the '*'. + sline = sline[1:].strip() + + if not config.description: + # We reach an empty line of comment, the description part is ending. + if sline == '': + config.description = description + else: + if description != '': + description += ' ' + description += sline + else: + if not config.comment: + if sline != '': + # This is the first line for comment. + config.comment = sline + else: + if sline != '': + # Concat this line with the previous line's comment with a space. + config.comment += ' ' + sline + else: + # Treat empty line comment as a new line. + config.comment += '\n' else: match = RE_VALUE.match(line) if match: @@ -270,6 +300,9 @@ class FileParser: if not config.access_modes: raise Exception( 'No access_mode annotation for property: ' + prop_name) + if not config.version: + raise Exception( + 'no version annotation for property: ' + prop_name) config.name = prop_name configs.append(config) @@ -295,6 +328,15 @@ class FileParser: continue; if not cpp: annotation = "List.of(" + ', '.join([class_name + ".class" for class_name in config.enum_types]) + ")" + elif field == 'unit_type': + if not config.unit_type: + continue + if not cpp: + annotation = config.unit_type + + elif field == 'version': + if cpp: + annotation = config.version else: raise Exception('Unknown field: ' + field) if counter != 0: @@ -317,7 +359,7 @@ class FileParser: f.write(content) def outputAsCsv(self, output): - content = 'name,description,change mode,access mode,enum type,unit type\n' + content = 'name,description,change mode,access mode,enum type,unit type,comment\n' for config in self.configs: enum_types = None if not config.enum_types: @@ -328,14 +370,18 @@ class FileParser: if not unit_type: unit_type = '/' access_modes = '' - content += '"{}","{}","{}","{}","{}","{}"\n'.format( + comment = config.comment + if not comment: + comment = '' + content += '"{}","{}","{}","{}","{}","{}", "{}"\n'.format( config.name, # Need to escape quote as double quote. config.description.replace('"', '""'), config.change_mode, '/'.join(config.access_modes), enum_types, - unit_type) + unit_type, + comment.replace('"', '""')) with open(output, 'w+') as f: f.write(content) @@ -347,6 +393,69 @@ def createTempFile(): return f.name +class GeneratedFile: + + def __init__(self, type): + self.type = type + self.cpp_file_path = None + self.java_file_path = None + self.cpp_header = None + self.java_header = None + self.cpp_footer = None + self.java_footer = None + self.cpp_output_file = None + self.java_output_file = None + + def setCppFilePath(self, cpp_file_path): + self.cpp_file_path = cpp_file_path + + def setJavaFilePath(self, java_file_path): + self.java_file_path = java_file_path + + def setCppHeader(self, cpp_header): + self.cpp_header = cpp_header + + def setCppFooter(self, cpp_footer): + self.cpp_footer = cpp_footer + + def setJavaHeader(self, java_header): + self.java_header = java_header + + def setJavaFooter(self, java_footer): + self.java_footer = java_footer + + def convert(self, file_parser, check_only, temp_files): + if self.cpp_file_path: + output_file = GeneratedFile._getOutputFile(self.cpp_file_path, check_only, temp_files) + file_parser.convert(output_file, self.cpp_header, self.cpp_footer, True, self.type) + self.cpp_output_file = output_file + + if self.java_file_path: + output_file = GeneratedFile._getOutputFile(self.java_file_path, check_only, temp_files) + file_parser.convert(output_file, self.java_header, self.java_footer, False, self.type) + self.java_output_file = output_file + + def cmp(self): + if self.cpp_file_path: + if not filecmp.cmp(self.cpp_output_file, self.cpp_file_path): + return False + + if self.java_file_path: + if not filecmp.cmp(self.java_output_file, self.java_file_path): + return False + + return True + + @staticmethod + def _getOutputFile(file_path, check_only, temp_files): + if not check_only: + return file_path + + temp_file = createTempFile() + temp_files.append(temp_file) + return temp_file + + def main(): parser = argparse.ArgumentParser( description='Generate Java and C++ enums based on annotations in VehicleProperty.aidl') @@ -382,51 +491,58 @@ def main(): f.outputAsCsv(args.output_csv) return - change_mode_cpp_file = os.path.join(android_top, CHANGE_MODE_CPP_FILE_PATH); - access_cpp_file = os.path.join(android_top, ACCESS_CPP_FILE_PATH); - change_mode_java_file = os.path.join(android_top, CHANGE_MODE_JAVA_FILE_PATH); - access_java_file = os.path.join(android_top, ACCESS_JAVA_FILE_PATH); - enum_java_file = os.path.join(android_top, ENUM_JAVA_FILE_PATH); - temp_files = [] + generated_files = [] + + change_mode = GeneratedFile('change_mode') + change_mode.setCppFilePath(os.path.join(android_top, CHANGE_MODE_CPP_FILE_PATH)) + change_mode.setJavaFilePath(os.path.join(android_top, CHANGE_MODE_JAVA_FILE_PATH)) + change_mode.setCppHeader(CHANGE_MODE_CPP_HEADER) + change_mode.setCppFooter(CPP_FOOTER) + change_mode.setJavaHeader(CHANGE_MODE_JAVA_HEADER) + change_mode.setJavaFooter(JAVA_FOOTER) + generated_files.append(change_mode) + + access_mode = GeneratedFile('access_mode') + access_mode.setCppFilePath(os.path.join(android_top, ACCESS_CPP_FILE_PATH)) + access_mode.setJavaFilePath(os.path.join(android_top, ACCESS_JAVA_FILE_PATH)) + access_mode.setCppHeader(ACCESS_CPP_HEADER) + access_mode.setCppFooter(CPP_FOOTER) + access_mode.setJavaHeader(ACCESS_JAVA_HEADER) + access_mode.setJavaFooter(JAVA_FOOTER) + generated_files.append(access_mode) + + enum_types = GeneratedFile('enum_types') + enum_types.setJavaFilePath(os.path.join(android_top, ENUM_JAVA_FILE_PATH)) + enum_types.setJavaHeader(ENUM_JAVA_HEADER) + enum_types.setJavaFooter(JAVA_FOOTER) + generated_files.append(enum_types) + + unit_type = GeneratedFile('unit_type') + unit_type.setJavaFilePath(os.path.join(android_top, UNITS_JAVA_FILE_PATH)) + unit_type.setJavaHeader(UNITS_JAVA_HEADER) + unit_type.setJavaFooter(JAVA_FOOTER) + generated_files.append(unit_type) + + version = GeneratedFile('version') + version.setCppFilePath(os.path.join(android_top, VERSION_CPP_FILE_PATH)) + version.setCppHeader(VERSION_CPP_HEADER) + version.setCppFooter(CPP_FOOTER) + generated_files.append(version) - if not args.check_only: - change_mode_cpp_output = change_mode_cpp_file - access_cpp_output = access_cpp_file - change_mode_java_output = change_mode_java_file - access_java_output = access_java_file - enum_java_output = enum_java_file - else: - change_mode_cpp_output = createTempFile() - temp_files.append(change_mode_cpp_output) - access_cpp_output = createTempFile() - temp_files.append(access_cpp_output) - change_mode_java_output = createTempFile() - temp_files.append(change_mode_java_output) - access_java_output = createTempFile() - temp_files.append(access_java_output) - enum_java_output = createTempFile() - temp_files.append(enum_java_output) + temp_files = [] try: - f.convert(change_mode_cpp_output, CHANGE_MODE_CPP_HEADER, CHANGE_MODE_CPP_FOOTER, - True, 'change_mode') - f.convert(change_mode_java_output, CHANGE_MODE_JAVA_HEADER, - CHANGE_MODE_JAVA_FOOTER, False, 'change_mode') - f.convert(access_cpp_output, ACCESS_CPP_HEADER, ACCESS_CPP_FOOTER, True, 'access_mode') - f.convert(access_java_output, ACCESS_JAVA_HEADER, ACCESS_JAVA_FOOTER, False, 'access_mode') - f.convert(enum_java_output, ENUM_JAVA_HEADER, ENUM_JAVA_FOOTER, False, 'enum_types') + for generated_file in generated_files: + generated_file.convert(f, args.check_only, temp_files) if not args.check_only: return - if ((not filecmp.cmp(change_mode_cpp_output, change_mode_cpp_file)) or - (not filecmp.cmp(change_mode_java_output, change_mode_java_file)) or - (not filecmp.cmp(access_cpp_output, access_cpp_file)) or - (not filecmp.cmp(access_java_output, access_java_file)) or - (not filecmp.cmp(enum_java_output, enum_java_file))): - print('The generated enum files for VehicleProperty.aidl requires update, ') - print('Run \npython ' + android_top + '/' + SCRIPT_PATH) - sys.exit(1) + for generated_file in generated_files: + if not generated_file.cmp(): + print('The generated enum files for VehicleProperty.aidl requires update, ') + print('Run \npython ' + android_top + '/' + SCRIPT_PATH) + sys.exit(1) except Exception as e: print('Error parsing VehicleProperty.aidl') print(e) diff --git a/automotive/vehicle/tools/generate_emu_metadata/Android.bp b/automotive/vehicle/tools/generate_emu_metadata/Android.bp new file mode 100644 index 0000000000000000000000000000000000000000..4cb6d3baf5f46a68232dbf752001f5cfbb74537d --- /dev/null +++ b/automotive/vehicle/tools/generate_emu_metadata/Android.bp @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +java_binary_host { + name: "EnumMetadataGenerator", + srcs: ["src/**/*.java"], + manifest: "manifest.txt", + static_libs: [ + "javaparser", + "javaparser-symbol-solver", + "json-prebuilt", + "androidx.annotation_annotation", + ], +} + +// A rule to convert VHAL property AIDL files to java files. +gensrcs { + name: "gen_vehicle_property_java_file", + srcs: [ + ":android.hardware.automotive.vehicle.property-files", + ], + tools: ["aidl"], + cmd: "$(location aidl) --lang=java --structured --stability=vintf $(in) -I hardware/interfaces/automotive/vehicle/aidl_property --out $(genDir)/hardware/interfaces/automotive/vehicle/aidl_property", + output_extension: "java", +} + +// A target to check whether android.hardware.automotive.vehicle-types-meta.json +// needs to be updated. The output is just an empty cpp file to be included +// in the higher-level build target. +// It will generate generated.json at output directory based on VHAL property +// java files and check it against +// android.hardware.automotive.vehicle-types-meta.json. If not the same, the +// build will fail. +genrule { + name: "check_generated_enum_metadata_json", + tools: ["EnumMetadataGenerator"], + srcs: [ + ":android.hardware.automotive.vehicle-types-meta", + ":gen_vehicle_property_java_file", + ], + cmd: "$(location EnumMetadataGenerator) --check_against $(location :android.hardware.automotive.vehicle-types-meta) --output_empty_file $(out) --output_json $(genDir)/generate_enum_metadata.json --input_files $(locations :gen_vehicle_property_java_file)", + out: ["generate_enum_metadata_checked.cpp"], +} diff --git a/automotive/vehicle/tools/generate_emu_metadata/manifest.txt b/automotive/vehicle/tools/generate_emu_metadata/manifest.txt new file mode 100644 index 0000000000000000000000000000000000000000..07696da0a02b9b698f74a4f1a140c3c7cae5a11a --- /dev/null +++ b/automotive/vehicle/tools/generate_emu_metadata/manifest.txt @@ -0,0 +1 @@ +Main-Class: com.android.car.tool.EmuMetadataGenerator diff --git a/automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java b/automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..8e12f6774b483cac2d173b70be03f2302267a283 --- /dev/null +++ b/automotive/vehicle/tools/generate_emu_metadata/src/com/android/car/tool/EmuMetadataGenerator.java @@ -0,0 +1,403 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.car.tool; + +import com.github.javaparser.StaticJavaParser; +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.body.AnnotationDeclaration; +import com.github.javaparser.ast.body.FieldDeclaration; +import com.github.javaparser.ast.body.VariableDeclarator; +import com.github.javaparser.ast.comments.Comment; +import com.github.javaparser.ast.expr.AnnotationExpr; +import com.github.javaparser.ast.expr.ArrayInitializerExpr; +import com.github.javaparser.ast.expr.Expression; +import com.github.javaparser.ast.expr.NormalAnnotationExpr; +import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr; +import com.github.javaparser.ast.expr.UnaryExpr; +import com.github.javaparser.ast.type.ClassOrInterfaceType; +import com.github.javaparser.javadoc.Javadoc; +import com.github.javaparser.javadoc.JavadocBlockTag; +import com.github.javaparser.javadoc.description.JavadocDescription; +import com.github.javaparser.javadoc.description.JavadocDescriptionElement; +import com.github.javaparser.javadoc.description.JavadocInlineTag; +import com.github.javaparser.resolution.declarations.ResolvedFieldDeclaration; +import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration; +import com.github.javaparser.symbolsolver.JavaSymbolSolver; +import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserFieldDeclaration; +import com.github.javaparser.symbolsolver.model.resolution.TypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver; +import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import org.json.JSONArray; +import org.json.JSONObject; + +public final class EmuMetadataGenerator { + private static final String DEFAULT_PACKAGE_NAME = "android.hardware.automotive.vehicle"; + private static final String INPUT_DIR_OPTION = "--input_dir"; + private static final String INPUT_FILES_OPTION = "--input_files"; + private static final String PACKAGE_NAME_OPTION = "--package_name"; + private static final String OUTPUT_JSON_OPTION = "--output_json"; + private static final String OUTPUT_EMPTY_FILE_OPTION = "--output_empty_file"; + private static final String CHECK_AGAINST_OPTION = "--check_against"; + private static final String USAGE = "EnumMetadataGenerator " + INPUT_DIR_OPTION + + " [path_to_aidl_gen_dir] " + INPUT_FILES_OPTION + " [input_files] " + + PACKAGE_NAME_OPTION + " [package_name] " + OUTPUT_JSON_OPTION + " [output_json] " + + OUTPUT_EMPTY_FILE_OPTION + " [output_header_file] " + CHECK_AGAINST_OPTION + + " [json_file_to_check_against]\n" + + "Parses the VHAL property AIDL interface generated Java files to a json file to be" + + " used by emulator\n" + + "Options: \n" + INPUT_DIR_OPTION + + ": the path to a directory containing AIDL interface Java files, " + + "either this or input_files must be specified\n" + INPUT_FILES_OPTION + + ": one or more Java files, this is used to decide the input " + + "directory\n" + PACKAGE_NAME_OPTION + + ": the optional package name for the interface, by default is " + DEFAULT_PACKAGE_NAME + + "\n" + OUTPUT_JSON_OPTION + ": The output JSON file\n" + OUTPUT_EMPTY_FILE_OPTION + + ": Only used for check_mode, this file will be created if " + + "check passed\n" + CHECK_AGAINST_OPTION + + ": An optional JSON file to check against. If specified, the " + + "generated output file will be checked against this file, if they are not the same, " + + "the script will fail, otherwise, the output_empty_file will be created\n" + + "For example: \n" + + "EnumMetadataGenerator --input_dir out/soong/.intermediates/hardware/" + + "interfaces/automotive/vehicle/aidl_property/android.hardware.automotive.vehicle." + + "property-V3-java-source/gen/ --package_name android.hardware.automotive.vehicle " + + "--output_json /tmp/android.hardware.automotive.vehicle-types-meta.json"; + private static final String VEHICLE_PROPERTY_FILE = "VehicleProperty.java"; + private static final String CHECK_FILE_PATH = + "${ANDROID_BUILD_TOP}/hardware/interfaces/automotive/vehicle/aidl/emu_metadata/" + + "android.hardware.automotive.vehicle-types-meta.json"; + + // Emulator can display at least this many characters before cutting characters. + private static final int MAX_PROPERTY_NAME_LENGTH = 30; + + /** + * Parses the enum field declaration as an int value. + */ + private static int parseIntEnumField(FieldDeclaration fieldDecl) { + VariableDeclarator valueDecl = fieldDecl.getVariables().get(0); + Expression expr = valueDecl.getInitializer().get(); + if (expr.isIntegerLiteralExpr()) { + return expr.asIntegerLiteralExpr().asInt(); + } + // For case like -123 + if (expr.isUnaryExpr() && expr.asUnaryExpr().getOperator() == UnaryExpr.Operator.MINUS) { + return -expr.asUnaryExpr().getExpression().asIntegerLiteralExpr().asInt(); + } + System.out.println("Unsupported expression: " + expr); + System.exit(1); + return 0; + } + + private static boolean isPublicAndStatic(FieldDeclaration fieldDecl) { + return fieldDecl.isPublic() && fieldDecl.isStatic(); + } + + private static String getFieldName(FieldDeclaration fieldDecl) { + VariableDeclarator valueDecl = fieldDecl.getVariables().get(0); + return valueDecl.getName().asString(); + } + + private static class Enum { + Enum(String name, String packageName) { + this.name = name; + this.packageName = packageName; + } + + public String name; + public String packageName; + public final List valueFields = new ArrayList<>(); + } + + private static class ValueField { + public String name; + public Integer value; + public final List dataEnums = new ArrayList<>(); + + ValueField(String name, Integer value) { + this.name = name; + this.value = value; + } + } + + private static Enum parseEnumInterface( + String inputDir, String dirName, String packageName, String enumName) throws Exception { + Enum enumIntf = new Enum(enumName, packageName); + CompilationUnit cu = StaticJavaParser.parse(new File( + inputDir + File.separator + dirName + File.separator + enumName + ".java")); + AnnotationDeclaration vehiclePropertyIdsClass = + cu.getAnnotationDeclarationByName(enumName).get(); + + List variables = vehiclePropertyIdsClass.findAll(FieldDeclaration.class); + for (int i = 0; i < variables.size(); i++) { + FieldDeclaration propertyDef = variables.get(i).asFieldDeclaration(); + if (!isPublicAndStatic(propertyDef)) { + continue; + } + ValueField field = + new ValueField(getFieldName(propertyDef), parseIntEnumField(propertyDef)); + enumIntf.valueFields.add(field); + } + return enumIntf; + } + + // A hacky way to make the key in-order in the JSON object. + private static final class OrderedJSONObject extends JSONObject { + OrderedJSONObject() { + try { + Field map = JSONObject.class.getDeclaredField("nameValuePairs"); + map.setAccessible(true); + map.set(this, new LinkedHashMap<>()); + map.setAccessible(false); + } catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } + } + + private static String readFileContent(String fileName) throws Exception { + StringBuffer contentBuffer = new StringBuffer(); + int bufferSize = 1024; + try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) { + char buffer[] = new char[bufferSize]; + while (true) { + int read = reader.read(buffer, 0, bufferSize); + if (read == -1) { + break; + } + contentBuffer.append(buffer, 0, read); + } + } + return contentBuffer.toString(); + } + + private static final class Args { + public final String inputDir; + public final String pkgName; + public final String pkgDir; + public final String output; + public final String checkFile; + public final String outputEmptyFile; + + public Args(String[] args) throws IllegalArgumentException { + Map> valuesByKey = new LinkedHashMap<>(); + String key = null; + for (int i = 0; i < args.length; i++) { + String arg = args[i]; + if (arg.startsWith("--")) { + key = arg; + continue; + } + if (key == null) { + throw new IllegalArgumentException("Missing key for value: " + arg); + } + if (valuesByKey.get(key) == null) { + valuesByKey.put(key, new ArrayList<>()); + } + valuesByKey.get(key).add(arg); + } + String pkgName; + List values = valuesByKey.get(PACKAGE_NAME_OPTION); + if (values == null) { + pkgName = DEFAULT_PACKAGE_NAME; + } else { + pkgName = values.get(0); + } + String pkgDir = pkgName.replace(".", File.separator); + this.pkgName = pkgName; + this.pkgDir = pkgDir; + String inputDir; + values = valuesByKey.get(INPUT_DIR_OPTION); + if (values == null) { + List inputFiles = valuesByKey.get(INPUT_FILES_OPTION); + if (inputFiles == null) { + throw new IllegalArgumentException("Either " + INPUT_DIR_OPTION + " or " + + INPUT_FILES_OPTION + " must be specified"); + } + inputDir = new File(inputFiles.get(0)).getParent().replace(pkgDir, ""); + } else { + inputDir = values.get(0); + } + this.inputDir = inputDir; + values = valuesByKey.get(OUTPUT_JSON_OPTION); + if (values == null) { + throw new IllegalArgumentException(OUTPUT_JSON_OPTION + " must be specified"); + } + this.output = values.get(0); + values = valuesByKey.get(CHECK_AGAINST_OPTION); + if (values != null) { + this.checkFile = values.get(0); + } else { + this.checkFile = null; + } + values = valuesByKey.get(OUTPUT_EMPTY_FILE_OPTION); + if (values != null) { + this.outputEmptyFile = values.get(0); + } else { + this.outputEmptyFile = null; + } + } + } + + /** + * Main function. + */ + public static void main(final String[] args) throws Exception { + Args parsedArgs; + try { + parsedArgs = new Args(args); + } catch (IllegalArgumentException e) { + System.out.println("Invalid arguments: " + e.getMessage()); + System.out.println(USAGE); + System.exit(1); + // Never reach here. + return; + } + + TypeSolver typeSolver = new CombinedTypeSolver( + new ReflectionTypeSolver(), new JavaParserTypeSolver(parsedArgs.inputDir)); + StaticJavaParser.getConfiguration().setSymbolResolver(new JavaSymbolSolver(typeSolver)); + + Enum vehicleProperty = new Enum("VehicleProperty", parsedArgs.pkgName); + CompilationUnit cu = StaticJavaParser.parse(new File(parsedArgs.inputDir + File.separator + + parsedArgs.pkgDir + File.separator + VEHICLE_PROPERTY_FILE)); + AnnotationDeclaration vehiclePropertyIdsClass = + cu.getAnnotationDeclarationByName("VehicleProperty").get(); + + Set dataEnumTypes = new HashSet<>(); + List variables = vehiclePropertyIdsClass.findAll(FieldDeclaration.class); + for (int i = 0; i < variables.size(); i++) { + FieldDeclaration propertyDef = variables.get(i).asFieldDeclaration(); + if (!isPublicAndStatic(propertyDef)) { + continue; + } + String propertyName = getFieldName(propertyDef); + if (propertyName.equals("INVALID")) { + continue; + } + + Optional maybeComment = propertyDef.getComment(); + if (!maybeComment.isPresent()) { + System.out.println("missing comment for property: " + propertyName); + System.exit(1); + } + Javadoc doc = maybeComment.get().asJavadocComment().parse(); + + int propertyId = parseIntEnumField(propertyDef); + // We use the first paragraph as the property's name + String propertyDescription = doc.getDescription().toText().split("\n\n")[0]; + String name = propertyDescription; + if (propertyDescription.indexOf("\n") != -1 + || propertyDescription.length() > MAX_PROPERTY_NAME_LENGTH) { + // The description is too long, we just use the property name. + name = propertyName; + } + ValueField field = new ValueField(name, propertyId); + + List blockTags = doc.getBlockTags(); + List dataEnums = new ArrayList<>(); + for (int j = 0; j < blockTags.size(); j++) { + String commentTagName = blockTags.get(j).getTagName(); + String commentTagContent = blockTags.get(j).getContent().toText(); + if (!commentTagName.equals("data_enum")) { + continue; + } + field.dataEnums.add(commentTagContent); + dataEnumTypes.add(commentTagContent); + } + + vehicleProperty.valueFields.add(field); + } + + List enumTypes = new ArrayList<>(); + enumTypes.add(vehicleProperty); + + for (String dataEnumType : dataEnumTypes) { + Enum dataEnum = parseEnumInterface( + parsedArgs.inputDir, parsedArgs.pkgDir, parsedArgs.pkgName, dataEnumType); + enumTypes.add(dataEnum); + } + + // Output enumTypes as JSON to output. + JSONArray jsonEnums = new JSONArray(); + for (int i = 0; i < enumTypes.size(); i++) { + Enum enumType = enumTypes.get(i); + + JSONObject jsonEnum = new OrderedJSONObject(); + jsonEnum.put("name", enumType.name); + jsonEnum.put("package", enumType.packageName); + JSONArray values = new JSONArray(); + jsonEnum.put("values", values); + + for (int j = 0; j < enumType.valueFields.size(); j++) { + ValueField valueField = enumType.valueFields.get(j); + JSONObject jsonValueField = new OrderedJSONObject(); + jsonValueField.put("name", valueField.name); + jsonValueField.put("value", valueField.value); + if (!valueField.dataEnums.isEmpty()) { + JSONArray jsonDataEnums = new JSONArray(); + for (String dataEnum : valueField.dataEnums) { + jsonDataEnums.put(dataEnum); + } + jsonValueField.put("data_enums", jsonDataEnums); + // To be backward compatible with older format where data_enum is a single + // entry. + jsonValueField.put("data_enum", valueField.dataEnums.get(0)); + } + values.put(jsonValueField); + } + + jsonEnums.put(jsonEnum); + } + + try (FileOutputStream outputStream = new FileOutputStream(parsedArgs.output)) { + outputStream.write(jsonEnums.toString(4).getBytes()); + } + System.out.println("Input at folder: " + parsedArgs.inputDir + + " successfully parsed. Output at: " + parsedArgs.output); + + if (parsedArgs.checkFile != null) { + String checkFileContent = readFileContent(parsedArgs.checkFile); + String generatedFileContent = readFileContent(parsedArgs.output); + String generatedFilePath = new File(parsedArgs.output).getAbsolutePath(); + if (!checkFileContent.equals(generatedFileContent)) { + System.out.println("The file: " + CHECK_FILE_PATH + " needs to be updated, run: " + + "\n\ncp " + generatedFilePath + " " + CHECK_FILE_PATH + "\n"); + System.exit(1); + } + + if (parsedArgs.outputEmptyFile != null) { + try (FileOutputStream outputStream = + new FileOutputStream(parsedArgs.outputEmptyFile)) { + // Do nothing, just create the file. + } + } + } + } +} diff --git a/automotive/vehicle/vts/Android.bp b/automotive/vehicle/vts/Android.bp index 736787b881ad4f64a018096f3797d82d9a2f170d..67d0d344d4f5466c5f1cfb7d6df2db432a7489a0 100644 --- a/automotive/vehicle/vts/Android.bp +++ b/automotive/vehicle/vts/Android.bp @@ -30,6 +30,7 @@ cc_test { ], static_libs: [ "libgtest", + "libgmock", "libvhalclient", ], shared_libs: [ @@ -41,6 +42,9 @@ cc_test { "use_libaidlvintf_gtest_helper_static", "vhalclient_defaults", ], + header_libs: [ + "IVehicleGeneratedHeaders", + ], test_suites: [ "general-tests", "vts", diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp index d3c34c554a69864b3303d3cd0e30dedebadeb402..4ea6dfe5f2888adb5f4562a56d55782a52964f0c 100644 --- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp +++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp @@ -19,12 +19,15 @@ #include #include #include +#include #include #include #include #include #include #include +#include +#include #include #include #include @@ -34,6 +37,7 @@ #include #include +#include #include #include #include @@ -46,21 +50,32 @@ using ::aidl::android::hardware::automotive::vehicle::VehicleProperty; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyAccess; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyChangeMode; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyGroup; +using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyStatus; using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyType; +using ::aidl::android::hardware::automotive::vehicle::VersionForVehicleProperty; using ::android::getAidlHalInstanceNames; +using ::android::uptimeMillis; using ::android::base::ScopedLockAssertion; using ::android::base::StringPrintf; using ::android::frameworks::automotive::vhal::ErrorCode; using ::android::frameworks::automotive::vhal::HalPropError; +using ::android::frameworks::automotive::vhal::IHalAreaConfig; using ::android::frameworks::automotive::vhal::IHalPropConfig; using ::android::frameworks::automotive::vhal::IHalPropValue; using ::android::frameworks::automotive::vhal::ISubscriptionCallback; using ::android::frameworks::automotive::vhal::IVhalClient; +using ::android::frameworks::automotive::vhal::SubscribeOptionsBuilder; +using ::android::frameworks::automotive::vhal::VhalClientResult; using ::android::hardware::getAllHalInstanceNames; using ::android::hardware::Sanitize; +using ::android::hardware::automotive::vehicle::isSystemProp; +using ::android::hardware::automotive::vehicle::propIdToString; using ::android::hardware::automotive::vehicle::toInt; +using ::testing::Ge; constexpr int32_t kInvalidProp = 0x31600207; +// The timeout for retrying getting prop value after setting prop value. +constexpr int64_t kRetryGetPropAfterSetPropTimeoutMillis = 10'000; struct ServiceDescriptor { std::string name; @@ -70,8 +85,8 @@ struct ServiceDescriptor { class VtsVehicleCallback final : public ISubscriptionCallback { private: std::mutex mLock; - std::unordered_map mEventsCount GUARDED_BY(mLock); - std::unordered_map> mEventTimestamps GUARDED_BY(mLock); + std::unordered_map>> mEvents + GUARDED_BY(mLock); std::condition_variable mEventCond; public: @@ -80,8 +95,7 @@ class VtsVehicleCallback final : public ISubscriptionCallback { std::lock_guard lockGuard(mLock); for (auto& value : values) { int32_t propId = value->getPropId(); - mEventsCount[propId] += 1; - mEventTimestamps[propId].push_back(value->getTimestamp()); + mEvents[propId].push_back(std::move(value->clone())); } } mEventCond.notify_one(); @@ -97,20 +111,37 @@ class VtsVehicleCallback final : public ISubscriptionCallback { std::unique_lock uniqueLock(mLock); return mEventCond.wait_for(uniqueLock, timeout, [this, propId, expectedEvents] { ScopedLockAssertion lockAssertion(mLock); - return mEventsCount[propId] >= expectedEvents; + return mEvents[propId].size() >= expectedEvents; }); } + std::vector> getEvents(int32_t propId) { + std::lock_guard lockGuard(mLock); + std::vector> events; + if (mEvents.find(propId) == mEvents.end()) { + return events; + } + for (const auto& eventPtr : mEvents[propId]) { + events.push_back(std::move(eventPtr->clone())); + } + return events; + } + std::vector getEventTimestamps(int32_t propId) { - { - std::lock_guard lockGuard(mLock); - return mEventTimestamps[propId]; + std::lock_guard lockGuard(mLock); + std::vector timestamps; + if (mEvents.find(propId) == mEvents.end()) { + return timestamps; + } + for (const auto& valuePtr : mEvents[propId]) { + timestamps.push_back(valuePtr->getTimestamp()); } + return timestamps; } void reset() { std::lock_guard lockGuard(mLock); - mEventsCount.clear(); + mEvents.clear(); } }; @@ -118,7 +149,15 @@ class VtsHalAutomotiveVehicleTargetTest : public testing::TestWithParam>& result); + static bool isResultOkayWithValue( + const VhalClientResult>& result, int32_t value); + public: + void verifyAccessMode(int actualAccess, int expectedAccess); + void verifyGlobalAccessIsMaximalAreaAccessSubset( + int propertyLevelAccess, + const std::vector>& areaConfigs) const; void verifyProperty(VehicleProperty propId, VehiclePropertyAccess access, VehiclePropertyChangeMode changeMode, VehiclePropertyGroup group, VehicleArea area, VehiclePropertyType propertyType); @@ -202,6 +241,58 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, getPropConfigsWithInvalidProp) { ASSERT_NE(result.error().message(), "") << "Expect error message not to be empty"; } +// Test system property IDs returned by getPropConfigs() are defined in the VHAL property interface. +TEST_P(VtsHalAutomotiveVehicleTargetTest, testPropConfigs_onlyDefinedSystemPropertyIdsReturned) { + if (!mVhalClient->isAidlVhal()) { + GTEST_SKIP() << "Skip for HIDL VHAL because HAL interface run-time version is only" + << "introduced for AIDL"; + } + + auto result = mVhalClient->getAllPropConfigs(); + ASSERT_TRUE(result.ok()) << "Failed to get all property configs, error: " + << result.error().message(); + + int32_t vhalVersion = mVhalClient->getRemoteInterfaceVersion(); + const auto& configs = result.value(); + for (size_t i = 0; i < configs.size(); i++) { + int32_t propId = configs[i]->getPropId(); + if (!isSystemProp(propId)) { + continue; + } + + std::string propName = propIdToString(propId); + auto it = VersionForVehicleProperty.find(static_cast(propId)); + bool found = (it != VersionForVehicleProperty.end()); + EXPECT_TRUE(found) << "System Property: " << propName + << " is not defined in VHAL property interface"; + if (!found) { + continue; + } + int32_t requiredVersion = it->second; + EXPECT_THAT(vhalVersion, Ge(requiredVersion)) + << "System Property: " << propName << " requires VHAL version: " << requiredVersion + << ", but the current VHAL version" + << " is " << vhalVersion << ", must not be supported"; + } +} + +TEST_P(VtsHalAutomotiveVehicleTargetTest, testPropConfigs_globalAccessIsMaximalAreaAccessSubset) { + if (!mVhalClient->isAidlVhal()) { + GTEST_SKIP() << "Skip for HIDL VHAL because HAL interface run-time version is only" + << "introduced for AIDL"; + } + + auto result = mVhalClient->getAllPropConfigs(); + ASSERT_TRUE(result.ok()) << "Failed to get all property configs, error: " + << result.error().message(); + + const auto& configs = result.value(); + for (size_t i = 0; i < configs.size(); i++) { + verifyGlobalAccessIsMaximalAreaAccessSubset(configs[i]->getAccess(), + configs[i]->getAreaConfigs()); + } +} + // Test get() return current value for properties. TEST_P(VtsHalAutomotiveVehicleTargetTest, get) { ALOGD("VtsHalAutomotiveVehicleTargetTest::get"); @@ -228,6 +319,27 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, getInvalidProp) { "Expect failure to get property for invalid prop: %" PRId32, kInvalidProp); } +bool VtsHalAutomotiveVehicleTargetTest::isResultOkayWithValue( + const VhalClientResult>& result, int32_t value) { + return result.ok() && result.value() != nullptr && + result.value()->getStatus() == VehiclePropertyStatus::AVAILABLE && + result.value()->getInt32Values().size() == 1 && + result.value()->getInt32Values()[0] == value; +} + +bool VtsHalAutomotiveVehicleTargetTest::isUnavailable( + const VhalClientResult>& result) { + if (!result.ok()) { + return result.error().code() == ErrorCode::NOT_AVAILABLE_FROM_VHAL; + } + if (result.value() != nullptr && + result.value()->getStatus() == VehiclePropertyStatus::UNAVAILABLE) { + return true; + } + + return false; +} + // Test set() on read_write properties. TEST_P(VtsHalAutomotiveVehicleTargetTest, setProp) { ALOGD("VtsHalAutomotiveVehicleTargetTest::setProp"); @@ -250,11 +362,24 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, setProp) { const IHalPropConfig& cfg = *cfgPtr; int32_t propId = cfg.getPropId(); // test on boolean and writable property - if (cfg.getAccess() == toInt(VehiclePropertyAccess::READ_WRITE) && - isBooleanGlobalProp(propId) && !hvacProps.count(propId)) { + bool isReadWrite = (cfg.getAccess() == toInt(VehiclePropertyAccess::READ_WRITE)); + if (cfg.getAreaConfigSize() != 0 && + cfg.getAreaConfigs()[0]->getAccess() != toInt(VehiclePropertyAccess::NONE)) { + isReadWrite = (cfg.getAreaConfigs()[0]->getAccess() == + toInt(VehiclePropertyAccess::READ_WRITE)); + } + if (isReadWrite && isBooleanGlobalProp(propId) && !hvacProps.count(propId)) { auto propToGet = mVhalClient->createHalPropValue(propId); auto getValueResult = mVhalClient->getValueSync(*propToGet); + if (isUnavailable(getValueResult)) { + ALOGW("getProperty for %" PRId32 + " returns NOT_AVAILABLE, " + "skip testing setProp", + propId); + return; + } + ASSERT_TRUE(getValueResult.ok()) << StringPrintf("Failed to get value for property: %" PRId32 ", error: %s", propId, getValueResult.error().message().c_str()); @@ -267,17 +392,48 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, setProp) { "Expect exactly 1 int value for boolean property: %" PRId32 ", got %zu", propId, intValueSize); - int setValue = value.getInt32Values()[0] == 1 ? 0 : 1; + int32_t setValue = value.getInt32Values()[0] == 1 ? 0 : 1; auto propToSet = mVhalClient->createHalPropValue(propId); propToSet->setInt32Values({setValue}); auto setValueResult = mVhalClient->setValueSync(*propToSet); + if (!setValueResult.ok() && + setValueResult.error().code() == ErrorCode::NOT_AVAILABLE_FROM_VHAL) { + ALOGW("setProperty for %" PRId32 + " returns NOT_AVAILABLE, " + "skip verifying getProperty returns the same value", + propId); + return; + } + ASSERT_TRUE(setValueResult.ok()) << StringPrintf("Failed to set value for property: %" PRId32 ", error: %s", propId, setValueResult.error().message().c_str()); + // Retry getting the value until we pass the timeout. getValue might not return + // the expected value immediately since setValue is async. + auto timeoutMillis = uptimeMillis() + kRetryGetPropAfterSetPropTimeoutMillis; + + while (true) { + getValueResult = mVhalClient->getValueSync(*propToGet); + if (isResultOkayWithValue(getValueResult, setValue)) { + break; + } + if (uptimeMillis() >= timeoutMillis) { + // Reach timeout, the following assert should fail. + break; + } + // Sleep for 100ms between each getValueSync retry. + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + } + + if (isUnavailable(getValueResult)) { + ALOGW("getProperty for %" PRId32 + " returns NOT_AVAILABLE, " + "skip verifying the return value", + propId); + return; + } - // check set success - getValueResult = mVhalClient->getValueSync(*propToGet); ASSERT_TRUE(getValueResult.ok()) << StringPrintf("Failed to get value for property: %" PRId32 ", error: %s", propId, getValueResult.error().message().c_str()); @@ -407,6 +563,92 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, subscribeAndUnsubscribe) { << "Expect not to get events after unsubscription"; } +bool isVariableUpdateRateSupported(const std::unique_ptr& config, int32_t areaId) { + for (const auto& areaConfigPtr : config->getAreaConfigs()) { + if (areaConfigPtr->getAreaId() == areaId && + areaConfigPtr->isVariableUpdateRateSupported()) { + return true; + } + } + return false; +} + +// Test subscribe with variable update rate enabled if supported. +TEST_P(VtsHalAutomotiveVehicleTargetTest, subscribe_enableVurIfSupported) { + ALOGD("VtsHalAutomotiveVehicleTargetTest::subscribe_enableVurIfSupported"); + + int32_t propId = toInt(VehicleProperty::PERF_VEHICLE_SPEED); + if (!checkIsSupported(propId)) { + GTEST_SKIP() << "Property: " << propId << " is not supported, skip the test"; + } + if (!mVhalClient->isAidlVhal()) { + GTEST_SKIP() << "Variable update rate is only supported by AIDL VHAL"; + } + + auto propConfigsResult = mVhalClient->getPropConfigs({propId}); + + ASSERT_TRUE(propConfigsResult.ok()) << "Failed to get property config for PERF_VEHICLE_SPEED: " + << "error: " << propConfigsResult.error().message(); + ASSERT_EQ(propConfigsResult.value().size(), 1u) + << "Expect to return 1 config for PERF_VEHICLE_SPEED"; + auto& propConfig = propConfigsResult.value()[0]; + float maxSampleRate = propConfig->getMaxSampleRate(); + if (maxSampleRate < 1) { + GTEST_SKIP() << "Sample rate for vehicle speed < 1 times/sec, skip test since it would " + "take too long"; + } + // PERF_VEHICLE_SPEED is a global property, so areaId is 0. + if (!isVariableUpdateRateSupported(propConfig, /* areaId= */ 0)) { + GTEST_SKIP() << "Variable update rate is not supported for PERF_VEHICLE_SPEED, " + << "skip testing"; + } + + auto client = mVhalClient->getSubscriptionClient(mCallback); + ASSERT_NE(client, nullptr) << "Failed to get subscription client"; + SubscribeOptionsBuilder builder(propId); + // By default variable update rate is true. + builder.setSampleRate(maxSampleRate); + auto option = builder.build(); + + auto result = client->subscribe({option}); + + ASSERT_TRUE(result.ok()) << StringPrintf("Failed to subscribe to property: %" PRId32 + ", error: %s", + propId, result.error().message().c_str()); + + ASSERT_TRUE(mCallback->waitForExpectedEvents(propId, 1, std::chrono::seconds(2))) + << "Must get at least 1 events within 2 seconds after subscription for rate: " + << maxSampleRate; + + // Sleep for 1 seconds to wait for more possible events to arrive. + std::this_thread::sleep_for(std::chrono::seconds(1)); + + client->unsubscribe({propId}); + + auto events = mCallback->getEvents(propId); + if (events.size() == 1) { + // We only received one event, the value is not changing so nothing to check here. + return; + } + + // Sort the values by the timestamp. + std::map valuesByTimestamp; + for (size_t i = 0; i < events.size(); i++) { + valuesByTimestamp[events[i]->getTimestamp()] = events[i]->getFloatValues()[0]; + } + + size_t i = 0; + float previousValue; + for (const auto& [_, value] : valuesByTimestamp) { + if (i != 0) { + ASSERT_FALSE(value != previousValue) << "received duplicate value: " << value + << " when variable update rate is true"; + } + previousValue = value; + i++; + } +} + // Test subscribe() with an invalid property. TEST_P(VtsHalAutomotiveVehicleTargetTest, subscribeInvalidProp) { ALOGD("VtsHalAutomotiveVehicleTargetTest::subscribeInvalidProp"); @@ -469,6 +711,59 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, testGetValuesTimestampAIDL) { } } +void VtsHalAutomotiveVehicleTargetTest::verifyAccessMode(int actualAccess, int expectedAccess) { + if (actualAccess == toInt(VehiclePropertyAccess::NONE)) { + return; + } + if (expectedAccess == toInt(VehiclePropertyAccess::READ_WRITE)) { + ASSERT_TRUE(actualAccess == expectedAccess || + actualAccess == toInt(VehiclePropertyAccess::READ)) + << StringPrintf("Expect to get VehiclePropertyAccess: %i or %i, got %i", + expectedAccess, toInt(VehiclePropertyAccess::READ), actualAccess); + return; + } + ASSERT_EQ(actualAccess, expectedAccess) << StringPrintf( + "Expect to get VehiclePropertyAccess: %i, got %i", expectedAccess, actualAccess); +} + +void VtsHalAutomotiveVehicleTargetTest::verifyGlobalAccessIsMaximalAreaAccessSubset( + int propertyLevelAccess, + const std::vector>& areaConfigs) const { + bool readOnlyPresent = false; + bool writeOnlyPresent = false; + bool readWritePresent = false; + int maximalAreaAccessSubset = toInt(VehiclePropertyAccess::NONE); + for (size_t i = 0; i < areaConfigs.size(); i++) { + int access = areaConfigs[i]->getAccess(); + switch (access) { + case toInt(VehiclePropertyAccess::READ): + readOnlyPresent = true; + break; + case toInt(VehiclePropertyAccess::WRITE): + writeOnlyPresent = true; + break; + case toInt(VehiclePropertyAccess::READ_WRITE): + readWritePresent = true; + break; + default: + ASSERT_EQ(access, toInt(VehiclePropertyAccess::NONE)) << StringPrintf( + "Area access can be NONE only if global property access is also NONE"); + return; + } + } + + if (readOnlyPresent && !writeOnlyPresent) { + maximalAreaAccessSubset = toInt(VehiclePropertyAccess::READ); + } else if (writeOnlyPresent) { + maximalAreaAccessSubset = toInt(VehiclePropertyAccess::WRITE); + } else if (readWritePresent) { + maximalAreaAccessSubset = toInt(VehiclePropertyAccess::READ_WRITE); + } + ASSERT_EQ(propertyLevelAccess, maximalAreaAccessSubset) << StringPrintf( + "Expected global access to be equal to maximal area access subset %d, Instead got %d", + maximalAreaAccessSubset, propertyLevelAccess); +} + // Helper function to compare actual vs expected property config void VtsHalAutomotiveVehicleTargetTest::verifyProperty(VehicleProperty propId, VehiclePropertyAccess access, @@ -511,7 +806,6 @@ void VtsHalAutomotiveVehicleTargetTest::verifyProperty(VehicleProperty propId, const auto& config = result.value().at(0); int actualPropId = config->getPropId(); - int actualAccess = config->getAccess(); int actualChangeMode = config->getChangeMode(); int actualGroup = actualPropId & toInt(VehiclePropertyGroup::MASK); int actualArea = actualPropId & toInt(VehicleArea::MASK); @@ -520,14 +814,17 @@ void VtsHalAutomotiveVehicleTargetTest::verifyProperty(VehicleProperty propId, ASSERT_EQ(actualPropId, expectedPropId) << StringPrintf("Expect to get property ID: %i, got %i", expectedPropId, actualPropId); - if (expectedAccess == toInt(VehiclePropertyAccess::READ_WRITE)) { - ASSERT_TRUE(actualAccess == expectedAccess || - actualAccess == toInt(VehiclePropertyAccess::READ)) - << StringPrintf("Expect to get VehiclePropertyAccess: %i or %i, got %i", - expectedAccess, toInt(VehiclePropertyAccess::READ), actualAccess); + int globalAccess = config->getAccess(); + if (config->getAreaConfigSize() == 0) { + verifyAccessMode(globalAccess, expectedAccess); } else { - ASSERT_EQ(actualAccess, expectedAccess) << StringPrintf( - "Expect to get VehiclePropertyAccess: %i, got %i", expectedAccess, actualAccess); + for (const auto& areaConfig : config->getAreaConfigs()) { + int areaConfigAccess = areaConfig->getAccess(); + int actualAccess = (areaConfigAccess != toInt(VehiclePropertyAccess::NONE)) + ? areaConfigAccess + : globalAccess; + verifyAccessMode(actualAccess, expectedAccess); + } } ASSERT_EQ(actualChangeMode, expectedChangeMode) @@ -557,7 +854,7 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyUltrasonicsSensorPositionConfig) TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyUltrasonicsSensorOrientationConfig) { verifyProperty(VehicleProperty::ULTRASONICS_SENSOR_ORIENTATION, VehiclePropertyAccess::READ, VehiclePropertyChangeMode::STATIC, VehiclePropertyGroup::SYSTEM, - VehicleArea::VENDOR, VehiclePropertyType::INT32_VEC); + VehicleArea::VENDOR, VehiclePropertyType::FLOAT_VEC); } TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyUltrasonicsSensorFieldOfViewConfig) { @@ -579,6 +876,13 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyUltrasonicsSensorSupportedRanges VehiclePropertyType::INT32_VEC); } +TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyUltrasonicsSensorMeasuredDistanceConfig) { + verifyProperty(VehicleProperty::ULTRASONICS_SENSOR_MEASURED_DISTANCE, + VehiclePropertyAccess::READ, VehiclePropertyChangeMode::CONTINUOUS, + VehiclePropertyGroup::SYSTEM, VehicleArea::VENDOR, + VehiclePropertyType::INT32_VEC); +} + TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyEmergencyLaneKeepAssistEnabledConfig) { verifyProperty(VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_ENABLED, VehiclePropertyAccess::READ_WRITE, VehiclePropertyChangeMode::ON_CHANGE, @@ -976,6 +1280,12 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyVehicleDrivingAutomationCurrentL VehiclePropertyGroup::SYSTEM, VehicleArea::GLOBAL, VehiclePropertyType::INT32); } +TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyCameraServiceCurrentStateConfig) { + verifyProperty(VehicleProperty::CAMERA_SERVICE_CURRENT_STATE, VehiclePropertyAccess::WRITE, + VehiclePropertyChangeMode::ON_CHANGE, VehiclePropertyGroup::SYSTEM, + VehicleArea::GLOBAL, VehiclePropertyType::INT32_VEC); +} + TEST_P(VtsHalAutomotiveVehicleTargetTest, verifySeatAirbagsDeployedConfig) { verifyProperty(VehicleProperty::SEAT_AIRBAGS_DEPLOYED, VehiclePropertyAccess::READ, VehiclePropertyChangeMode::ON_CHANGE, VehiclePropertyGroup::SYSTEM, @@ -1042,6 +1352,24 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyCrossTrafficMonitoringWarningSta VehiclePropertyGroup::SYSTEM, VehicleArea::GLOBAL, VehiclePropertyType::INT32); } +TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyHeadUpDisplayEnabledConfig) { + verifyProperty(VehicleProperty::HEAD_UP_DISPLAY_ENABLED, VehiclePropertyAccess::READ_WRITE, + VehiclePropertyChangeMode::ON_CHANGE, VehiclePropertyGroup::SYSTEM, + VehicleArea::SEAT, VehiclePropertyType::BOOLEAN); +} + +TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyLowSpeedAutomaticEmergencyBrakingEnabledConfig) { + verifyProperty(VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, + VehiclePropertyAccess::READ_WRITE, VehiclePropertyChangeMode::ON_CHANGE, + VehiclePropertyGroup::SYSTEM, VehicleArea::GLOBAL, VehiclePropertyType::BOOLEAN); +} + +TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyLowSpeedAutomaticEmergencyBrakingStateConfig) { + verifyProperty(VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, + VehiclePropertyAccess::READ, VehiclePropertyChangeMode::ON_CHANGE, + VehiclePropertyGroup::SYSTEM, VehicleArea::GLOBAL, VehiclePropertyType::INT32); +} + bool VtsHalAutomotiveVehicleTargetTest::checkIsSupported(int32_t propertyId) { auto result = mVhalClient->getPropConfigs({propertyId}); return result.ok(); @@ -1055,7 +1383,8 @@ std::vector getDescriptors() { .isAidlService = true, }); } - for (std::string name : getAllHalInstanceNames(IVehicle::descriptor)) { + for (std::string name : getAllHalInstanceNames( + android::hardware::automotive::vehicle::V2_0::IVehicle::descriptor)) { descriptors.push_back({ .name = name, .isAidlService = false, diff --git a/biometrics/common/aidl/Android.bp b/biometrics/common/aidl/Android.bp index 8502a82ee78a4dbe5ab6010fc20b8da2edb81b88..246bcf2a40359772fe06a0abd1434bf5d2990382 100644 --- a/biometrics/common/aidl/Android.bp +++ b/biometrics/common/aidl/Android.bp @@ -13,7 +13,7 @@ aidl_interface { srcs: [ "android/hardware/biometrics/common/*.aidl", ], - frozen: false, + frozen: true, stability: "vintf", backend: { java: { @@ -36,6 +36,10 @@ aidl_interface { version: "3", imports: [], }, + { + version: "4", + imports: [], + }, ], } diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/.hash b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/.hash new file mode 100644 index 0000000000000000000000000000000000000000..fce53f1e813659c7cc053f30270277831f9054be --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/.hash @@ -0,0 +1 @@ +8a6cd86630181a4df6f20056259ec200ffe39209 diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/AuthenticateReason.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/AuthenticateReason.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f639ead601f6a077c522be527f64e1c56c442a24 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/AuthenticateReason.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +union AuthenticateReason { + android.hardware.biometrics.common.AuthenticateReason.Vendor vendorAuthenticateReason; + android.hardware.biometrics.common.AuthenticateReason.Face faceAuthenticateReason; + android.hardware.biometrics.common.AuthenticateReason.Fingerprint fingerprintAuthenticateReason; + @VintfStability + parcelable Vendor { + ParcelableHolder extension; + } + @Backing(type="int") @VintfStability + enum Fingerprint { + UNKNOWN, + } + @Backing(type="int") @VintfStability + enum Face { + UNKNOWN, + STARTED_WAKING_UP, + PRIMARY_BOUNCER_SHOWN, + ASSISTANT_VISIBLE, + ALTERNATE_BIOMETRIC_BOUNCER_SHOWN, + NOTIFICATION_PANEL_CLICKED, + OCCLUDING_APP_REQUESTED, + PICK_UP_GESTURE_TRIGGERED, + QS_EXPANDED, + SWIPE_UP_ON_BOUNCER, + UDFPS_POINTER_DOWN, + } +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/CommonProps.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/CommonProps.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1eb85413525f9cb6096a8f8b5a985d251fe729da --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/CommonProps.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +parcelable CommonProps { + int sensorId; + android.hardware.biometrics.common.SensorStrength sensorStrength = android.hardware.biometrics.common.SensorStrength.CONVENIENCE; + int maxEnrollmentsPerUser; + android.hardware.biometrics.common.ComponentInfo[] componentInfo; +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ComponentInfo.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ComponentInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..471ed2ba370c6076ac8feac7a0c7595c5821b719 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ComponentInfo.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +parcelable ComponentInfo { + String componentId; + String hardwareVersion; + String firmwareVersion; + String serialNumber; + String softwareVersion; +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/DisplayState.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/DisplayState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..176e8d603b5c9cabe396689c7c3a868c1e6d6450 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/DisplayState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum DisplayState { + UNKNOWN, + LOCKSCREEN, + NO_UI, + SCREENSAVER, + AOD, +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/FoldState.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/FoldState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..06baf00638d966f63042ff63fb22649c68edb59f --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/FoldState.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum FoldState { + UNKNOWN, + HALF_OPENED, + FULLY_OPENED, + FULLY_CLOSED, +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ICancellationSignal.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ICancellationSignal.aidl new file mode 100644 index 0000000000000000000000000000000000000000..670114f10a1c1596a8a3245335655ac7956b8fb8 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/ICancellationSignal.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +interface ICancellationSignal { + oneway void cancel(); +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationContext.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationContext.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8d913c8f10777af5516845366897c498a30cdc86 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationContext.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +parcelable OperationContext { + int id = 0; + android.hardware.biometrics.common.OperationReason reason = android.hardware.biometrics.common.OperationReason.UNKNOWN; + /** + * @deprecated use displayState instead. + */ + boolean isAod = false; + boolean isCrypto = false; + android.hardware.biometrics.common.WakeReason wakeReason = android.hardware.biometrics.common.WakeReason.UNKNOWN; + android.hardware.biometrics.common.DisplayState displayState = android.hardware.biometrics.common.DisplayState.UNKNOWN; + @nullable android.hardware.biometrics.common.AuthenticateReason authenticateReason; + android.hardware.biometrics.common.FoldState foldState = android.hardware.biometrics.common.FoldState.UNKNOWN; + @nullable android.hardware.biometrics.common.OperationState operationState; +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationReason.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationReason.aidl new file mode 100644 index 0000000000000000000000000000000000000000..188054a45a3a7dd71493495e9c0aa01813b4ebd7 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationReason.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@Backing(type="byte") @VintfStability +enum OperationReason { + UNKNOWN, + BIOMETRIC_PROMPT, + KEYGUARD, +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationState.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fca95252fcbb24e028b5a7f6f1e3c3c5e4566f14 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/OperationState.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +union OperationState { + android.hardware.biometrics.common.OperationState.FingerprintOperationState fingerprintOperationState; + android.hardware.biometrics.common.OperationState.FaceOperationState faceOperationState; + @VintfStability + parcelable FingerprintOperationState { + ParcelableHolder extension; + boolean isHardwareIgnoringTouches = false; + } + @VintfStability + parcelable FaceOperationState { + ParcelableHolder extension; + } +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/SensorStrength.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/SensorStrength.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c93178167df98f257cf507daaa92b6a235794603 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/SensorStrength.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@Backing(type="byte") @VintfStability +enum SensorStrength { + CONVENIENCE, + WEAK, + STRONG, +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/WakeReason.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/WakeReason.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6a087762805619e2e25b0d51b6727c08efd8d680 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/4/android/hardware/biometrics/common/WakeReason.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum WakeReason { + UNKNOWN, + POWER_BUTTON, + GESTURE, + WAKE_KEY, + WAKE_MOTION, + LID, + DISPLAY_GROUP_ADDED, + TAP, + LIFT, + BIOMETRIC, +} diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationContext.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationContext.aidl index 42c305a985c1a6072c5fbebda0380e4ce726a358..8d913c8f10777af5516845366897c498a30cdc86 100644 --- a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationContext.aidl +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationContext.aidl @@ -46,4 +46,5 @@ parcelable OperationContext { android.hardware.biometrics.common.DisplayState displayState = android.hardware.biometrics.common.DisplayState.UNKNOWN; @nullable android.hardware.biometrics.common.AuthenticateReason authenticateReason; android.hardware.biometrics.common.FoldState foldState = android.hardware.biometrics.common.FoldState.UNKNOWN; + @nullable android.hardware.biometrics.common.OperationState operationState; } diff --git a/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationState.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fca95252fcbb24e028b5a7f6f1e3c3c5e4566f14 --- /dev/null +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/OperationState.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.common; +/* @hide */ +@VintfStability +union OperationState { + android.hardware.biometrics.common.OperationState.FingerprintOperationState fingerprintOperationState; + android.hardware.biometrics.common.OperationState.FaceOperationState faceOperationState; + @VintfStability + parcelable FingerprintOperationState { + ParcelableHolder extension; + boolean isHardwareIgnoringTouches = false; + } + @VintfStability + parcelable FaceOperationState { + ParcelableHolder extension; + } +} diff --git a/biometrics/common/aidl/android/hardware/biometrics/common/OperationContext.aidl b/biometrics/common/aidl/android/hardware/biometrics/common/OperationContext.aidl index 584057d1b5ac1b106318c8b4ff841b53d8c94fa9..5f9844f94f66bc9db9004ac55a23a3cc6268ef74 100644 --- a/biometrics/common/aidl/android/hardware/biometrics/common/OperationContext.aidl +++ b/biometrics/common/aidl/android/hardware/biometrics/common/OperationContext.aidl @@ -20,6 +20,7 @@ import android.hardware.biometrics.common.AuthenticateReason; import android.hardware.biometrics.common.DisplayState; import android.hardware.biometrics.common.FoldState; import android.hardware.biometrics.common.OperationReason; +import android.hardware.biometrics.common.OperationState; import android.hardware.biometrics.common.WakeReason; /** @@ -75,4 +76,7 @@ parcelable OperationContext { /** The current fold/unfold state. */ FoldState foldState = FoldState.UNKNOWN; + + /** An associated operation state for this operation. */ + @nullable OperationState operationState; } diff --git a/biometrics/common/aidl/android/hardware/biometrics/common/OperationState.aidl b/biometrics/common/aidl/android/hardware/biometrics/common/OperationState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..40cf589569bb3141e571fa3007728127cced0d18 --- /dev/null +++ b/biometrics/common/aidl/android/hardware/biometrics/common/OperationState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.biometrics.common; + +/** + * Additional state associated with an operation + * + * @hide + */ +@VintfStability +union OperationState { + /** Operation state related to fingerprint*/ + @VintfStability + parcelable FingerprintOperationState { + ParcelableHolder extension; + + /** Flag indicating if the HAL should ignore touches on the fingerprint sensor */ + boolean isHardwareIgnoringTouches = false; + } + + /** Operation state related to face*/ + @VintfStability + parcelable FaceOperationState { + ParcelableHolder extension; + } + + OperationState.FingerprintOperationState fingerprintOperationState; + OperationState.FaceOperationState faceOperationState; +} diff --git a/biometrics/common/config/Android.bp b/biometrics/common/config/Android.bp new file mode 100644 index 0000000000000000000000000000000000000000..d38ffe861ceab9fad1569367b704c04e0866f77c --- /dev/null +++ b/biometrics/common/config/Android.bp @@ -0,0 +1,48 @@ +// +// Copyright (C) 2024 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +cc_library { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "hardware_interfaces_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + name: "android.hardware.biometrics.common.config", + export_include_dirs: ["include"], + vendor: true, + srcs: [ + "Config.cpp", + ], + shared_libs: [ + "libbase", + "libbinder_ndk", + ], +} + +cc_test_host { + name: "android.hardware.biometrics.common.ConfigTest", + local_include_dirs: ["include"], + srcs: [ + "tests/ConfigTest.cpp", + "Config.cpp", + ], + shared_libs: [ + "libbase", + "libcutils", + "liblog", + ], + test_suites: ["general-tests"], +} diff --git a/biometrics/common/config/Config.cpp b/biometrics/common/config/Config.cpp new file mode 100644 index 0000000000000000000000000000000000000000..01ae86461d9b0fefce3842a21425cfa40f446c77 --- /dev/null +++ b/biometrics/common/config/Config.cpp @@ -0,0 +1,150 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "VirtualHalConfig" + +#include "config/Config.h" +#include +#include +#include "../../util/include/util/Util.h" + +using ::android::base::ParseInt; + +namespace aidl::android::hardware::biometrics { + +Config::Config() : mSource(Config::ConfigSourceType::SOURCE_SYSPROP) {} + +ConfigValue Config::parseBool(const std::string& value) { + OptBool res; + if (value == "true") + res.emplace(true); + else if (value == "false") + res.emplace(false); + else + LOG(ERROR) << "ERROR: invalid bool " << value; + return res; +} + +ConfigValue Config::parseString(const std::string& value) { + OptString res; + if (!value.empty()) res.emplace(value); + return res; +} + +ConfigValue Config::parseInt32(const std::string& value) { + OptInt32 res; + if (!value.empty()) { + std::int32_t val; + if (ParseInt(value, &val)) res.emplace(val); + } + return res; +} + +ConfigValue Config::parseInt64(const std::string& value) { + OptInt64 res; + if (!value.empty()) { + std::int64_t val = std::strtoull(value.c_str(), nullptr, 10); + if (val != 0LL or (val == 0LL && value == "0")) { + res.emplace(val); + } + } + return res; +} + +ConfigValue Config::parseIntVec(const std::string& value) { + OptIntVec res; + for (auto& i : Util::parseIntSequence(value)) { + res.push_back(i); + } + return res; +} + +void Config::init() { + LOG(INFO) << "calling init()"; + int len = 0; + Config::Data* pd = getConfigData(&len); + for (int i = 0; i < len; i++) { + LOG(INFO) << "init():" << pd->name; + pd->value = (this->*(pd->parser))(pd->defaultValue); + setConfig(pd->name, *pd); + ++pd; + } +} + +bool Config::setParam(const std::string& name, const std::string& value) { + auto it = mMap.find(name); + if (it == mMap.end()) { + LOG(ERROR) << "ERROR: setParam unknown config name " << name; + return false; + } + LOG(INFO) << "setParam name=" << name << "=" << value; + + it->second.value = (this->*(it->second.parser))(value); + + mSource = ConfigSourceType::SOURCE_AIDL; + + return true; +} + +ConfigValue Config::getInternal(const std::string& name) { + ConfigValue res; + + auto data = mMap[name]; + switch (mSource) { + case ConfigSourceType::SOURCE_SYSPROP: + res = data.getter(); + break; + case ConfigSourceType::SOURCE_AIDL: + res = data.value; + break; + case ConfigSourceType::SOURCE_FILE: + LOG(WARNING) << "Unsupported"; + break; + default: + LOG(ERROR) << " wrong srouce type " << (int)mSource; + break; + } + + return res; +} + +ConfigValue Config::getDefault(const std::string& name) { + return mMap[name].value; +} + +bool Config::setInternal(const std::string& name, const ConfigValue& val) { + bool res = false; + auto data = mMap[name]; + + switch (mSource) { + case ConfigSourceType::SOURCE_SYSPROP: + res = data.setter(val); + break; + case ConfigSourceType::SOURCE_AIDL: + data.value = val; + res = true; + break; + case ConfigSourceType::SOURCE_FILE: + LOG(WARNING) << "Unsupported"; + break; + default: + LOG(ERROR) << " wrong srouce type " << (int)mSource; + break; + } + + return res; +} +} // namespace aidl::android::hardware::biometrics diff --git a/biometrics/common/config/include/config/Config.h b/biometrics/common/config/include/config/Config.h new file mode 100644 index 0000000000000000000000000000000000000000..864e16465fb3d5ee2629cc546d9cd7cc867de4a9 --- /dev/null +++ b/biometrics/common/config/include/config/Config.h @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace aidl::android::hardware::biometrics { + +using OptBool = std::optional; +using OptInt32 = std::optional; +using OptInt64 = std::optional; +using OptString = std::optional; +using OptIntVec = std::vector>; + +using ConfigValue = std::variant; + +class Config { + public: + struct Data { + std::string name; + ConfigValue (*getter)(); + bool (*setter)(const ConfigValue&); + ConfigValue (Config::*parser)(const std::string&); + std::string defaultValue; + ConfigValue value; + }; + enum class ConfigSourceType { SOURCE_SYSPROP, SOURCE_AIDL, SOURCE_FILE }; + + public: + Config(); + virtual ~Config() = default; + + template + T get(const std::string& name) { + CHECK(mMap.count(name) > 0) << " biometric/config get invalid name: " << name; + std::optional optval = std::get>(getInternal(name)); + if (!optval) optval = std::get>(getDefault(name)); + if (optval) return optval.value(); + return T(); + } + template + bool set(const std::string& name, const T& val) { + CHECK(mMap.count(name) > 0) << " biometric/config set invalid name: " << name; + std::optional aval(val); + ConfigValue cval(aval); + return setInternal(name, cval); + } + template + T getopt(const std::string& name) { + CHECK(mMap.count(name) > 0) << " biometric/config get invalid name: " << name; + return std::get(getInternal(name)); + } + template + bool setopt(const std::string& name, const T& val) { + CHECK(mMap.count(name) > 0) << " biometric/config set invalid name: " << name; + ConfigValue cval(val); + return setInternal(name, cval); + } + + void init(); + + virtual Config::Data* getConfigData(int* size) = 0; + bool setParam(const std::string& name, const std::string& value); + + ConfigValue parseBool(const std::string& value); + ConfigValue parseString(const std::string& name); + ConfigValue parseInt32(const std::string& value); + ConfigValue parseInt64(const std::string& value); + ConfigValue parseIntVec(const std::string& value); + + protected: + void setConfig(const std::string& name, const Config::Data& value) { mMap[name] = value; } + + private: + ConfigValue getInternal(const std::string& name); + bool setInternal(const std::string& name, const ConfigValue& val); + ConfigValue getDefault(const std::string& name); + + Config::ConfigSourceType mSource; + std::map mMap; +}; + +} // namespace aidl::android::hardware::biometrics diff --git a/biometrics/common/config/tests/ConfigTest.cpp b/biometrics/common/config/tests/ConfigTest.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d92204015d8d7e60d9c928d2553967babc50d40a --- /dev/null +++ b/biometrics/common/config/tests/ConfigTest.cpp @@ -0,0 +1,266 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "config/Config.h" + +#define LOG_TAG "ConfigTest" +#include + +// using namespace ::testing::Eq; +using namespace testing; + +#define SP_DEFAULT_astring "astringSP" +#define SP_DEFAULT_aint32 32 +#define SP_DEFAULT_aint64 64 +#define SP_DEFAULT_abool false +#define SP_DEFAULT_avector \ + { 1, 2, 3 } +namespace aidl::android::hardware::biometrics { +namespace TestHalProperties { +OptString val_astring = SP_DEFAULT_astring; +OptInt32 val_aint32 = SP_DEFAULT_aint32; +OptInt64 val_aint64 = SP_DEFAULT_aint64; +OptBool val_abool = SP_DEFAULT_abool; +OptIntVec val_avector = SP_DEFAULT_avector; + +OptString astring() { + return val_astring; +} +bool astring(const OptString& v) { + val_astring = v; + return true; +} +OptInt32 aint32() { + return val_aint32; +} +bool aint32(const OptInt32& v) { + val_aint32 = v; + return true; +} +OptInt64 aint64() { + return val_aint64; +} +bool aint64(const OptInt64& v) { + val_aint64 = v; + return true; +} +OptBool abool() { + return val_abool; +} +bool abool(const OptBool& v) { + val_abool = v; + return true; +} +OptIntVec avector() { + return val_avector; +} +bool avector(const OptIntVec& v) { + val_avector = v; + return true; +} +} // namespace TestHalProperties +using namespace TestHalProperties; +#define AIDL_DEFAULT_astring "astringAIDL" +#define AIDL_DEFAULT_aint32 "320" +#define AIDL_DEFAULT_aint64 "640" +#define AIDL_DEFAULT_abool "true" +#define AIDL_DEFAULT_avector "10,20,30" +#define CREATE_GETTER_SETTER_WRAPPER(_NAME_, _T_) \ + ConfigValue _NAME_##Getter() { \ + return TestHalProperties::_NAME_(); \ + } \ + bool _NAME_##Setter(const ConfigValue& v) { \ + return TestHalProperties::_NAME_(std::get<_T_>(v)); \ + } +CREATE_GETTER_SETTER_WRAPPER(astring, OptString) +CREATE_GETTER_SETTER_WRAPPER(aint32, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(aint64, OptInt64) +CREATE_GETTER_SETTER_WRAPPER(abool, OptBool) +CREATE_GETTER_SETTER_WRAPPER(avector, std::vector) + +// Name,Getter, Setter, Parser and default value +#define NGS(_NAME_) #_NAME_, _NAME_##Getter, _NAME_##Setter +static Config::Data configData[] = { + {NGS(astring), &Config::parseString, AIDL_DEFAULT_astring}, + {NGS(aint32), &Config::parseInt32, AIDL_DEFAULT_aint32}, + {NGS(aint64), &Config::parseInt64, AIDL_DEFAULT_aint64}, + {NGS(abool), &Config::parseBool, AIDL_DEFAULT_abool}, + {NGS(avector), &Config::parseIntVec, AIDL_DEFAULT_avector}, +}; + +class TestConfig : public Config { + Config::Data* getConfigData(int* size) { + *size = sizeof(configData) / sizeof(configData[0]); + return configData; + } +}; + +class ConfigTest : public ::testing::Test { + protected: + void SetUp() override { cfg.init(); } + void TearDown() override {} + + void switch2aidl() { cfg.setParam("astring", "astring"); } + + TestConfig cfg; +}; + +TEST_F(ConfigTest, parseInt32) { + std::int32_t defval = 5678; + struct { + std::string strval; + std::int32_t expval; + } values[] = { + {"1234", 1234}, + {"0", 0}, + {"", defval}, + {"xyz", defval}, + }; + for (int i = 0; i < sizeof(values) / sizeof(values[0]); i++) { + ASSERT_EQ((std::get(cfg.parseInt32(values[i].strval))).value_or(defval), + values[i].expval); + } +} + +TEST_F(ConfigTest, parseInt64) { + std::int64_t defval = 5678; + struct { + std::string strval; + std::int64_t expval; + } values[] = { + {"1234", 1234}, {"12345678909876", 12345678909876}, {"0", 0}, {"", defval}, + {"xyz", defval}, + }; + for (int i = 0; i < sizeof(values) / sizeof(values[0]); i++) { + ASSERT_EQ((std::get(cfg.parseInt64(values[i].strval))).value_or(defval), + values[i].expval); + } +} + +TEST_F(ConfigTest, parseBool) { + bool defval = true; + struct { + std::string strval; + bool expval; + } values[] = { + {"false", false}, + {"true", true}, + {"", defval}, + {"xyz", defval}, + }; + for (int i = 0; i < sizeof(values) / sizeof(values[0]); i++) { + ASSERT_EQ((std::get(cfg.parseBool(values[i].strval))).value_or(defval), + values[i].expval); + } +} + +TEST_F(ConfigTest, parseIntVec) { + std::vector> defval = {}; + struct { + std::string strval; + std::vector> expval; + } values[] = { + {"1", {1}}, {"1,2,3", {1, 2, 3}}, {"1,2,b", defval}, {"", defval}, {"xyz", defval}, + }; + for (int i = 0; i < sizeof(values) / sizeof(values[0]); i++) { + ASSERT_EQ(std::get(cfg.parseIntVec(values[i].strval)), values[i].expval); + } +} + +TEST_F(ConfigTest, getters_sp) { + ASSERT_EQ(cfg.get("astring"), val_astring); + ASSERT_EQ(cfg.get("aint32"), val_aint32); + ASSERT_EQ(cfg.get("aint64"), val_aint64); + ASSERT_EQ(cfg.get("abool"), val_abool); + OptIntVec exp{val_avector}; + EXPECT_EQ(cfg.getopt("avector"), exp); +} + +TEST_F(ConfigTest, setters_sp) { + std::string val_astring_new("astringNew"); + ASSERT_TRUE(cfg.set("astring", val_astring_new)); + ASSERT_EQ(cfg.get("astring"), val_astring_new); + + std::int32_t val_aint32_new = val_aint32.value() + 100; + ASSERT_TRUE(cfg.set("aint32", val_aint32_new)); + ASSERT_EQ(cfg.get("aint32"), val_aint32_new); + + std::int64_t val_aint64_new = val_aint64.value() + 200; + ASSERT_TRUE(cfg.set("aint64", val_aint64_new)); + ASSERT_EQ(cfg.get("aint64"), val_aint64_new); + + bool val_abool_new = !val_abool.value(); + ASSERT_TRUE(cfg.set("abool", val_abool_new)); + ASSERT_EQ(cfg.get("abool"), val_abool_new); + + OptIntVec val_avector_new{100, 200}; + ASSERT_TRUE(cfg.setopt("avector", val_avector_new)); + EXPECT_EQ(cfg.getopt("avector"), val_avector_new); +} + +TEST_F(ConfigTest, setters_sp_null) { + val_astring = std::nullopt; + ASSERT_EQ(cfg.get("astring"), + (std::get(cfg.parseString(AIDL_DEFAULT_astring))).value()); +} + +TEST_F(ConfigTest, getters_aidl) { + cfg.setParam("astring", "astringAIDL"); + ASSERT_EQ(cfg.get("astring"), + (std::get(cfg.parseString(AIDL_DEFAULT_astring))).value()); + ASSERT_EQ(cfg.get("aint32"), + (std::get(cfg.parseInt32(AIDL_DEFAULT_aint32))).value()); + ASSERT_EQ(cfg.get("aint64"), + (std::get(cfg.parseInt64(AIDL_DEFAULT_aint64))).value()); + ASSERT_EQ(cfg.get("abool"), + (std::get(cfg.parseBool(AIDL_DEFAULT_abool))).value()); + OptIntVec exp{std::get(cfg.parseIntVec(AIDL_DEFAULT_avector))}; + EXPECT_EQ(cfg.getopt("avector"), exp); +} + +TEST_F(ConfigTest, setters_aidl) { + std::string val_astring_new("astringNewAidl"); + ASSERT_TRUE(cfg.set("astring", val_astring_new)); + ASSERT_EQ(cfg.get("astring"), val_astring_new); + + std::int32_t val_aint32_new = val_aint32.value() + 1000; + ASSERT_TRUE(cfg.set("aint32", val_aint32_new)); + ASSERT_EQ(cfg.get("aint32"), val_aint32_new); + + std::int64_t val_aint64_new = val_aint64.value() + 2000; + ASSERT_TRUE(cfg.set("aint64", val_aint64_new)); + ASSERT_EQ(cfg.get("aint64"), val_aint64_new); + + bool val_abool_new = !val_abool.value(); + ASSERT_TRUE(cfg.set("abool", val_abool_new)); + ASSERT_EQ(cfg.get("abool"), val_abool_new); + + OptIntVec val_avector_new{1000, 2000}; + ASSERT_TRUE(cfg.setopt("avector", val_avector_new)); + EXPECT_EQ(cfg.getopt("avector"), val_avector_new); +} + +TEST_F(ConfigTest, setParam) { + ASSERT_TRUE(cfg.setParam("aint32", "789")); + ASSERT_EQ(cfg.get("aint32"), 789); + ASSERT_TRUE(cfg.setParam("avector", "7,8,9,10")); + OptIntVec val_avector_new{7, 8, 9, 10}; + EXPECT_EQ(cfg.getopt("avector"), val_avector_new); + ASSERT_FALSE(cfg.setParam("unknown", "any")); +} +} // namespace aidl::android::hardware::biometrics diff --git a/biometrics/common/util/include/util/Util.h b/biometrics/common/util/include/util/Util.h index efd66bc373c423840de307686b35af85781c4cf2..078669d3855f743375cdf69b4e3c59a531cad74c 100644 --- a/biometrics/common/util/include/util/Util.h +++ b/biometrics/common/util/include/util/Util.h @@ -80,7 +80,9 @@ class Util { if (ParseInt(seq, &val)) { res.push_back(val); } else { - LOG(WARNING) << "Invalid int sequence:" + str + " seq:" + seq; + if (!str.empty()) { + LOG(WARNING) << "Invalid int sequence:" + str + " seq:" + seq; + } res.clear(); break; } diff --git a/biometrics/face/aidl/Android.bp b/biometrics/face/aidl/Android.bp index 7adf402f8123e881ce494522e79c277129d2e5e3..fadcde7892ebbf2de6f4e748f0d3f66609a23af0 100644 --- a/biometrics/face/aidl/Android.bp +++ b/biometrics/face/aidl/Android.bp @@ -29,6 +29,9 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, ndk: { additional_shared_libraries: [ "libnativewindow", diff --git a/biometrics/face/aidl/default/Face.cpp b/biometrics/face/aidl/default/Face.cpp index 652a7e1f6c7f59a40797f2f5f22e1de0989455f0..5ae0df6e56c676b4a802cafdb70cfd0179d27a2e 100644 --- a/biometrics/face/aidl/default/Face.cpp +++ b/biometrics/face/aidl/default/Face.cpp @@ -14,11 +14,23 @@ * limitations under the License. */ +#undef LOG_TAG +#define LOG_TAG "FaceVirtualHal" + #include "Face.h" #include "Session.h" #include "FakeFaceEngine.h" +#include +#include + +#include +#include +#include + +using namespace ::android::face::virt; + namespace aidl::android::hardware::biometrics::face { const int kSensorId = 4; @@ -68,11 +80,105 @@ ndk::ScopedAStatus Face::getSensorProps(std::vector* return_val) { return ndk::ScopedAStatus::ok(); } -ndk::ScopedAStatus Face::createSession(int32_t /*sensorId*/, int32_t /*userId*/, +ndk::ScopedAStatus Face::createSession(int32_t sensorId, int32_t userId, const std::shared_ptr& cb, std::shared_ptr* return_val) { - *return_val = SharedRefBase::make(std::make_unique(), cb); + mSession = SharedRefBase::make(std::make_unique(), cb); + *return_val = mSession; + + mSession->linkToDeath(cb->asBinder().get()); + + LOG(INFO) << __func__ << ": sensorId:" << sensorId << " userId:" << userId; return ndk::ScopedAStatus::ok(); } +binder_status_t Face::dump(int fd, const char** /*args*/, uint32_t numArgs) { + if (fd < 0) { + LOG(ERROR) << __func__ << "fd invalid: " << fd; + return STATUS_BAD_VALUE; + } else { + LOG(INFO) << __func__ << " fd:" << fd << "numArgs:" << numArgs; + } + + dprintf(fd, "----- FaceVirtualHal::dump -----\n"); + std::vector sps(1); + getSensorProps(&sps); + for (auto& sp : sps) { + ::android::base::WriteStringToFd(sp.toString(), fd); + } + if (mSession != nullptr) { + ::android::base::WriteStringToFd(mSession->toString(), fd); + } else { + dprintf(fd, "\nWARNING: no ISession found\n"); + } + + fsync(fd); + return STATUS_OK; +} + +binder_status_t Face::handleShellCommand(int in, int out, int err, const char** args, + uint32_t numArgs) { + LOG(INFO) << __func__ << " in:" << in << " out:" << out << " err:" << err + << " numArgs:" << numArgs; + + if (numArgs == 0) { + LOG(INFO) << __func__ << ": available commands"; + onHelp(out); + return STATUS_OK; + } + + for (auto&& str : std::vector(args, args + numArgs)) { + std::string option = str.data(); + if (option.find("clearconfig") != std::string::npos || + option.find("resetconfig") != std::string::npos) { + resetConfigToDefault(); + } + if (option.find("help") != std::string::npos) { + onHelp(out); + } + } + + return STATUS_OK; +} + +void Face::onHelp(int fd) { + dprintf(fd, "Virtual Face HAL commands:\n"); + dprintf(fd, " help: print this help\n"); + dprintf(fd, " resetconfig: reset all configuration to default\n"); + dprintf(fd, "\n"); + fsync(fd); +} + +void Face::resetConfigToDefault() { + LOG(INFO) << __func__ << ": reset virtual Face HAL configuration to default"; +#define RESET_CONFIG_O(__NAME__) \ + if (FaceHalProperties::__NAME__()) FaceHalProperties::__NAME__(std::nullopt) +#define RESET_CONFIG_V(__NAME__) \ + if (!FaceHalProperties::__NAME__().empty()) FaceHalProperties::__NAME__({std::nullopt}) + + RESET_CONFIG_O(type); + RESET_CONFIG_O(strength); + RESET_CONFIG_V(enrollments); + RESET_CONFIG_O(enrollment_hit); + RESET_CONFIG_V(features); + RESET_CONFIG_O(next_enrollment); + RESET_CONFIG_O(authenticator_id); + RESET_CONFIG_O(challenge); + RESET_CONFIG_O(lockout); + RESET_CONFIG_O(operation_authenticate_fails); + RESET_CONFIG_O(operation_detect_interaction_fails); + RESET_CONFIG_O(operation_enroll_fails); + RESET_CONFIG_V(operation_authenticate_latency); + RESET_CONFIG_V(operation_detect_interaction_latency); + RESET_CONFIG_V(operation_enroll_latency); + RESET_CONFIG_O(operation_authenticate_duration); + RESET_CONFIG_O(operation_authenticate_error); + RESET_CONFIG_O(operation_authenticate_acquired); + RESET_CONFIG_O(lockout_enable); + RESET_CONFIG_O(lockout_timed_enable); + RESET_CONFIG_O(lockout_timed_threshold); + RESET_CONFIG_O(lockout_timed_duration); + RESET_CONFIG_O(lockout_permanent_threshold); +} + } // namespace aidl::android::hardware::biometrics::face diff --git a/biometrics/face/aidl/default/Face.h b/biometrics/face/aidl/default/Face.h index 786b4f89fe5210a5c15dbe932d36534c9f887fcd..93fddb04746c75730e6f2d46225c7effbcdbb016 100644 --- a/biometrics/face/aidl/default/Face.h +++ b/biometrics/face/aidl/default/Face.h @@ -17,16 +17,26 @@ #pragma once #include +#include "Session.h" namespace aidl::android::hardware::biometrics::face { class Face : public BnFace { public: + Face() : mSession(nullptr) {} ndk::ScopedAStatus getSensorProps(std::vector* _aidl_return) override; ndk::ScopedAStatus createSession(int32_t sensorId, int32_t userId, const std::shared_ptr& cb, std::shared_ptr* _aidl_return) override; + + binder_status_t dump(int fd, const char** args, uint32_t numArgs); + binder_status_t handleShellCommand(int in, int out, int err, const char** argv, uint32_t argc); + + private: + std::shared_ptr mSession; + void resetConfigToDefault(); + void onHelp(int); }; } // namespace aidl::android::hardware::biometrics::face diff --git a/biometrics/face/aidl/default/FakeFaceEngine.cpp b/biometrics/face/aidl/default/FakeFaceEngine.cpp index 7380611853388e160fa67d859b93a1b81d7d48da..bf75874aea7ea57cd076322db351e190e1897ddb 100644 --- a/biometrics/face/aidl/default/FakeFaceEngine.cpp +++ b/biometrics/face/aidl/default/FakeFaceEngine.cpp @@ -14,6 +14,7 @@ * limitations under the License. */ +#undef LOG_TAG #define LOG_TAG "FaceVirtualHalEngine" #include "FakeFaceEngine.h" @@ -70,7 +71,7 @@ void FakeFaceEngine::enrollImpl(ISessionCallback* cb, const keymaster::HardwareA EnrollmentType /*enrollmentType*/, const std::vector& /*features*/, const std::future& cancel) { - BEGIN_OP(FaceHalProperties::operation_start_enroll_latency().value_or(0)); + BEGIN_OP(getLatency(FaceHalProperties::operation_enroll_latency())); // Do proper HAT verification in the real implementation. if (hat.mac.empty()) { @@ -158,7 +159,7 @@ void FakeFaceEngine::enrollImpl(ISessionCallback* cb, const keymaster::HardwareA void FakeFaceEngine::authenticateImpl(ISessionCallback* cb, int64_t /*operationId*/, const std::future& cancel) { - BEGIN_OP(FaceHalProperties::operation_authenticate_latency().value_or(0)); + BEGIN_OP(getLatency(FaceHalProperties::operation_authenticate_latency())); auto id = FaceHalProperties::enrollment_hit().value_or(0); auto enrolls = FaceHalProperties::enrollments(); @@ -291,7 +292,7 @@ std::pair FakeFaceEngine::convertError(int32_t code) { } void FakeFaceEngine::detectInteractionImpl(ISessionCallback* cb, const std::future& cancel) { - BEGIN_OP(FaceHalProperties::operation_detect_interaction_latency().value_or(0)); + BEGIN_OP(getLatency(FaceHalProperties::operation_detect_interaction_latency())); if (FaceHalProperties::operation_detect_interaction_fails().value_or(false)) { LOG(ERROR) << "Fail: operation_detect_interaction_fails"; @@ -418,4 +419,33 @@ void FakeFaceEngine::resetLockoutImpl(ISessionCallback* cb, cb->onLockoutCleared(); } +int32_t FakeFaceEngine::getRandomInRange(int32_t bound1, int32_t bound2) { + std::uniform_int_distribution dist(std::min(bound1, bound2), std::max(bound1, bound2)); + return dist(mRandom); +} + +int32_t FakeFaceEngine::getLatency(const std::vector>& latencyIn) { + int32_t res = DEFAULT_LATENCY; + + std::vector latency; + for (auto x : latencyIn) + if (x.has_value()) latency.push_back(*x); + + switch (latency.size()) { + case 0: + break; + case 1: + res = latency[0]; + break; + case 2: + res = getRandomInRange(latency[0], latency[1]); + break; + default: + LOG(ERROR) << "ERROR: unexpected input of size " << latency.size(); + break; + } + + return res; +} + } // namespace aidl::android::hardware::biometrics::face diff --git a/biometrics/face/aidl/default/FakeFaceEngine.h b/biometrics/face/aidl/default/FakeFaceEngine.h index 8d9303c491205b6e7d77645006c49e3adf325398..b1e1388186b9ae3988fc3a1c83bf9ff5d1ec33a9 100644 --- a/biometrics/face/aidl/default/FakeFaceEngine.h +++ b/biometrics/face/aidl/default/FakeFaceEngine.h @@ -60,6 +60,7 @@ class FakeFaceEngine { void getAuthenticatorIdImpl(ISessionCallback* cb); void invalidateAuthenticatorIdImpl(ISessionCallback* cb); void resetLockoutImpl(ISessionCallback* cb, const keymaster::HardwareAuthToken& /*hat*/); + int32_t getLatency(const std::vector>& latencyVec); virtual std::string toString() const { std::ostringstream os; @@ -71,6 +72,7 @@ class FakeFaceEngine { std::mt19937 mRandom; private: + int32_t getRandomInRange(int32_t bound1, int32_t bound2); static constexpr int32_t FACE_ACQUIRED_VENDOR_BASE = 1000; static constexpr int32_t FACE_ERROR_VENDOR_BASE = 1000; std::pair convertAcquiredInfo(int32_t code); diff --git a/biometrics/face/aidl/default/FakeLockoutTracker.h b/biometrics/face/aidl/default/FakeLockoutTracker.h index f2d38f3608c3cfdab5f0f9039ed663e8b377c627..82cc3133b1f2acdc51228fd8dd5e86fee9662181 100644 --- a/biometrics/face/aidl/default/FakeLockoutTracker.h +++ b/biometrics/face/aidl/default/FakeLockoutTracker.h @@ -28,7 +28,9 @@ class FakeLockoutTracker { public: FakeLockoutTracker() : mFailedCount(0), + mTimedFailedCount(0), mLastFailedTime(0), + mCurrentMode(LockoutMode::kNone), mIsLockoutTimerStarted(false), mIsLockoutTimerAborted(false) {} ~FakeLockoutTracker() {} diff --git a/biometrics/face/aidl/default/Session.cpp b/biometrics/face/aidl/default/Session.cpp index 6f3f2fc22f9912019405af220d50b8c196ac7c89..673d879d79680210b4cad8467317aca85ed06b64 100644 --- a/biometrics/face/aidl/default/Session.cpp +++ b/biometrics/face/aidl/default/Session.cpp @@ -14,20 +14,38 @@ * limitations under the License. */ +#undef LOG_TAG +#define LOG_TAG "FaceVirtualHalSession" + #include #include "Session.h" -#undef LOG_TAG -#define LOG_TAG "FaceVirtualHalSession" - namespace aidl::android::hardware::biometrics::face { constexpr size_t MAX_WORKER_QUEUE_SIZE = 5; +void onClientDeath(void* cookie) { + LOG(INFO) << "FaceService has died"; + Session* session = static_cast(cookie); + if (session && !session->isClosed()) { + session->close(); + } +} + Session::Session(std::unique_ptr engine, std::shared_ptr cb) - : mEngine(std::move(engine)), mCb(std::move(cb)), mRandom(std::mt19937::default_seed) { + : mEngine(std::move(engine)), + mCb(std::move(cb)), + mRandom(std::mt19937::default_seed), + mStateClosed(false) { + CHECK(mEngine); + CHECK(mCb); mThread = std::make_unique(MAX_WORKER_QUEUE_SIZE); + mDeathRecipient = AIBinder_DeathRecipient_new(onClientDeath); +} + +binder_status_t Session::linkToDeath(AIBinder* binder) { + return AIBinder_linkToDeath(binder, mDeathRecipient, this); } ndk::ScopedAStatus Session::generateChallenge() { @@ -144,9 +162,12 @@ ndk::ScopedAStatus Session::resetLockout(const keymaster::HardwareAuthToken& hat } ndk::ScopedAStatus Session::close() { + LOG(INFO) << "close"; if (mCb) { mCb->onSessionClosed(); } + AIBinder_DeathRecipient_delete(mDeathRecipient); + mStateClosed = true; return ndk::ScopedAStatus::ok(); } diff --git a/biometrics/face/aidl/default/Session.h b/biometrics/face/aidl/default/Session.h index ce6e7f1b888ddfacabe39b0165ca18f5a850cfa6..f79ad00ab63491750aa81bcf2f6461cb42c87286 100644 --- a/biometrics/face/aidl/default/Session.h +++ b/biometrics/face/aidl/default/Session.h @@ -33,6 +33,11 @@ namespace keymaster = aidl::android::hardware::keymaster; using aidl::android::hardware::common::NativeHandle; +enum class SessionState { + IDLING, + CLOSED, +}; + class Session : public BnSession { public: explicit Session(std::unique_ptr engine, std::shared_ptr cb); @@ -93,12 +98,28 @@ class Session : public BnSession { const FaceEnrollOptions& options, std::shared_ptr* out) override; + binder_status_t linkToDeath(AIBinder* binder); + + virtual std::string toString() const { + std::ostringstream os; + os << std::endl << "----- Face::Session:: -----" << std::endl; + os << "mStateClosed:" << mStateClosed << std::endl; + os << mEngine->toString(); + + return os.str(); + } + + bool isClosed() { return mStateClosed; } + private: std::unique_ptr mEngine; std::shared_ptr mCb; std::mt19937 mRandom; std::unique_ptr mThread; - std::shared_ptr mCancellationSignal; + + // Binder death handler. + AIBinder_DeathRecipient* mDeathRecipient; + bool mStateClosed; }; } // namespace aidl::android::hardware::biometrics::face diff --git a/biometrics/face/aidl/default/api/android.hardware.biometrics.face.VirtualProps-current.txt b/biometrics/face/aidl/default/api/android.hardware.biometrics.face.VirtualProps-current.txt index 95489205f64555dfaa835060a72ddb09e7b0c9d1..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/biometrics/face/aidl/default/api/android.hardware.biometrics.face.VirtualProps-current.txt +++ b/biometrics/face/aidl/default/api/android.hardware.biometrics.face.VirtualProps-current.txt @@ -1,98 +0,0 @@ -props { - owner: Vendor - module: "android.face.virt.FaceHalProperties" - prop { - api_name: "authenticator_id" - type: Long - access: ReadWrite - prop_name: "vendor.face.virtual.authenticator_id" - } - prop { - api_name: "challenge" - type: Long - access: ReadWrite - prop_name: "vendor.face.virtual.challenge" - } - prop { - api_name: "enrollment_hit" - type: Integer - access: ReadWrite - prop_name: "vendor.face.virtual.enrollment_hit" - } - prop { - api_name: "enrollments" - type: IntegerList - access: ReadWrite - prop_name: "persist.vendor.face.virtual.enrollments" - } - prop { - api_name: "features" - type: IntegerList - access: ReadWrite - prop_name: "persist.vendor.face.virtual.features" - } - prop { - api_name: "lockout" - access: ReadWrite - prop_name: "vendor.face.virtual.lockout" - } - prop { - api_name: "next_enrollment" - type: String - access: ReadWrite - prop_name: "vendor.face.virtual.next_enrollment" - } - prop { - api_name: "operation_authenticate_duration" - type: Integer - access: ReadWrite - prop_name: "vendor.face.virtual.operation_authenticate_duration" - } - prop { - api_name: "operation_authenticate_fails" - access: ReadWrite - prop_name: "vendor.face.virtual.operation_authenticate_fails" - } - prop { - api_name: "operation_authenticate_latency" - type: Integer - access: ReadWrite - prop_name: "vendor.face.virtual.operation_authenticate_latency" - } - prop { - api_name: "operation_detect_interaction_fails" - access: ReadWrite - prop_name: "vendor.face.virtual.operation_detect_interaction_fails" - } - prop { - api_name: "operation_detect_interaction_latency" - type: Integer - access: ReadWrite - prop_name: "vendor.face.virtual.operation_detect_interaction_latency" - } - prop { - api_name: "operation_enroll_fails" - access: ReadWrite - prop_name: "vendor.face.virtual.operation_enroll_fails" - } - prop { - api_name: "operation_start_enroll_latency" - type: Integer - access: ReadWrite - prop_name: "vendor.face.virtual.operation_start_enroll_latency" - } - prop { - api_name: "strength" - type: String - access: ReadWrite - prop_name: "persist.vendor.face.virtual.strength" - enum_values: "convenience|weak|strong" - } - prop { - api_name: "type" - type: String - access: ReadWrite - prop_name: "persist.vendor.face.virtual.type" - enum_values: "IR|RGB" - } -} diff --git a/biometrics/face/aidl/default/face.sysprop b/biometrics/face/aidl/default/face.sysprop index 95b0b43ca7df61dd905434f334066761cae3169d..997fd671ac6b8e1dddd4cf1dcdd7051718782715 100644 --- a/biometrics/face/aidl/default/face.sysprop +++ b/biometrics/face/aidl/default/face.sysprop @@ -7,7 +7,7 @@ owner: Vendor prop { prop_name: "persist.vendor.face.virtual.type" type: String - scope: Public + scope: Internal access: ReadWrite enum_values: "IR|RGB" api_name: "type" @@ -17,7 +17,7 @@ prop { prop { prop_name: "persist.vendor.face.virtual.strength" type: String - scope: Public + scope: Internal access: ReadWrite enum_values: "convenience|weak|strong" api_name: "strength" @@ -27,7 +27,7 @@ prop { prop { prop_name: "persist.vendor.face.virtual.enrollments" type: IntegerList - scope: Public + scope: Internal access: ReadWrite api_name: "enrollments" } @@ -36,7 +36,7 @@ prop { prop { prop_name: "persist.vendor.face.virtual.features" type: IntegerList - scope: Public + scope: Internal access: ReadWrite api_name: "features" } @@ -46,20 +46,11 @@ prop { prop { prop_name: "vendor.face.virtual.enrollment_hit" type: Integer - scope: Public + scope: Internal access: ReadWrite api_name: "enrollment_hit" } -# The initial latency for enrollment -prop { - prop_name: "vendor.face.virtual.operation_start_enroll_latency" - type: Integer - scope: Public - access: ReadWrite - api_name: "operation_start_enroll_latency" -} - # the next enrollment in the format: # ",::,..." # for example: "0:1,0:100:1,1:200:1" indicating that bucket 0 took @@ -69,7 +60,7 @@ prop { prop { prop_name: "vendor.face.virtual.next_enrollment" type: String - scope: Public + scope: Internal access: ReadWrite api_name: "next_enrollment" } @@ -78,7 +69,7 @@ prop { prop { prop_name: "vendor.face.virtual.authenticator_id" type: Long - scope: Public + scope: Internal access: ReadWrite api_name: "authenticator_id" } @@ -87,7 +78,7 @@ prop { prop { prop_name: "vendor.face.virtual.challenge" type: Long - scope: Public + scope: Internal access: ReadWrite api_name: "challenge" } @@ -96,7 +87,7 @@ prop { prop { prop_name: "vendor.face.virtual.lockout" type: Boolean - scope: Public + scope: Internal access: ReadWrite api_name: "lockout" } @@ -105,7 +96,7 @@ prop { prop { prop_name: "vendor.face.virtual.operation_authenticate_fails" type: Boolean - scope: Public + scope: Internal access: ReadWrite api_name: "operation_authenticate_fails" } @@ -114,7 +105,7 @@ prop { prop { prop_name: "vendor.face.virtual.operation_detect_interaction_fails" type: Boolean - scope: Public + scope: Internal access: ReadWrite api_name: "operation_detect_interaction_fails" } @@ -123,7 +114,7 @@ prop { prop { prop_name: "vendor.face.virtual.operation_enroll_fails" type: Boolean - scope: Public + scope: Internal access: ReadWrite api_name: "operation_enroll_fails" } @@ -133,8 +124,8 @@ prop { # the HAL will send AcquiredInfo::START and AcquiredInfo::FIRST_FRAME_RECEIVED prop { prop_name: "vendor.face.virtual.operation_authenticate_latency" - type: Integer - scope: Public + type: IntegerList + scope: Internal access: ReadWrite api_name: "operation_authenticate_latency" } @@ -142,18 +133,27 @@ prop { # add a latency to detectInteraction operations prop { prop_name: "vendor.face.virtual.operation_detect_interaction_latency" - type: Integer - scope: Public + type: IntegerList + scope: Internal access: ReadWrite api_name: "operation_detect_interaction_latency" } +# add a latency to enroll operations +prop { + prop_name: "vendor.face.virtual.operation_enroll_latency" + type: IntegerList + scope: Internal + access: ReadWrite + api_name: "operation_enroll_latency" +} + # millisecond duration for authenticate operations # (waits for changes to enrollment_hit) prop { prop_name: "vendor.face.virtual.operation_authenticate_duration" type: Integer - scope: Public + scope: Internal access: ReadWrite api_name: "operation_authenticate_duration" } diff --git a/biometrics/face/aidl/default/tests/FakeFaceEngineTest.cpp b/biometrics/face/aidl/default/tests/FakeFaceEngineTest.cpp index 69c9bf457b2939a3d3af8b56b72a434fe1581daf..8c39b589af6f5bf9e27905ce6f2f0da7e96803ba 100644 --- a/biometrics/face/aidl/default/tests/FakeFaceEngineTest.cpp +++ b/biometrics/face/aidl/default/tests/FakeFaceEngineTest.cpp @@ -22,6 +22,7 @@ #include #include "FakeFaceEngine.h" +#include "util/Util.h" using namespace ::android::face::virt; using namespace ::aidl::android::hardware::biometrics::face; @@ -137,11 +138,15 @@ class FakeFaceEngineTest : public ::testing::Test { void SetUp() override { LOG(ERROR) << "JRM SETUP"; mCallback = ndk::SharedRefBase::make(); + } + + void TearDown() override { FaceHalProperties::enrollments({}); FaceHalProperties::challenge({}); FaceHalProperties::features({}); FaceHalProperties::authenticator_id({}); FaceHalProperties::strength(""); + FaceHalProperties::operation_detect_interaction_latency({}); } FakeFaceEngine mEngine; @@ -383,4 +388,26 @@ TEST_F(FakeFaceEngineTest, ResetLockoutWithAuth) { ASSERT_FALSE(mCallback->mAuthenticateFailed); } +TEST_F(FakeFaceEngineTest, LatencyDefault) { + FaceHalProperties::operation_detect_interaction_latency({}); + ASSERT_EQ(DEFAULT_LATENCY, + mEngine.getLatency(FaceHalProperties::operation_detect_interaction_latency())); +} + +TEST_F(FakeFaceEngineTest, LatencyFixed) { + FaceHalProperties::operation_detect_interaction_latency({10}); + ASSERT_EQ(10, mEngine.getLatency(FaceHalProperties::operation_detect_interaction_latency())); +} + +TEST_F(FakeFaceEngineTest, LatencyRandom) { + FaceHalProperties::operation_detect_interaction_latency({1, 1000}); + std::set latencySet; + for (int i = 0; i < 100; i++) { + auto x = mEngine.getLatency(FaceHalProperties::operation_detect_interaction_latency()); + ASSERT_TRUE(x >= 1 && x <= 1000); + latencySet.insert(x); + } + ASSERT_TRUE(latencySet.size() > 95); // unique values +} + } // namespace aidl::android::hardware::biometrics::face diff --git a/biometrics/fingerprint/aidl/Android.bp b/biometrics/fingerprint/aidl/Android.bp index 1a099a54cbe749f82d4a74cd59930827c31da50f..282a702197c974ca5c704cdb7e931a04640d8589 100644 --- a/biometrics/fingerprint/aidl/Android.bp +++ b/biometrics/fingerprint/aidl/Android.bp @@ -48,7 +48,14 @@ aidl_interface { "android.hardware.keymaster-V4", ], }, + { + version: "4", + imports: [ + "android.hardware.biometrics.common-V4", + "android.hardware.keymaster-V4", + ], + }, ], - frozen: false, + frozen: true, } diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/.hash b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/.hash new file mode 100644 index 0000000000000000000000000000000000000000..cdd540ed3fef914a549ecc4e39c9f12e8f28c3a5 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/.hash @@ -0,0 +1 @@ +41a730a7a6b5aa9cebebce70ee5b5e509b0af6fb diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/AcquiredInfo.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/AcquiredInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7075f715fdcb7842dfdde9b52a14569943e9df62 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/AcquiredInfo.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@Backing(type="byte") @VintfStability +enum AcquiredInfo { + UNKNOWN, + GOOD, + PARTIAL, + INSUFFICIENT, + SENSOR_DIRTY, + TOO_SLOW, + TOO_FAST, + VENDOR, + START, + TOO_DARK, + TOO_BRIGHT, + IMMOBILE, + RETRYING_CAPTURE, + LIFT_TOO_SOON, + POWER_PRESS, +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/Error.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/Error.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9eeaac53ec4b3d6ceefe43beba78f028cc0f24fa --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/Error.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@Backing(type="byte") @VintfStability +enum Error { + UNKNOWN, + HW_UNAVAILABLE, + UNABLE_TO_PROCESS, + TIMEOUT, + NO_SPACE, + CANCELED, + UNABLE_TO_REMOVE, + VENDOR, + BAD_CALIBRATION, + POWER_PRESS, +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/FingerprintSensorType.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/FingerprintSensorType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..381aaf73655bc11dce681fb8279012d0a0bb21f5 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/FingerprintSensorType.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@Backing(type="byte") @VintfStability +enum FingerprintSensorType { + UNKNOWN, + REAR, + UNDER_DISPLAY_ULTRASONIC, + UNDER_DISPLAY_OPTICAL, + POWER_BUTTON, + HOME_BUTTON, +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/IFingerprint.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/IFingerprint.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0b6f3008acfa482e7683600dd5c118fd9e4580a3 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/IFingerprint.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@VintfStability +interface IFingerprint { + android.hardware.biometrics.fingerprint.SensorProps[] getSensorProps(); + android.hardware.biometrics.fingerprint.ISession createSession(in int sensorId, in int userId, in android.hardware.biometrics.fingerprint.ISessionCallback cb); +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISession.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISession.aidl new file mode 100644 index 0000000000000000000000000000000000000000..feb6ba35489c6c2779ad3700713c68e657ca22f3 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISession.aidl @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@VintfStability +interface ISession { + void generateChallenge(); + void revokeChallenge(in long challenge); + android.hardware.biometrics.common.ICancellationSignal enroll(in android.hardware.keymaster.HardwareAuthToken hat); + android.hardware.biometrics.common.ICancellationSignal authenticate(in long operationId); + android.hardware.biometrics.common.ICancellationSignal detectInteraction(); + void enumerateEnrollments(); + void removeEnrollments(in int[] enrollmentIds); + void getAuthenticatorId(); + void invalidateAuthenticatorId(); + void resetLockout(in android.hardware.keymaster.HardwareAuthToken hat); + void close(); + /** + * @deprecated use onPointerDownWithContext instead. + */ + void onPointerDown(in int pointerId, in int x, in int y, in float minor, in float major); + /** + * @deprecated use onPointerUpWithContext instead. + */ + void onPointerUp(in int pointerId); + void onUiReady(); + android.hardware.biometrics.common.ICancellationSignal authenticateWithContext(in long operationId, in android.hardware.biometrics.common.OperationContext context); + android.hardware.biometrics.common.ICancellationSignal enrollWithContext(in android.hardware.keymaster.HardwareAuthToken hat, in android.hardware.biometrics.common.OperationContext context); + android.hardware.biometrics.common.ICancellationSignal detectInteractionWithContext(in android.hardware.biometrics.common.OperationContext context); + void onPointerDownWithContext(in android.hardware.biometrics.fingerprint.PointerContext context); + void onPointerUpWithContext(in android.hardware.biometrics.fingerprint.PointerContext context); + void onContextChanged(in android.hardware.biometrics.common.OperationContext context); + void onPointerCancelWithContext(in android.hardware.biometrics.fingerprint.PointerContext context); + /** + * @deprecated use isHardwareIgnoringTouches in OperationContext from onContextChanged instead + */ + void setIgnoreDisplayTouches(in boolean shouldIgnore); +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISessionCallback.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISessionCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..be18ffed1a1922baea17de19310b71b1eb530836 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/ISessionCallback.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@VintfStability +interface ISessionCallback { + void onChallengeGenerated(in long challenge); + void onChallengeRevoked(in long challenge); + void onAcquired(in android.hardware.biometrics.fingerprint.AcquiredInfo info, in int vendorCode); + void onError(in android.hardware.biometrics.fingerprint.Error error, in int vendorCode); + void onEnrollmentProgress(in int enrollmentId, int remaining); + void onAuthenticationSucceeded(in int enrollmentId, in android.hardware.keymaster.HardwareAuthToken hat); + void onAuthenticationFailed(); + void onLockoutTimed(in long durationMillis); + void onLockoutPermanent(); + void onLockoutCleared(); + void onInteractionDetected(); + void onEnrollmentsEnumerated(in int[] enrollmentIds); + void onEnrollmentsRemoved(in int[] enrollmentIds); + void onAuthenticatorIdRetrieved(in long authenticatorId); + void onAuthenticatorIdInvalidated(in long newAuthenticatorId); + void onSessionClosed(); +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/PointerContext.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/PointerContext.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d9bf0854cac8b23c7b62c3eec8f606c2a4dcddc1 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/PointerContext.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@JavaDerive(equals=true) @VintfStability +parcelable PointerContext { + int pointerId = (-1) /* -1 */; + float x = 0f; + float y = 0f; + float minor = 0f; + float major = 0f; + float orientation = 0f; + boolean isAod = false; + long time = 0; + long gestureStart = 0; +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorLocation.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorLocation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..965576e8227e58269cd7213e51218f284d191a93 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorLocation.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@VintfStability +parcelable SensorLocation { + /** + * @deprecated use the display field instead. This field was never used. + */ + int displayId; + int sensorLocationX; + int sensorLocationY; + int sensorRadius; + String display = ""; + android.hardware.biometrics.fingerprint.SensorShape sensorShape = android.hardware.biometrics.fingerprint.SensorShape.CIRCLE; +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorProps.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorProps.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a97d819dbaaba3b2e5788f6baed4abcd47b53792 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorProps.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@VintfStability +parcelable SensorProps { + android.hardware.biometrics.common.CommonProps commonProps; + android.hardware.biometrics.fingerprint.FingerprintSensorType sensorType = android.hardware.biometrics.fingerprint.FingerprintSensorType.UNKNOWN; + android.hardware.biometrics.fingerprint.SensorLocation[] sensorLocations; + boolean supportsNavigationGestures; + boolean supportsDetectInteraction; + boolean halHandlesDisplayTouches; + boolean halControlsIllumination; + @nullable android.hardware.biometrics.fingerprint.TouchDetectionParameters touchDetectionParameters; +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorShape.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorShape.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f673b1c80622e8b08c71c22382ff5a0f4aa311c0 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/SensorShape.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@Backing(type="byte") @VintfStability +enum SensorShape { + SQUARE, + CIRCLE, +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/TouchDetectionParameters.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/TouchDetectionParameters.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2e3ec4f57405d2143fbc7e22db02efe065eb7b70 --- /dev/null +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4/android/hardware/biometrics/fingerprint/TouchDetectionParameters.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.biometrics.fingerprint; +/* @hide */ +@VintfStability +parcelable TouchDetectionParameters { + float targetSize = 1.0f; + float minOverlap = 0.0f; +} diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ISession.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ISession.aidl index 4fdcefc8ffb28559cfb8dbd92aba8fbe3ccddb63..feb6ba35489c6c2779ad3700713c68e657ca22f3 100644 --- a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ISession.aidl +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ISession.aidl @@ -62,5 +62,8 @@ interface ISession { void onPointerUpWithContext(in android.hardware.biometrics.fingerprint.PointerContext context); void onContextChanged(in android.hardware.biometrics.common.OperationContext context); void onPointerCancelWithContext(in android.hardware.biometrics.fingerprint.PointerContext context); + /** + * @deprecated use isHardwareIgnoringTouches in OperationContext from onContextChanged instead + */ void setIgnoreDisplayTouches(in boolean shouldIgnore); } diff --git a/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ISession.aidl b/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ISession.aidl index 83e7bbc43f68f20281c5a5465e09a63ec028c1c8..07e22c2b3f60e1501ea37b3acee1a96c49f0887f 100644 --- a/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ISession.aidl +++ b/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ISession.aidl @@ -544,6 +544,8 @@ interface ISession { * whenever it's appropriate. * * @param shouldIgnore whether the display touches should be ignored. + + * @deprecated use isHardwareIgnoringTouches in OperationContext from onContextChanged instead */ void setIgnoreDisplayTouches(in boolean shouldIgnore); } diff --git a/biometrics/fingerprint/aidl/default/Android.bp b/biometrics/fingerprint/aidl/default/Android.bp index c3ec4d0f44ccd84f1f721b01e1cf4c3fea45e233..501af07c2b5d66b231096f0cc6d0a6dc1cacd008 100644 --- a/biometrics/fingerprint/aidl/default/Android.bp +++ b/biometrics/fingerprint/aidl/default/Android.bp @@ -20,6 +20,7 @@ cc_binary { "FakeFingerprintEngineSide.cpp", "Fingerprint.cpp", "Session.cpp", + "FingerprintConfig.cpp", "main.cpp", ], stl: "c++_static", @@ -34,9 +35,15 @@ cc_binary { "android.hardware.biometrics.common-V4-ndk", "android.hardware.biometrics.common.thread", "android.hardware.biometrics.common.util", + "android.hardware.biometrics.common.config", "android.hardware.keymaster-V4-ndk", ], installable: false, // install APEX instead + product_variables: { + debuggable: { + cflags: ["-DFPS_DEBUGGABLE"], + }, + }, } cc_test { @@ -46,11 +53,11 @@ cc_test { "tests/FakeFingerprintEngineTest.cpp", "FakeFingerprintEngine.cpp", "FakeLockoutTracker.cpp", + "FingerprintConfig.cpp", ], shared_libs: [ "libbase", "libbinder_ndk", - "android.hardware.biometrics.common.thread", ], static_libs: [ "libandroid.hardware.biometrics.fingerprint.VirtualProps", @@ -58,6 +65,8 @@ cc_test { "android.hardware.biometrics.common-V4-ndk", "android.hardware.keymaster-V4-ndk", "android.hardware.biometrics.common.util", + "android.hardware.biometrics.common.config", + "android.hardware.biometrics.common.thread", ], vendor: true, test_suites: ["general-tests"], @@ -72,11 +81,11 @@ cc_test { "FakeFingerprintEngineUdfps.cpp", "FakeFingerprintEngine.cpp", "FakeLockoutTracker.cpp", + "FingerprintConfig.cpp", ], shared_libs: [ "libbase", "libbinder_ndk", - "android.hardware.biometrics.common.thread", ], static_libs: [ "libandroid.hardware.biometrics.fingerprint.VirtualProps", @@ -84,6 +93,8 @@ cc_test { "android.hardware.biometrics.common-V4-ndk", "android.hardware.keymaster-V4-ndk", "android.hardware.biometrics.common.util", + "android.hardware.biometrics.common.config", + "android.hardware.biometrics.common.thread", ], vendor: true, test_suites: ["general-tests"], @@ -96,11 +107,11 @@ cc_test { srcs: [ "tests/FakeLockoutTrackerTest.cpp", "FakeLockoutTracker.cpp", + "FingerprintConfig.cpp", ], shared_libs: [ "libbase", "libbinder_ndk", - "android.hardware.biometrics.common.thread", ], static_libs: [ "libandroid.hardware.biometrics.fingerprint.VirtualProps", @@ -108,6 +119,8 @@ cc_test { "android.hardware.biometrics.common-V4-ndk", "android.hardware.keymaster-V4-ndk", "android.hardware.biometrics.common.util", + "android.hardware.biometrics.common.thread", + "android.hardware.biometrics.common.config", ], vendor: true, test_suites: ["general-tests"], @@ -122,11 +135,11 @@ cc_test { "Session.cpp", "FakeFingerprintEngine.cpp", "FakeLockoutTracker.cpp", + "FingerprintConfig.cpp", ], shared_libs: [ "libbase", "libbinder_ndk", - "android.hardware.biometrics.common.thread", ], static_libs: [ "libandroid.hardware.biometrics.fingerprint.VirtualProps", @@ -134,6 +147,8 @@ cc_test { "android.hardware.biometrics.common-V4-ndk", "android.hardware.keymaster-V4-ndk", "android.hardware.biometrics.common.util", + "android.hardware.biometrics.common.thread", + "android.hardware.biometrics.common.config", ], vendor: true, test_suites: ["general-tests"], diff --git a/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp b/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp index 4e8005214e4f747eb77774b97addc535d0d3ddc1..8b8d0462371dff9395b31076ea8f896be24cd3a0 100644 --- a/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp +++ b/biometrics/fingerprint/aidl/default/FakeFingerprintEngine.cpp @@ -40,13 +40,13 @@ void FakeFingerprintEngine::generateChallengeImpl(ISessionCallback* cb) { BEGIN_OP(0); std::uniform_int_distribution dist; auto challenge = dist(mRandom); - FingerprintHalProperties::challenge(challenge); + Fingerprint::cfg().set("challenge", challenge); cb->onChallengeGenerated(challenge); } void FakeFingerprintEngine::revokeChallengeImpl(ISessionCallback* cb, int64_t challenge) { BEGIN_OP(0); - FingerprintHalProperties::challenge({}); + Fingerprint::cfg().setopt("challenge", std::nullopt); cb->onChallengeRevoked(challenge); } @@ -62,12 +62,17 @@ void FakeFingerprintEngine::enrollImpl(ISessionCallback* cb, return; } + waitForFingerDown(cb, cancel); + updateContext(WorkMode::kEnroll, cb, const_cast&>(cancel), 0, hat); } void FakeFingerprintEngine::authenticateImpl(ISessionCallback* cb, int64_t operationId, const std::future& cancel) { BEGIN_OP(0); + + waitForFingerDown(cb, cancel); + updateContext(WorkMode::kAuthenticate, cb, const_cast&>(cancel), operationId, keymaster::HardwareAuthToken()); } @@ -76,14 +81,15 @@ void FakeFingerprintEngine::detectInteractionImpl(ISessionCallback* cb, const std::future& cancel) { BEGIN_OP(0); - auto detectInteractionSupported = - FingerprintHalProperties::detect_interaction().value_or(false); + auto detectInteractionSupported = Fingerprint::cfg().get("detect_interaction"); if (!detectInteractionSupported) { LOG(ERROR) << "Detect interaction is not supported"; cb->onError(Error::UNABLE_TO_PROCESS, 0 /* vendorError */); return; } + waitForFingerDown(cb, cancel); + updateContext(WorkMode::kDetectInteract, cb, const_cast&>(cancel), 0, keymaster::HardwareAuthToken()); } @@ -124,10 +130,10 @@ void FakeFingerprintEngine::fingerDownAction() { bool FakeFingerprintEngine::onEnrollFingerDown(ISessionCallback* cb, const keymaster::HardwareAuthToken&, const std::future& cancel) { - BEGIN_OP(getLatency(FingerprintHalProperties::operation_enroll_latency())); + BEGIN_OP(getLatency(Fingerprint::cfg().getopt("operation_enroll_latency"))); // Force error-out - auto err = FingerprintHalProperties::operation_enroll_error().value_or(0); + auto err = Fingerprint::cfg().get("operation_enroll_error"); if (err != 0) { LOG(ERROR) << "Fail: operation_enroll_error"; auto ec = convertError(err); @@ -136,7 +142,7 @@ bool FakeFingerprintEngine::onEnrollFingerDown(ISessionCallback* cb, } // Format is ":,...: - auto nextEnroll = FingerprintHalProperties::next_enrollment().value_or(""); + auto nextEnroll = Fingerprint::cfg().get("next_enrollment"); auto parts = Util::split(nextEnroll, ":"); if (parts.size() != 3) { LOG(ERROR) << "Fail: invalid next_enrollment:" << nextEnroll; @@ -165,19 +171,19 @@ bool FakeFingerprintEngine::onEnrollFingerDown(ISessionCallback* cb, if (left == 0 && !IS_TRUE(parts[2])) { // end and failed LOG(ERROR) << "Fail: requested by caller: " << nextEnroll; - FingerprintHalProperties::next_enrollment({}); + Fingerprint::cfg().set("next_enrollment", ""); cb->onError(Error::UNABLE_TO_PROCESS, 0 /* vendorCode */); } else { // progress and update props if last time LOG(INFO) << "onEnroll: " << enrollmentId << " left: " << left; if (left == 0) { - auto enrollments = FingerprintHalProperties::enrollments(); + auto enrollments = Fingerprint::cfg().getopt("enrollments"); enrollments.emplace_back(enrollmentId); - FingerprintHalProperties::enrollments(enrollments); - FingerprintHalProperties::next_enrollment({}); + Fingerprint::cfg().setopt("enrollments", enrollments); + Fingerprint::cfg().setopt("next_enrollment", std::nullopt); // change authenticatorId after new enrollment - auto id = FingerprintHalProperties::authenticator_id().value_or(0); + auto id = Fingerprint::cfg().get("authenticator_id"); auto newId = id + 1; - FingerprintHalProperties::authenticator_id(newId); + Fingerprint::cfg().set("authenticator_id", newId); LOG(INFO) << "Enrolled: " << enrollmentId; } cb->onEnrollmentProgress(enrollmentId, left); @@ -190,11 +196,11 @@ bool FakeFingerprintEngine::onEnrollFingerDown(ISessionCallback* cb, bool FakeFingerprintEngine::onAuthenticateFingerDown(ISessionCallback* cb, int64_t /* operationId */, const std::future& cancel) { - BEGIN_OP(getLatency(FingerprintHalProperties::operation_authenticate_latency())); + BEGIN_OP(getLatency(Fingerprint::cfg().getopt("operation_authenticate_latency"))); int64_t now = Util::getSystemNanoTime(); - int64_t duration = FingerprintHalProperties::operation_authenticate_duration().value_or(10); - auto acquired = FingerprintHalProperties::operation_authenticate_acquired().value_or("1"); + int64_t duration = Fingerprint::cfg().get("operation_authenticate_duration"); + auto acquired = Fingerprint::cfg().get("operation_authenticate_acquired"); auto acquiredInfos = Util::parseIntSequence(acquired); int N = acquiredInfos.size(); @@ -211,14 +217,14 @@ bool FakeFingerprintEngine::onAuthenticateFingerDown(ISessionCallback* cb, int i = 0; do { - if (FingerprintHalProperties::operation_authenticate_fails().value_or(false)) { + if (Fingerprint::cfg().get("operation_authenticate_fails")) { LOG(ERROR) << "Fail: operation_authenticate_fails"; mLockoutTracker.addFailedAttempt(); cb->onAuthenticationFailed(); return false; } - auto err = FingerprintHalProperties::operation_authenticate_error().value_or(0); + auto err = Fingerprint::cfg().get("operation_authenticate_error"); if (err != 0) { LOG(ERROR) << "Fail: operation_authenticate_error"; auto ec = convertError(err); @@ -227,7 +233,7 @@ bool FakeFingerprintEngine::onAuthenticateFingerDown(ISessionCallback* cb, revisit if tests need*/ } - if (FingerprintHalProperties::lockout().value_or(false)) { + if (Fingerprint::cfg().get("lockout")) { LOG(ERROR) << "Fail: lockout"; cb->onLockoutPermanent(); cb->onError(Error::HW_UNAVAILABLE, 0 /* vendorError */); @@ -249,8 +255,8 @@ bool FakeFingerprintEngine::onAuthenticateFingerDown(ISessionCallback* cb, SLEEP_MS(duration / N); } while (!Util::hasElapsed(now, duration)); - auto id = FingerprintHalProperties::enrollment_hit().value_or(0); - auto enrolls = FingerprintHalProperties::enrollments(); + auto id = Fingerprint::cfg().get("enrollment_hit"); + auto enrolls = Fingerprint::cfg().getopt("enrollments"); auto isEnrolled = std::find(enrolls.begin(), enrolls.end(), id) != enrolls.end(); if (id > 0 && isEnrolled) { cb->onAuthenticationSucceeded(id, {} /* hat */); @@ -267,12 +273,13 @@ bool FakeFingerprintEngine::onAuthenticateFingerDown(ISessionCallback* cb, bool FakeFingerprintEngine::onDetectInteractFingerDown(ISessionCallback* cb, const std::future& cancel) { - BEGIN_OP(getLatency(FingerprintHalProperties::operation_detect_interaction_latency())); + BEGIN_OP(getLatency( + Fingerprint::cfg().getopt("operation_detect_interaction_latency"))); - int64_t duration = - FingerprintHalProperties::operation_detect_interaction_duration().value_or(10); + int32_t duration = + Fingerprint::cfg().get("operation_detect_interaction_duration"); - auto acquired = FingerprintHalProperties::operation_detect_interaction_acquired().value_or("1"); + auto acquired = Fingerprint::cfg().get("operation_detect_interaction_acquired"); auto acquiredInfos = Util::parseIntSequence(acquired); int N = acquiredInfos.size(); int64_t now = Util::getSystemNanoTime(); @@ -285,7 +292,7 @@ bool FakeFingerprintEngine::onDetectInteractFingerDown(ISessionCallback* cb, int i = 0; do { - auto err = FingerprintHalProperties::operation_detect_interaction_error().value_or(0); + auto err = Fingerprint::cfg().get("operation_detect_interaction_error"); if (err != 0) { LOG(ERROR) << "Fail: operation_detect_interaction_error"; auto ec = convertError(err); @@ -316,7 +323,7 @@ void FakeFingerprintEngine::enumerateEnrollmentsImpl(ISessionCallback* cb) { BEGIN_OP(0); std::vector ids; - for (auto& enrollment : FingerprintHalProperties::enrollments()) { + for (auto& enrollment : Fingerprint::cfg().getopt("enrollments")) { auto id = enrollment.value_or(0); if (id > 0) { ids.push_back(id); @@ -332,7 +339,7 @@ void FakeFingerprintEngine::removeEnrollmentsImpl(ISessionCallback* cb, std::vector> newEnrollments; std::vector removed; - for (auto& enrollment : FingerprintHalProperties::enrollments()) { + for (auto& enrollment : Fingerprint::cfg().getopt("enrollments")) { auto id = enrollment.value_or(0); if (std::find(enrollmentIds.begin(), enrollmentIds.end(), id) != enrollmentIds.end()) { removed.push_back(id); @@ -340,7 +347,7 @@ void FakeFingerprintEngine::removeEnrollmentsImpl(ISessionCallback* cb, newEnrollments.emplace_back(id); } } - FingerprintHalProperties::enrollments(newEnrollments); + Fingerprint::cfg().setopt("enrollments", newEnrollments); cb->onEnrollmentsRemoved(enrollmentIds); } @@ -348,10 +355,10 @@ void FakeFingerprintEngine::removeEnrollmentsImpl(ISessionCallback* cb, void FakeFingerprintEngine::getAuthenticatorIdImpl(ISessionCallback* cb) { BEGIN_OP(0); int64_t authenticatorId; - if (FingerprintHalProperties::enrollments().size() == 0) { + if (Fingerprint::cfg().getopt("enrollments").size() == 0) { authenticatorId = 0; } else { - authenticatorId = FingerprintHalProperties::authenticator_id().value_or(0); + authenticatorId = Fingerprint::cfg().get("authenticator_id"); if (authenticatorId == 0) authenticatorId = 1; } cb->onAuthenticatorIdRetrieved(authenticatorId); @@ -360,13 +367,13 @@ void FakeFingerprintEngine::getAuthenticatorIdImpl(ISessionCallback* cb) { void FakeFingerprintEngine::invalidateAuthenticatorIdImpl(ISessionCallback* cb) { BEGIN_OP(0); int64_t newId; - if (FingerprintHalProperties::enrollments().size() == 0) { + if (Fingerprint::cfg().getopt("enrollments").size() == 0) { newId = 0; } else { - auto id = FingerprintHalProperties::authenticator_id().value_or(0); + auto id = Fingerprint::cfg().get("authenticator_id"); newId = id + 1; } - FingerprintHalProperties::authenticator_id(newId); + Fingerprint::cfg().set("authenticator_id", newId); cb->onAuthenticatorIdInvalidated(newId); } @@ -383,7 +390,7 @@ void FakeFingerprintEngine::resetLockoutImpl(ISessionCallback* cb, } void FakeFingerprintEngine::clearLockout(ISessionCallback* cb) { - FingerprintHalProperties::lockout(false); + Fingerprint::cfg().set("lockout", false); cb->onLockoutCleared(); mLockoutTracker.reset(); } @@ -398,6 +405,7 @@ ndk::ScopedAStatus FakeFingerprintEngine::onPointerDownImpl(int32_t /*pointerId* ndk::ScopedAStatus FakeFingerprintEngine::onPointerUpImpl(int32_t /*pointerId*/) { BEGIN_OP(0); + mFingerIsDown = false; return ndk::ScopedAStatus::ok(); } @@ -407,7 +415,7 @@ ndk::ScopedAStatus FakeFingerprintEngine::onUiReadyImpl() { } bool FakeFingerprintEngine::getSensorLocationConfig(SensorLocation& out) { - auto loc = FingerprintHalProperties::sensor_location().value_or(""); + auto loc = Fingerprint::cfg().get("sensor_location"); auto isValidStr = false; auto dim = Util::split(loc, ":"); @@ -533,4 +541,17 @@ void FakeFingerprintEngine::lockoutTimerExpired(ISessionCallback* cb) { isLockoutTimerStarted = false; isLockoutTimerAborted = false; } + +void FakeFingerprintEngine::waitForFingerDown(ISessionCallback* cb, + const std::future& cancel) { + while (!mFingerIsDown) { + if (shouldCancel(cancel)) { + LOG(ERROR) << "waitForFingerDown, Fail: cancel"; + cb->onError(Error::CANCELED, 0 /* vendorCode */); + return; + } + SLEEP_MS(10); + } +} + } // namespace aidl::android::hardware::biometrics::fingerprint diff --git a/biometrics/fingerprint/aidl/default/FakeFingerprintEngineUdfps.cpp b/biometrics/fingerprint/aidl/default/FakeFingerprintEngineUdfps.cpp index 68b0f0d0deaf0fe4791cc4f4ec8722c832be8252..496b5e3f12a666d94e05dec83619f6c3d44eba67 100644 --- a/biometrics/fingerprint/aidl/default/FakeFingerprintEngineUdfps.cpp +++ b/biometrics/fingerprint/aidl/default/FakeFingerprintEngineUdfps.cpp @@ -20,6 +20,7 @@ #include +#include "Fingerprint.h" #include "util/CancellationSignal.h" #include "util/Util.h" @@ -45,7 +46,7 @@ ndk::ScopedAStatus FakeFingerprintEngineUdfps::onPointerDownImpl(int32_t /*point BEGIN_OP(0); // verify whetehr touch coordinates/area matching sensor location ? mPointerDownTime = Util::getSystemNanoTime(); - if (FingerprintHalProperties::control_illumination().value_or(false)) { + if (Fingerprint::cfg().get("control_illumination")) { fingerDownAction(); } return ndk::ScopedAStatus::ok(); diff --git a/biometrics/fingerprint/aidl/default/FakeLockoutTracker.cpp b/biometrics/fingerprint/aidl/default/FakeLockoutTracker.cpp index b0163ee24633af54256cb3145a2cc9eb67998147..a056db50d0680c0e43765b468ea9dff92236da4f 100644 --- a/biometrics/fingerprint/aidl/default/FakeLockoutTracker.cpp +++ b/biometrics/fingerprint/aidl/default/FakeLockoutTracker.cpp @@ -16,6 +16,7 @@ #include "FakeLockoutTracker.h" #include +#include "Fingerprint.h" #include "util/Util.h" using namespace ::android::fingerprint::virt; @@ -29,16 +30,16 @@ void FakeLockoutTracker::reset() { } void FakeLockoutTracker::addFailedAttempt() { - bool enabled = FingerprintHalProperties::lockout_enable().value_or(false); + bool enabled = Fingerprint::cfg().get("lockout_enable"); if (enabled) { mFailedCount++; int32_t lockoutTimedThreshold = - FingerprintHalProperties::lockout_timed_threshold().value_or(5); + Fingerprint::cfg().get("lockout_timed_threshold"); int32_t lockoutPermanetThreshold = - FingerprintHalProperties::lockout_permanent_threshold().value_or(20); + Fingerprint::cfg().get("lockout_permanent_threshold"); if (mFailedCount >= lockoutPermanetThreshold) { mCurrentMode = LockoutMode::kPermanent; - FingerprintHalProperties::lockout(true); + Fingerprint::cfg().set("lockout", true); } else if (mFailedCount >= lockoutTimedThreshold) { if (mCurrentMode == LockoutMode::kNone) { mCurrentMode = LockoutMode::kTimed; @@ -53,7 +54,7 @@ void FakeLockoutTracker::addFailedAttempt() { FakeLockoutTracker::LockoutMode FakeLockoutTracker::getMode() { if (mCurrentMode == LockoutMode::kTimed) { int32_t lockoutTimedDuration = - FingerprintHalProperties::lockout_timed_duration().value_or(10 * 100); + Fingerprint::cfg().get("lockout_timed_duration"); if (Util::hasElapsed(mLockoutTimedStart, lockoutTimedDuration)) { mCurrentMode = LockoutMode::kNone; mLockoutTimedStart = 0; @@ -68,11 +69,11 @@ int64_t FakeLockoutTracker::getLockoutTimeLeft() { if (mLockoutTimedStart > 0) { int32_t lockoutTimedDuration = - FingerprintHalProperties::lockout_timed_duration().value_or(10 * 100); + Fingerprint::cfg().get("lockout_timed_duration"); auto now = Util::getSystemNanoTime(); auto elapsed = (now - mLockoutTimedStart) / 1000000LL; res = lockoutTimedDuration - elapsed; - LOG(INFO) << "xxxxxx: elapsed=" << elapsed << " now = " << now + LOG(INFO) << "elapsed=" << elapsed << " now = " << now << " mLockoutTimedStart=" << mLockoutTimedStart << " res=" << res; } diff --git a/biometrics/fingerprint/aidl/default/Fingerprint.cpp b/biometrics/fingerprint/aidl/default/Fingerprint.cpp index 79b563e5add6846386795ff264c1be652936ea92..dded54b436daf465f5c0779773a604de54e6ffd8 100644 --- a/biometrics/fingerprint/aidl/default/Fingerprint.cpp +++ b/biometrics/fingerprint/aidl/default/Fingerprint.cpp @@ -43,7 +43,7 @@ constexpr char SW_VERSION[] = "vendor/version/revision"; } // namespace Fingerprint::Fingerprint() : mWorker(MAX_WORKER_QUEUE_SIZE) { - std::string sensorTypeProp = FingerprintHalProperties::type().value_or(""); + std::string sensorTypeProp = Fingerprint::cfg().get("type"); if (sensorTypeProp == "" || sensorTypeProp == "default" || sensorTypeProp == "rear") { mSensorType = FingerprintSensorType::REAR; mEngine = std::make_unique(); @@ -68,15 +68,13 @@ ndk::ScopedAStatus Fingerprint::getSensorProps(std::vector* out) { {HW_COMPONENT_ID, HW_VERSION, FW_VERSION, SERIAL_NUMBER, "" /* softwareVersion */}, {SW_COMPONENT_ID, "" /* hardwareVersion */, "" /* firmwareVersion */, "" /* serialNumber */, SW_VERSION}}; - auto sensorId = FingerprintHalProperties::sensor_id().value_or(SENSOR_ID); - auto sensorStrength = - FingerprintHalProperties::sensor_strength().value_or((int)SENSOR_STRENGTH); - auto maxEnrollments = - FingerprintHalProperties::max_enrollments().value_or(MAX_ENROLLMENTS_PER_USER); - auto navigationGuesture = FingerprintHalProperties::navigation_guesture().value_or(false); - auto detectInteraction = FingerprintHalProperties::detect_interaction().value_or(false); - auto displayTouch = FingerprintHalProperties::display_touch().value_or(true); - auto controlIllumination = FingerprintHalProperties::control_illumination().value_or(false); + auto sensorId = Fingerprint::cfg().get("sensor_id"); + auto sensorStrength = Fingerprint::cfg().get("sensor_strength"); + auto maxEnrollments = Fingerprint::cfg().get("max_enrollments"); + auto navigationGuesture = Fingerprint::cfg().get("navigation_guesture"); + auto detectInteraction = Fingerprint::cfg().get("detect_interaction"); + auto displayTouch = Fingerprint::cfg().get("display_touch"); + auto controlIllumination = Fingerprint::cfg().get("control_illumination"); common::CommonProps commonProps = {sensorId, (common::SensorStrength)sensorStrength, maxEnrollments, componentInfo}; @@ -166,6 +164,14 @@ void Fingerprint::onHelp(int fd) { void Fingerprint::resetConfigToDefault() { LOG(INFO) << __func__ << ": reset virtual HAL configuration to default"; + Fingerprint::cfg().init(); +#ifdef FPS_DEBUGGABLE + clearConfigSysprop(); +#endif +} + +void Fingerprint::clearConfigSysprop() { + LOG(INFO) << __func__ << ": clear all systprop configuration"; #define RESET_CONFIG_O(__NAME__) \ if (FingerprintHalProperties::__NAME__()) FingerprintHalProperties::__NAME__(std::nullopt) #define RESET_CONFIG_V(__NAME__) \ diff --git a/biometrics/fingerprint/aidl/default/FingerprintConfig.cpp b/biometrics/fingerprint/aidl/default/FingerprintConfig.cpp new file mode 100644 index 0000000000000000000000000000000000000000..82c5403176b9f1b296a114c20401de2b12d3f462 --- /dev/null +++ b/biometrics/fingerprint/aidl/default/FingerprintConfig.cpp @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "FingerprintConfig" + +#include "FingerprintConfig.h" + +#include + +#include + +using namespace ::android::fingerprint::virt; + +namespace aidl::android::hardware::biometrics::fingerprint { + +// Wrapper to system property access functions +#define CREATE_GETTER_SETTER_WRAPPER(_NAME_, _T_) \ + ConfigValue _NAME_##Getter() { \ + return FingerprintHalProperties::_NAME_(); \ + } \ + bool _NAME_##Setter(const ConfigValue& v) { \ + return FingerprintHalProperties::_NAME_(std::get<_T_>(v)); \ + } + +CREATE_GETTER_SETTER_WRAPPER(type, OptString) +CREATE_GETTER_SETTER_WRAPPER(enrollments, OptIntVec) +CREATE_GETTER_SETTER_WRAPPER(enrollment_hit, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(next_enrollment, OptString) +CREATE_GETTER_SETTER_WRAPPER(authenticator_id, OptInt64) +CREATE_GETTER_SETTER_WRAPPER(challenge, OptInt64) +CREATE_GETTER_SETTER_WRAPPER(sensor_id, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(sensor_location, OptString) +CREATE_GETTER_SETTER_WRAPPER(sensor_strength, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(operation_authenticate_fails, OptBool) +CREATE_GETTER_SETTER_WRAPPER(operation_authenticate_latency, OptIntVec) +CREATE_GETTER_SETTER_WRAPPER(operation_authenticate_duration, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(operation_authenticate_error, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(operation_authenticate_acquired, OptString) +CREATE_GETTER_SETTER_WRAPPER(operation_enroll_error, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(operation_enroll_latency, OptIntVec) +CREATE_GETTER_SETTER_WRAPPER(operation_detect_interaction_error, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(operation_detect_interaction_latency, OptIntVec) +CREATE_GETTER_SETTER_WRAPPER(operation_detect_interaction_duration, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(operation_detect_interaction_acquired, OptString) +CREATE_GETTER_SETTER_WRAPPER(max_enrollments, OptBool) +CREATE_GETTER_SETTER_WRAPPER(navigation_guesture, OptBool) +CREATE_GETTER_SETTER_WRAPPER(detect_interaction, OptBool) +CREATE_GETTER_SETTER_WRAPPER(display_touch, OptBool) +CREATE_GETTER_SETTER_WRAPPER(control_illumination, OptBool) +CREATE_GETTER_SETTER_WRAPPER(lockout, OptBool) +CREATE_GETTER_SETTER_WRAPPER(lockout_enable, OptBool) +CREATE_GETTER_SETTER_WRAPPER(lockout_timed_threshold, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(lockout_timed_duration, OptInt32) +CREATE_GETTER_SETTER_WRAPPER(lockout_permanent_threshold, OptInt32) + +// Name, Getter, Setter, Parser and default value +#define NGS(_NAME_) #_NAME_, _NAME_##Getter, _NAME_##Setter +static Config::Data configData[] = { + {NGS(type), &Config::parseString, "rear"}, + {NGS(enrollments), &Config::parseIntVec, ""}, + {NGS(enrollment_hit), &Config::parseInt32, "0"}, + {NGS(next_enrollment), &Config::parseString, ""}, + {NGS(authenticator_id), &Config::parseInt64, "0"}, + {NGS(challenge), &Config::parseInt64, ""}, + {NGS(sensor_id), &Config::parseInt32, "5"}, + {NGS(sensor_location), &Config::parseString, ""}, + {NGS(sensor_strength), &Config::parseInt32, "2"}, // STRONG + {NGS(operation_authenticate_fails), &Config::parseBool, "false"}, + {NGS(operation_authenticate_latency), &Config::parseIntVec, ""}, + {NGS(operation_authenticate_duration), &Config::parseInt32, "10"}, + {NGS(operation_authenticate_error), &Config::parseInt32, "0"}, + {NGS(operation_authenticate_acquired), &Config::parseString, "1"}, + {NGS(operation_enroll_error), &Config::parseInt32, "0"}, + {NGS(operation_enroll_latency), &Config::parseIntVec, ""}, + {NGS(operation_detect_interaction_latency), &Config::parseIntVec, ""}, + {NGS(operation_detect_interaction_error), &Config::parseInt32, "0"}, + {NGS(operation_detect_interaction_duration), &Config::parseInt32, "10"}, + {NGS(operation_detect_interaction_acquired), &Config::parseString, "1"}, + {NGS(max_enrollments), &Config::parseInt32, "5"}, + {NGS(navigation_guesture), &Config::parseBool, "false"}, + {NGS(detect_interaction), &Config::parseBool, "false"}, + {NGS(display_touch), &Config::parseBool, "true"}, + {NGS(control_illumination), &Config::parseBool, "false"}, + {NGS(lockout), &Config::parseBool, "false"}, + {NGS(lockout_enable), &Config::parseBool, "false"}, + {NGS(lockout_timed_threshold), &Config::parseInt32, "5"}, + {NGS(lockout_timed_duration), &Config::parseInt32, "10000"}, + {NGS(lockout_permanent_threshold), &Config::parseInt32, "20"}, +}; + +Config::Data* FingerprintConfig::getConfigData(int* size) { + *size = sizeof(configData) / sizeof(configData[0]); + return configData; +} + +} // namespace aidl::android::hardware::biometrics::fingerprint diff --git a/biometrics/fingerprint/aidl/default/Session.cpp b/biometrics/fingerprint/aidl/default/Session.cpp index c06c9317e85b7a381139310b24938904cfcedb2f..0dd66032b636af58e55621563968e528150856bf 100644 --- a/biometrics/fingerprint/aidl/default/Session.cpp +++ b/biometrics/fingerprint/aidl/default/Session.cpp @@ -249,6 +249,7 @@ ndk::ScopedAStatus Session::close() { ndk::ScopedAStatus Session::onPointerDown(int32_t pointerId, int32_t x, int32_t y, float minor, float major) { LOG(INFO) << "onPointerDown"; + mEngine->notifyFingerdown(); mWorker->schedule(Callable::from([this, pointerId, x, y, minor, major] { mEngine->onPointerDownImpl(pointerId, x, y, minor, major); enterIdling(); diff --git a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h index 15d83604d5559a22f5b24213c34f74a8186ac5a9..0d5357529db320f788f8fc7ee52da0288e5cc516 100644 --- a/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h +++ b/biometrics/fingerprint/aidl/default/include/FakeFingerprintEngine.h @@ -75,6 +75,7 @@ class FakeFingerprintEngine { enum class WorkMode : int8_t { kIdle = 0, kAuthenticate, kEnroll, kDetectInteract }; WorkMode getWorkMode() { return mWorkMode; } + void notifyFingerdown() { mFingerIsDown = true; } virtual std::string toString() const { std::ostringstream os; @@ -100,6 +101,7 @@ class FakeFingerprintEngine { keymaster::HardwareAuthToken mHat; std::future mCancel; int64_t mOperationId; + bool mFingerIsDown; private: static constexpr int32_t FINGERPRINT_ACQUIRED_VENDOR_BASE = 1000; @@ -109,6 +111,7 @@ class FakeFingerprintEngine { int32_t getRandomInRange(int32_t bound1, int32_t bound2); bool checkSensorLockout(ISessionCallback*); void clearLockout(ISessionCallback* cb); + void waitForFingerDown(ISessionCallback* cb, const std::future& cancel); FakeLockoutTracker mLockoutTracker; diff --git a/biometrics/fingerprint/aidl/default/include/Fingerprint.h b/biometrics/fingerprint/aidl/default/include/Fingerprint.h index 2bd66d4e0b4bce1d2945e23810871a51426e64bf..1576f0715c529d3ca47cd4ca457ebdbb38aa5a39 100644 --- a/biometrics/fingerprint/aidl/default/include/Fingerprint.h +++ b/biometrics/fingerprint/aidl/default/include/Fingerprint.h @@ -23,6 +23,7 @@ #include "FakeFingerprintEngineSide.h" #include "FakeFingerprintEngineUdfps.h" +#include "FingerprintConfig.h" #include "Session.h" #include "thread/WorkerThread.h" @@ -40,10 +41,20 @@ class Fingerprint : public BnFingerprint { binder_status_t dump(int fd, const char** args, uint32_t numArgs); binder_status_t handleShellCommand(int in, int out, int err, const char** argv, uint32_t argc); + static FingerprintConfig& cfg() { + static FingerprintConfig* cfg = nullptr; + if (cfg == nullptr) { + cfg = new FingerprintConfig(); + cfg->init(); + } + return *cfg; + } + private: void resetConfigToDefault(); void onHelp(int); void onSimFingerDown(); + void clearConfigSysprop(); std::unique_ptr mEngine; WorkerThread mWorker; diff --git a/biometrics/fingerprint/aidl/default/include/FingerprintConfig.h b/biometrics/fingerprint/aidl/default/include/FingerprintConfig.h new file mode 100644 index 0000000000000000000000000000000000000000..bd1ad4c904a5cd3cf46f5d4c804895aaa9a0e2be --- /dev/null +++ b/biometrics/fingerprint/aidl/default/include/FingerprintConfig.h @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include "config/Config.h" + +namespace aidl::android::hardware::biometrics::fingerprint { + +class FingerprintConfig : public Config { + Config::Data* getConfigData(int* size) override; +}; + +} // namespace aidl::android::hardware::biometrics::fingerprint diff --git a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp index eedcae1a3587a70d6e7fdd40d228508a9495753a..039f25ea82b7b9ada1d2a49fa65250130c527b8f 100644 --- a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp +++ b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineTest.cpp @@ -21,6 +21,7 @@ #include #include "FakeFingerprintEngine.h" +#include "Fingerprint.h" #include "util/Util.h" using namespace ::android::fingerprint::virt; @@ -125,21 +126,20 @@ class TestSessionCallback : public BnSessionCallback { class FakeFingerprintEngineTest : public ::testing::Test { protected: void SetUp() override { - FingerprintHalProperties::operation_enroll_latency({0}); - FingerprintHalProperties::operation_authenticate_latency({0}); - FingerprintHalProperties::operation_detect_interaction_latency({0}); + Fingerprint::cfg().setopt("operation_enroll_latency", {0}); + Fingerprint::cfg().setopt("operation_authenticate_latency", {0}); + Fingerprint::cfg().setopt("operation_detect_interaction_latency", {0}); mCallback = ndk::SharedRefBase::make(); } void TearDown() override { - FingerprintHalProperties::operation_authenticate_error(0); - FingerprintHalProperties::operation_detect_interaction_error(0); - FingerprintHalProperties::operation_authenticate_acquired(""); - FingerprintHalProperties::operation_enroll_latency({}); - FingerprintHalProperties::operation_authenticate_latency({}); - FingerprintHalProperties::operation_detect_interaction_latency({}); - FingerprintHalProperties::operation_authenticate_fails(false); - FingerprintHalProperties::operation_detect_interaction_latency({}); + Fingerprint::cfg().set("operation_authenticate_error", 0); + Fingerprint::cfg().set("operation_detect_interaction_error", 0); + Fingerprint::cfg().set("operation_authenticate_acquired", ""); + Fingerprint::cfg().setopt("operation_enroll_latency", {}); + Fingerprint::cfg().setopt("operation_authenticate_latency", {}); + Fingerprint::cfg().setopt("operation_detect_interaction_latency", {}); + Fingerprint::cfg().set("operation_authenticate_fails", false); } FakeFingerprintEngine mEngine; @@ -149,90 +149,94 @@ class FakeFingerprintEngineTest : public ::testing::Test { TEST_F(FakeFingerprintEngineTest, GenerateChallenge) { mEngine.generateChallengeImpl(mCallback.get()); - ASSERT_EQ(FingerprintHalProperties::challenge().value(), mCallback->mLastChallenge); + ASSERT_EQ(Fingerprint::cfg().get("challenge"), mCallback->mLastChallenge); } TEST_F(FakeFingerprintEngineTest, RevokeChallenge) { - auto challenge = FingerprintHalProperties::challenge().value_or(10); + auto challenge = Fingerprint::cfg().get("challenge"); mEngine.revokeChallengeImpl(mCallback.get(), challenge); - ASSERT_FALSE(FingerprintHalProperties::challenge().has_value()); + ASSERT_FALSE((Fingerprint::cfg().getopt("challenge")).has_value()); ASSERT_EQ(challenge, mCallback->mLastChallengeRevoked); } TEST_F(FakeFingerprintEngineTest, ResetLockout) { - FingerprintHalProperties::lockout(true); + Fingerprint::cfg().get("lockout"); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; mEngine.resetLockoutImpl(mCallback.get(), hat); - ASSERT_FALSE(FingerprintHalProperties::lockout().value_or(true)); + ASSERT_FALSE(Fingerprint::cfg().get("lockout")); } TEST_F(FakeFingerprintEngineTest, AuthenticatorId) { - FingerprintHalProperties::enrollments({1}); - FingerprintHalProperties::authenticator_id(50); + Fingerprint::cfg().setopt("enrollments", {1}); + Fingerprint::cfg().set("authenticator_id", 50); mEngine.getAuthenticatorIdImpl(mCallback.get()); ASSERT_EQ(50, mCallback->mLastAuthenticatorId); ASSERT_FALSE(mCallback->mAuthenticatorIdInvalidated); } TEST_F(FakeFingerprintEngineTest, AuthenticatorIdInvalidate) { - FingerprintHalProperties::authenticator_id(500); + Fingerprint::cfg().set("authenticator_id", 500); mEngine.invalidateAuthenticatorIdImpl(mCallback.get()); - ASSERT_NE(500, FingerprintHalProperties::authenticator_id().value()); + ASSERT_NE(500, Fingerprint::cfg().get("authenticator_id")); ASSERT_TRUE(mCallback->mAuthenticatorIdInvalidated); } TEST_F(FakeFingerprintEngineTest, Enroll) { - FingerprintHalProperties::enrollments({}); - FingerprintHalProperties::next_enrollment("4:0,0:true"); + Fingerprint::cfg().setopt("enrollments", {}); + Fingerprint::cfg().set("next_enrollment", "4:0,0:true"); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; + mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kEnroll); mEngine.fingerDownAction(); - ASSERT_FALSE(FingerprintHalProperties::next_enrollment().has_value()); - ASSERT_EQ(1, FingerprintHalProperties::enrollments().size()); - ASSERT_EQ(4, FingerprintHalProperties::enrollments()[0].value()); + ASSERT_FALSE(Fingerprint::cfg().getopt("next_enrollment").has_value()); + ASSERT_EQ(1, Fingerprint::cfg().getopt("enrollments").size()); + ASSERT_EQ(4, Fingerprint::cfg().getopt("enrollments")[0].value()); ASSERT_EQ(4, mCallback->mLastEnrolled); ASSERT_EQ(1, mCallback->mLastAcquiredInfo); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kIdle); } TEST_F(FakeFingerprintEngineTest, EnrollCancel) { - FingerprintHalProperties::enrollments({}); + Fingerprint::cfg().setopt("enrollments", {}); auto next = "4:0,0:true"; - FingerprintHalProperties::next_enrollment(next); + Fingerprint::cfg().set("next_enrollment", next); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; mCancel.set_value(); + mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::CANCELED, mCallback->mError); ASSERT_EQ(-1, mCallback->mLastEnrolled); - ASSERT_EQ(0, FingerprintHalProperties::enrollments().size()); - ASSERT_EQ(next, FingerprintHalProperties::next_enrollment().value_or("")); + ASSERT_EQ(0, Fingerprint::cfg().getopt("enrollments").size()); + ASSERT_EQ(next, Fingerprint::cfg().get("next_enrollment")); } TEST_F(FakeFingerprintEngineTest, EnrollFail) { - FingerprintHalProperties::enrollments({}); + Fingerprint::cfg().setopt("enrollments", {}); auto next = "2:0,0:false"; - FingerprintHalProperties::next_enrollment(next); + Fingerprint::cfg().set("next_enrollment", next); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; + mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::UNABLE_TO_PROCESS, mCallback->mError); ASSERT_EQ(-1, mCallback->mLastEnrolled); - ASSERT_EQ(0, FingerprintHalProperties::enrollments().size()); - ASSERT_FALSE(FingerprintHalProperties::next_enrollment().has_value()); + ASSERT_EQ(0, Fingerprint::cfg().getopt("enrollments").size()); + ASSERT_FALSE(Fingerprint::cfg().getopt("next_enrollment").has_value()); } TEST_F(FakeFingerprintEngineTest, EnrollAcquired) { - FingerprintHalProperties::enrollments({}); - FingerprintHalProperties::next_enrollment("4:0,5-[12,1013]:true"); + Fingerprint::cfg().setopt("enrollments", {}); + Fingerprint::cfg().set("next_enrollment", "4:0,5-[12,1013]:true"); keymaster::HardwareAuthToken hat{.mac = {2, 4}}; int32_t prevCnt = mCallback->mLastAcquiredCount; + mEngine.notifyFingerdown(); mEngine.enrollImpl(mCallback.get(), hat, mCancel.get_future()); mEngine.fingerDownAction(); - ASSERT_FALSE(FingerprintHalProperties::next_enrollment().has_value()); - ASSERT_EQ(1, FingerprintHalProperties::enrollments().size()); - ASSERT_EQ(4, FingerprintHalProperties::enrollments()[0].value()); + ASSERT_FALSE(Fingerprint::cfg().getopt("next_enrollment").has_value()); + ASSERT_EQ(1, Fingerprint::cfg().getopt("enrollments").size()); + ASSERT_EQ(4, Fingerprint::cfg().getopt("enrollments")[0].value()); ASSERT_EQ(4, mCallback->mLastEnrolled); ASSERT_EQ(prevCnt + 3, mCallback->mLastAcquiredCount); ASSERT_EQ(7, mCallback->mLastAcquiredInfo); @@ -240,8 +244,9 @@ TEST_F(FakeFingerprintEngineTest, EnrollAcquired) { } TEST_F(FakeFingerprintEngineTest, Authenticate) { - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(2); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kAuthenticate); mEngine.fingerDownAction(); @@ -252,9 +257,10 @@ TEST_F(FakeFingerprintEngineTest, Authenticate) { } TEST_F(FakeFingerprintEngineTest, AuthenticateCancel) { - FingerprintHalProperties::enrollments({2}); - FingerprintHalProperties::enrollment_hit(2); + Fingerprint::cfg().setopt("enrollments", {2}); + Fingerprint::cfg().set("enrollment_hit", 2); mCancel.set_value(); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::CANCELED, mCallback->mError); @@ -262,16 +268,18 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateCancel) { } TEST_F(FakeFingerprintEngineTest, AuthenticateNotSet) { - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit({}); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().setopt("enrollment_hit", std::nullopt); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mAuthenticateFailed); } TEST_F(FakeFingerprintEngineTest, AuthenticateNotEnrolled) { - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(3); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 3); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mAuthenticateFailed); @@ -279,9 +287,10 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateNotEnrolled) { } TEST_F(FakeFingerprintEngineTest, AuthenticateLockout) { - FingerprintHalProperties::enrollments({22, 2}); - FingerprintHalProperties::enrollment_hit(2); - FingerprintHalProperties::lockout(true); + Fingerprint::cfg().setopt("enrollments", {22, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); + Fingerprint::cfg().set("lockout", true); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mLockoutPermanent); @@ -289,7 +298,8 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateLockout) { } TEST_F(FakeFingerprintEngineTest, AuthenticateError8) { - FingerprintHalProperties::operation_authenticate_error(8); + Fingerprint::cfg().set("operation_authenticate_error", 8); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(mCallback->mError, (Error)8); @@ -297,7 +307,8 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateError8) { } TEST_F(FakeFingerprintEngineTest, AuthenticateError9) { - FingerprintHalProperties::operation_authenticate_error(1009); + Fingerprint::cfg().set("operation_authenticate_error", 1009); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(mCallback->mError, (Error)7); @@ -305,7 +316,8 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateError9) { } TEST_F(FakeFingerprintEngineTest, AuthenticateFails) { - FingerprintHalProperties::operation_authenticate_fails(true); + Fingerprint::cfg().set("operation_authenticate_fails", true); + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_TRUE(mCallback->mAuthenticateFailed); @@ -313,11 +325,12 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateFails) { } TEST_F(FakeFingerprintEngineTest, AuthenticateAcquired) { - FingerprintHalProperties::lockout(false); - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(2); - FingerprintHalProperties::operation_authenticate_acquired("4,1009"); + Fingerprint::cfg().set("lockout", false); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); + Fingerprint::cfg().set("operation_authenticate_acquired", "4,1009"); int32_t prevCount = mCallback->mLastAcquiredCount; + mEngine.notifyFingerdown(); mEngine.authenticateImpl(mCallback.get(), 0, mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_FALSE(mCallback->mAuthenticateFailed); @@ -328,10 +341,11 @@ TEST_F(FakeFingerprintEngineTest, AuthenticateAcquired) { } TEST_F(FakeFingerprintEngineTest, InteractionDetect) { - FingerprintHalProperties::detect_interaction(true); - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(2); - FingerprintHalProperties::operation_detect_interaction_acquired(""); + Fingerprint::cfg().set("detect_interaction", true); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); + Fingerprint::cfg().set("operation_detect_interaction_acquired", ""); + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); ASSERT_EQ(mEngine.getWorkMode(), FakeFingerprintEngine::WorkMode::kDetectInteract); mEngine.fingerDownAction(); @@ -341,10 +355,11 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetect) { } TEST_F(FakeFingerprintEngineTest, InteractionDetectCancel) { - FingerprintHalProperties::detect_interaction(true); - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(2); + Fingerprint::cfg().set("detect_interaction", true); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); mCancel.set_value(); + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(Error::CANCELED, mCallback->mError); @@ -352,25 +367,28 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectCancel) { } TEST_F(FakeFingerprintEngineTest, InteractionDetectNotSet) { - FingerprintHalProperties::detect_interaction(true); - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit({}); + Fingerprint::cfg().set("detect_interaction", true); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().setopt("enrollment_hit", std::nullopt); + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(1, mCallback->mInteractionDetectedCount); } TEST_F(FakeFingerprintEngineTest, InteractionDetectNotEnrolled) { - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(25); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 25); + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(1, mCallback->mInteractionDetectedCount); } TEST_F(FakeFingerprintEngineTest, InteractionDetectError) { - FingerprintHalProperties::detect_interaction(true); - FingerprintHalProperties::operation_detect_interaction_error(8); + Fingerprint::cfg().set("detect_interaction", true); + Fingerprint::cfg().set("operation_detect_interaction_error", 8); + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(0, mCallback->mInteractionDetectedCount); @@ -379,11 +397,12 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectError) { } TEST_F(FakeFingerprintEngineTest, InteractionDetectAcquired) { - FingerprintHalProperties::detect_interaction(true); - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(2); - FingerprintHalProperties::operation_detect_interaction_acquired("4,1013"); + Fingerprint::cfg().set("detect_interaction", true); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); + Fingerprint::cfg().set("operation_detect_interaction_acquired", "4,1013"); int32_t prevCount = mCallback->mLastAcquiredCount; + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(mCallback.get(), mCancel.get_future()); mEngine.fingerDownAction(); ASSERT_EQ(1, mCallback->mInteractionDetectedCount); @@ -393,10 +412,10 @@ TEST_F(FakeFingerprintEngineTest, InteractionDetectAcquired) { } TEST_F(FakeFingerprintEngineTest, EnumerateEnrolled) { - FingerprintHalProperties::enrollments({2, 4, 8}); + Fingerprint::cfg().setopt("enrollments", {2, 4, 8}); mEngine.enumerateEnrollmentsImpl(mCallback.get()); ASSERT_EQ(3, mCallback->mLastEnrollmentEnumerated.size()); - for (auto id : FingerprintHalProperties::enrollments()) { + for (auto id : Fingerprint::cfg().getopt("enrollments")) { ASSERT_TRUE(std::find(mCallback->mLastEnrollmentEnumerated.begin(), mCallback->mLastEnrollmentEnumerated.end(), id) != mCallback->mLastEnrollmentEnumerated.end()); @@ -404,9 +423,9 @@ TEST_F(FakeFingerprintEngineTest, EnumerateEnrolled) { } TEST_F(FakeFingerprintEngineTest, RemoveEnrolled) { - FingerprintHalProperties::enrollments({2, 4, 8, 1}); + Fingerprint::cfg().setopt("enrollments", {2, 4, 8, 1}); mEngine.removeEnrollmentsImpl(mCallback.get(), {2, 8}); - auto enrolls = FingerprintHalProperties::enrollments(); + auto enrolls = Fingerprint::cfg().getopt("enrollments"); ASSERT_EQ(2, mCallback->mLastEnrollmentRemoved.size()); for (auto id : {2, 8}) { ASSERT_TRUE(std::find(mCallback->mLastEnrollmentRemoved.begin(), @@ -490,17 +509,17 @@ TEST_F(FakeFingerprintEngineTest, parseEnrollmentCaptureFail) { } TEST_F(FakeFingerprintEngineTest, randomLatency) { - FingerprintHalProperties::operation_detect_interaction_latency({}); - ASSERT_EQ(DEFAULT_LATENCY, - mEngine.getLatency(FingerprintHalProperties::operation_detect_interaction_latency())); - FingerprintHalProperties::operation_detect_interaction_latency({10}); - ASSERT_EQ(10, - mEngine.getLatency(FingerprintHalProperties::operation_detect_interaction_latency())); - FingerprintHalProperties::operation_detect_interaction_latency({1, 1000}); + Fingerprint::cfg().setopt("operation_detect_interaction_latency", {}); + ASSERT_EQ(DEFAULT_LATENCY, mEngine.getLatency(Fingerprint::cfg().getopt( + "operation_detect_interaction_latency"))); + Fingerprint::cfg().setopt("operation_detect_interaction_latency", {10}); + ASSERT_EQ(10, mEngine.getLatency(Fingerprint::cfg().getopt( + "operation_detect_interaction_latency"))); + Fingerprint::cfg().setopt("operation_detect_interaction_latency", {1, 1000}); std::set latencySet; for (int i = 0; i < 100; i++) { latencySet.insert(mEngine.getLatency( - FingerprintHalProperties::operation_detect_interaction_latency())); + Fingerprint::cfg().getopt("operation_detect_interaction_latency"))); } ASSERT_TRUE(latencySet.size() > 95); } diff --git a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp index f5518992600ec204beff27bd2c7d897f26170103..eb45f987b0314f365c5c13973064c2e351064c1a 100644 --- a/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp +++ b/biometrics/fingerprint/aidl/default/tests/FakeFingerprintEngineUdfpsTest.cpp @@ -23,6 +23,7 @@ #include "FakeFingerprintEngine.h" #include "FakeFingerprintEngineUdfps.h" +#include "Fingerprint.h" using namespace ::android::fingerprint::virt; using namespace ::aidl::android::hardware::biometrics::fingerprint; @@ -99,7 +100,7 @@ class FakeFingerprintEngineUdfpsTest : public ::testing::Test { void TearDown() override { // reset to default - FingerprintHalProperties::sensor_location(""); + Fingerprint::cfg().set("sensor_location", ""); } FakeFingerprintEngineUdfps mEngine; @@ -113,14 +114,14 @@ bool isDefaultLocation(SensorLocation& sc) { TEST_F(FakeFingerprintEngineUdfpsTest, getSensorLocationOk) { auto loc = "100:200:30"; - FingerprintHalProperties::sensor_location(loc); + Fingerprint::cfg().set("sensor_location", loc); SensorLocation sc = mEngine.getSensorLocation(); ASSERT_TRUE(sc.sensorLocationX == 100); ASSERT_TRUE(sc.sensorLocationY == 200); ASSERT_TRUE(sc.sensorRadius == 30); loc = "100:200:30:screen1"; - FingerprintHalProperties::sensor_location(loc); + Fingerprint::cfg().set("sensor_location", loc); sc = mEngine.getSensorLocation(); ASSERT_TRUE(sc.sensorLocationX == 100); ASSERT_TRUE(sc.sensorLocationY == 200); @@ -132,7 +133,7 @@ TEST_F(FakeFingerprintEngineUdfpsTest, getSensorLocationBad) { const std::vector badStr{"", "100", "10:20", "10,20,5", "a:b:c"}; SensorLocation sc; for (const auto& s : badStr) { - FingerprintHalProperties::sensor_location(s); + Fingerprint::cfg().set("sensor_location", s); sc = mEngine.getSensorLocation(); ASSERT_TRUE(isDefaultLocation(sc)); } @@ -145,6 +146,7 @@ TEST_F(FakeFingerprintEngineUdfpsTest, initialization) { TEST_F(FakeFingerprintEngineUdfpsTest, authenticate) { std::shared_ptr cb = ndk::SharedRefBase::make(); std::promise cancel; + mEngine.notifyFingerdown(); mEngine.authenticateImpl(cb.get(), 1, cancel.get_future()); ASSERT_TRUE(mEngine.getWorkMode() == FakeFingerprintEngineUdfps::WorkMode::kAuthenticate); mEngine.onPointerDownImpl(1, 2, 3, 4.0, 5.0); @@ -157,7 +159,8 @@ TEST_F(FakeFingerprintEngineUdfpsTest, enroll) { std::shared_ptr cb = ndk::SharedRefBase::make(); std::promise cancel; keymaster::HardwareAuthToken hat{.mac = {5, 6}}; - FingerprintHalProperties::next_enrollment("5:0,0:true"); + Fingerprint::cfg().set("next_enrollment", "5:0,0:true"); + mEngine.notifyFingerdown(); mEngine.enrollImpl(cb.get(), hat, cancel.get_future()); ASSERT_TRUE(mEngine.getWorkMode() == FakeFingerprintEngineUdfps::WorkMode::kEnroll); mEngine.onPointerDownImpl(1, 2, 3, 4.0, 5.0); @@ -167,12 +170,13 @@ TEST_F(FakeFingerprintEngineUdfpsTest, enroll) { } TEST_F(FakeFingerprintEngineUdfpsTest, detectInteraction) { - FingerprintHalProperties::detect_interaction(true); - FingerprintHalProperties::enrollments({1, 2}); - FingerprintHalProperties::enrollment_hit(2); - FingerprintHalProperties::operation_detect_interaction_acquired(""); + Fingerprint::cfg().set("detect_interaction", true); + Fingerprint::cfg().setopt("enrollments", {1, 2}); + Fingerprint::cfg().set("enrollment_hit", 2); + Fingerprint::cfg().set("operation_detect_interaction_acquired", ""); std::shared_ptr cb = ndk::SharedRefBase::make(); std::promise cancel; + mEngine.notifyFingerdown(); mEngine.detectInteractionImpl(cb.get(), cancel.get_future()); ASSERT_TRUE(mEngine.getWorkMode() == FakeFingerprintEngineUdfps::WorkMode::kDetectInteract); mEngine.onPointerDownImpl(1, 2, 3, 4.0, 5.0); diff --git a/biometrics/fingerprint/aidl/default/tests/FakeLockoutTrackerTest.cpp b/biometrics/fingerprint/aidl/default/tests/FakeLockoutTrackerTest.cpp index 93c6f844ed1219737e329e4a6c49188e8bfac03b..3c12b6d97fca66f5efadb33738e9c3f1b38054e0 100644 --- a/biometrics/fingerprint/aidl/default/tests/FakeLockoutTrackerTest.cpp +++ b/biometrics/fingerprint/aidl/default/tests/FakeLockoutTrackerTest.cpp @@ -21,6 +21,7 @@ #include #include "FakeLockoutTracker.h" +#include "Fingerprint.h" #include "util/Util.h" using namespace ::android::fingerprint::virt; @@ -35,32 +36,33 @@ class FakeLockoutTrackerTest : public ::testing::Test { static constexpr int32_t LOCKOUT_TIMED_DURATION = 100; void SetUp() override { - FingerprintHalProperties::lockout_timed_threshold(LOCKOUT_TIMED_THRESHOLD); - FingerprintHalProperties::lockout_timed_duration(LOCKOUT_TIMED_DURATION); - FingerprintHalProperties::lockout_permanent_threshold(LOCKOUT_PERMANENT_THRESHOLD); + Fingerprint::cfg().set("lockout_timed_threshold", LOCKOUT_TIMED_THRESHOLD); + Fingerprint::cfg().set("lockout_timed_duration", LOCKOUT_TIMED_DURATION); + Fingerprint::cfg().set("lockout_permanent_threshold", + LOCKOUT_PERMANENT_THRESHOLD); } void TearDown() override { // reset to default - FingerprintHalProperties::lockout_timed_threshold(5); - FingerprintHalProperties::lockout_timed_duration(20); - FingerprintHalProperties::lockout_permanent_threshold(10000); - FingerprintHalProperties::lockout_enable(false); - FingerprintHalProperties::lockout(false); + Fingerprint::cfg().set("lockout_timed_threshold", 5); + Fingerprint::cfg().set("lockout_timed_duration", 20); + Fingerprint::cfg().set("lockout_permanent_threshold", 10000); + Fingerprint::cfg().set("lockout_enable", false); + Fingerprint::cfg().set("lockout", false); } FakeLockoutTracker mLockoutTracker; }; TEST_F(FakeLockoutTrackerTest, addFailedAttemptDisable) { - FingerprintHalProperties::lockout_enable(false); + Fingerprint::cfg().set("lockout_enable", false); for (int i = 0; i < LOCKOUT_TIMED_THRESHOLD + 1; i++) mLockoutTracker.addFailedAttempt(); ASSERT_EQ(mLockoutTracker.getMode(), FakeLockoutTracker::LockoutMode::kNone); mLockoutTracker.reset(); } TEST_F(FakeLockoutTrackerTest, addFailedAttemptLockoutTimed) { - FingerprintHalProperties::lockout_enable(true); + Fingerprint::cfg().set("lockout_enable", true); for (int i = 0; i < LOCKOUT_TIMED_THRESHOLD; i++) mLockoutTracker.addFailedAttempt(); ASSERT_EQ(mLockoutTracker.getMode(), FakeLockoutTracker::LockoutMode::kTimed); // time left @@ -77,12 +79,12 @@ TEST_F(FakeLockoutTrackerTest, addFailedAttemptLockoutTimed) { } TEST_F(FakeLockoutTrackerTest, addFailedAttemptPermanent) { - FingerprintHalProperties::lockout_enable(true); + Fingerprint::cfg().set("lockout_enable", true); for (int i = 0; i < LOCKOUT_PERMANENT_THRESHOLD - 1; i++) mLockoutTracker.addFailedAttempt(); ASSERT_NE(mLockoutTracker.getMode(), FakeLockoutTracker::LockoutMode::kPermanent); mLockoutTracker.addFailedAttempt(); ASSERT_EQ(mLockoutTracker.getMode(), FakeLockoutTracker::LockoutMode::kPermanent); - ASSERT_TRUE(FingerprintHalProperties::lockout()); + ASSERT_TRUE(Fingerprint::cfg().get("lockout")); mLockoutTracker.reset(); } diff --git a/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp b/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp index 945108796ae6d18bf8a13f631e8c665857d54b4f..82dda61fbfa3ca6691f67945b23dd53e59c86eee 100644 --- a/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp +++ b/bluetooth/1.0/vts/functional/VtsHalBluetoothV1_0TargetTest.cpp @@ -43,6 +43,8 @@ using ::android::hardware::bluetooth::V1_0::Status; #define HCI_MINIMUM_HCI_VERSION 5 // Bluetooth Core Specification 3.0 + HS #define HCI_MINIMUM_LMP_VERSION 5 // Bluetooth Core Specification 3.0 + HS +#define HCI_BLUETOOTH4_2_HCI_VERSION 8 // Bluetooth 4.2 +#define HCI_BLUETOOTH4_2_LMP_VERSION 8 // Bluetooth 4.2 #define NUM_HCI_COMMANDS_BANDWIDTH 1000 #define NUM_SCO_PACKETS_BANDWIDTH 1000 #define NUM_ACL_PACKETS_BANDWIDTH 1000 @@ -52,6 +54,7 @@ using ::android::hardware::bluetooth::V1_0::Status; #define WAIT_FOR_ACL_DATA_TIMEOUT std::chrono::milliseconds(1000) #define INTERFACE_CLOSE_DELAY_MS std::chrono::milliseconds(600) +// { OCF, OGF << 2, Length of command parameters} #define COMMAND_HCI_SHOULD_BE_UNKNOWN \ { 0xff, 0x3B, 0x08, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } #define COMMAND_HCI_READ_LOCAL_VERSION_INFORMATION \ @@ -64,6 +67,10 @@ using ::android::hardware::bluetooth::V1_0::Status; { 0x03, 0x0c, 0x00 } #define COMMAND_HCI_WRITE_LOCAL_NAME \ { 0x13, 0x0c, 0xf8 } +#define COMMAND_HCI_READ_LOCAL_SUPPORTED_FEATURES \ + { 0x03, 0x04 << 2, 0x00 } // OGF=0x04, OCF=0x0003 / 7.4 INFORMATIONAL PARAMETERS +#define COMMAND_HCI_LE_READ_LOCAL_SUPPORTED_FEATURES \ + { 0x03, 0x08 << 2, 0x00 } // OGF=0x08, OCF=0x0003 / 7.8 LE CONTROLLER COMMANDS #define HCI_STATUS_SUCCESS 0x00 #define HCI_STATUS_UNKNOWN_HCI_COMMAND 0x01 @@ -85,6 +92,30 @@ using ::android::hardware::bluetooth::V1_0::Status; #define EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE 6 #define EVENT_LOCAL_HCI_VERSION_BYTE EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE #define EVENT_LOCAL_LMP_VERSION_BYTE EVENT_LOCAL_HCI_VERSION_BYTE + 3 +/** + * See Bluetooth Spec 5.4, Vol 2, Part C + * Link Manager Protocol, 3.3 Feature Mask Definition + * + * No | Supported Feature | Byte | Bit | Page + * ... + * 38 | LE Supported (Controller) | 4 | 6 | 0 + * ... + */ +#define EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BYTE \ + (EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE + 0x04) +#define EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BITMASK (0x01 << 6) +/** + * See Bluetooth Spec 5.4, Vol 6, Part B + * 4.6 Feature Support + * + * Bit | Link Layer Feature + * ... + * 5 | LE Data Packet Length Extension + * ... + */ +#define EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_EXTENSION_BYTE \ + (EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE + 0x00) +#define EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_BITMASK (0x01 << 5) #define EVENT_CONNECTION_COMPLETE_PARAM_LENGTH 11 #define EVENT_CONNECTION_COMPLETE_TYPE 11 @@ -209,7 +240,7 @@ class BluetoothHidlTest : public ::testing::TestWithParam { std::vector& acl_handles); void handle_no_ops(); void wait_for_event(bool timeout_is_error); - void wait_for_command_complete_event(hidl_vec cmd); + hidl_vec wait_for_command_complete_event(hidl_vec cmd); int wait_for_completed_packets_event(uint16_t handle); class BluetoothHciDeathRecipient : public hidl_death_recipient { @@ -338,17 +369,19 @@ void BluetoothHidlTest::wait_for_event(bool timeout_is_error = true) { } // Wait until a COMMAND_COMPLETE is received. -void BluetoothHidlTest::wait_for_command_complete_event(hidl_vec cmd) { +hidl_vec BluetoothHidlTest::wait_for_command_complete_event(hidl_vec cmd) { wait_for_event(); hidl_vec event = event_queue.front(); event_queue.pop(); - ASSERT_GT(event.size(), + EXPECT_GT(event.size(), static_cast(EVENT_COMMAND_COMPLETE_STATUS_BYTE)); - ASSERT_EQ(EVENT_COMMAND_COMPLETE, event[EVENT_CODE_BYTE]); - ASSERT_EQ(cmd[0], event[EVENT_COMMAND_COMPLETE_OPCODE_LSBYTE]); - ASSERT_EQ(cmd[1], event[EVENT_COMMAND_COMPLETE_OPCODE_LSBYTE + 1]); - ASSERT_EQ(HCI_STATUS_SUCCESS, event[EVENT_COMMAND_COMPLETE_STATUS_BYTE]); + EXPECT_EQ(EVENT_COMMAND_COMPLETE, event[EVENT_CODE_BYTE]); + EXPECT_EQ(cmd[0], event[EVENT_COMMAND_COMPLETE_OPCODE_LSBYTE]); + EXPECT_EQ(cmd[1], event[EVENT_COMMAND_COMPLETE_OPCODE_LSBYTE + 1]); + EXPECT_EQ(HCI_STATUS_SUCCESS, event[EVENT_COMMAND_COMPLETE_STATUS_BYTE]); + + return event; } // Send the command to read the controller's buffer sizes. @@ -623,6 +656,36 @@ TEST_P(BluetoothHidlTest, HciVersionTest) { ASSERT_LE(HCI_MINIMUM_LMP_VERSION, event[EVENT_LOCAL_LMP_VERSION_BYTE]); } +/** + * VSR-5.3.14-007 MUST support Bluetooth 4.2 and Bluetooth LE Data Length Extension. + * VSR-5.3.14-008 MUST support Bluetooth Low Energy (BLE). + */ +// @VsrTest = 5.3.14-007 +// @VsrTest = 5.3.14-008 +TEST_P(BluetoothHidlTest, Bluetooth4_2) { + // Bluetooth 4.2+ + hidl_vec cmd = COMMAND_HCI_READ_LOCAL_VERSION_INFORMATION; + bluetooth->sendHciCommand(cmd); + auto event = wait_for_command_complete_event(cmd); + + EXPECT_LE(HCI_BLUETOOTH4_2_HCI_VERSION, event[EVENT_LOCAL_HCI_VERSION_BYTE]); + EXPECT_LE(HCI_BLUETOOTH4_2_LMP_VERSION, event[EVENT_LOCAL_LMP_VERSION_BYTE]); + + // BLE + cmd = COMMAND_HCI_READ_LOCAL_SUPPORTED_FEATURES; + bluetooth->sendHciCommand(cmd); + event = wait_for_command_complete_event(cmd); + EXPECT_TRUE(event[EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BYTE] & + EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BITMASK); + + // BLE Data Length Extension + cmd = COMMAND_HCI_LE_READ_LOCAL_SUPPORTED_FEATURES; + bluetooth->sendHciCommand(cmd); + event = wait_for_command_complete_event(cmd); + EXPECT_TRUE(event[EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_EXTENSION_BYTE] & + EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_BITMASK); +} + // Send an unknown HCI command and wait for the error message. TEST_P(BluetoothHidlTest, HciUnknownCommand) { hidl_vec cmd = COMMAND_HCI_SHOULD_BE_UNKNOWN; diff --git a/bluetooth/1.1/vts/functional/VtsHalBluetoothV1_1TargetTest.cpp b/bluetooth/1.1/vts/functional/VtsHalBluetoothV1_1TargetTest.cpp index 28ac6034cf027bdf37f102e86fe60a3920044611..687765f113d7eca282507289a8eaf2e203b1c909 100644 --- a/bluetooth/1.1/vts/functional/VtsHalBluetoothV1_1TargetTest.cpp +++ b/bluetooth/1.1/vts/functional/VtsHalBluetoothV1_1TargetTest.cpp @@ -43,6 +43,8 @@ using ::android::hardware::bluetooth::V1_1::IBluetoothHciCallbacks; #define HCI_MINIMUM_HCI_VERSION 5 // Bluetooth Core Specification 3.0 + HS #define HCI_MINIMUM_LMP_VERSION 5 // Bluetooth Core Specification 3.0 + HS +#define HCI_BLUETOOTH4_2_HCI_VERSION 8 // Bluetooth 4.2 +#define HCI_BLUETOOTH4_2_LMP_VERSION 8 // Bluetooth 4.2 #define NUM_HCI_COMMANDS_BANDWIDTH 1000 #define NUM_SCO_PACKETS_BANDWIDTH 1000 #define NUM_ACL_PACKETS_BANDWIDTH 1000 @@ -52,6 +54,7 @@ using ::android::hardware::bluetooth::V1_1::IBluetoothHciCallbacks; #define WAIT_FOR_ACL_DATA_TIMEOUT std::chrono::milliseconds(1000) #define INTERFACE_CLOSE_DELAY_MS std::chrono::milliseconds(200) +// { OCF, OGF << 2, Length of bytes of command parameters } #define COMMAND_HCI_SHOULD_BE_UNKNOWN \ { 0xff, 0x3B, 0x08, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } #define COMMAND_HCI_READ_LOCAL_VERSION_INFORMATION \ @@ -64,6 +67,10 @@ using ::android::hardware::bluetooth::V1_1::IBluetoothHciCallbacks; { 0x03, 0x0c, 0x00 } #define COMMAND_HCI_WRITE_LOCAL_NAME \ { 0x13, 0x0c, 0xf8 } +#define COMMAND_HCI_READ_LOCAL_SUPPORTED_FEATURES \ + { 0x03, 0x04 << 2, 0x00 } // OGF=0x04, OCF=0x0003 / 7.4 INFORMATIONAL PARAMETERS +#define COMMAND_HCI_LE_READ_LOCAL_SUPPORTED_FEATURES \ + { 0x03, 0x08 << 2, 0x00 } // OGF=0x08, OCF=0x0003 / 7.8 LE CONTROLLER COMMANDS #define HCI_STATUS_SUCCESS 0x00 #define HCI_STATUS_UNKNOWN_HCI_COMMAND 0x01 @@ -85,6 +92,30 @@ using ::android::hardware::bluetooth::V1_1::IBluetoothHciCallbacks; #define EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE 6 #define EVENT_LOCAL_HCI_VERSION_BYTE EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE #define EVENT_LOCAL_LMP_VERSION_BYTE EVENT_LOCAL_HCI_VERSION_BYTE + 3 +/** + * See Bluetooth Spec 5.4, Vol 2, Part C + * Link Manager Protocol, 3.3 Feature Mask Definition + * + * No | Supported Feature | Byte | Bit | Page + * ... + * 38 | LE Supported (Controller) | 4 | 6 | 0 + * ... + */ +#define EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BYTE \ + (EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE + 0x04) +#define EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BITMASK (0x01 << 6) +/** + * See Bluetooth Spec 5.4, Vol 6, Part B + * 4.6 Feature Support + * + * Bit | Link Layer Feature + * ... + * 5 | LE Data Packet Length Extension + * ... + */ +#define EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_EXTENSION_BYTE \ + (EVENT_COMMAND_COMPLETE_FIRST_PARAM_BYTE + 0x00) +#define EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_BITMASK (0x01 << 5) #define EVENT_CONNECTION_COMPLETE_PARAM_LENGTH 11 #define EVENT_CONNECTION_COMPLETE_TYPE 11 @@ -211,7 +242,7 @@ class BluetoothHidlTest : public ::testing::TestWithParam { std::vector* acl_handles); void handle_no_ops(); void wait_for_event(bool timeout_is_error); - void wait_for_command_complete_event(hidl_vec cmd); + hidl_vec wait_for_command_complete_event(hidl_vec cmd); int wait_for_completed_packets_event(uint16_t handle); class BluetoothHciDeathRecipient : public hidl_death_recipient { @@ -350,7 +381,7 @@ void BluetoothHidlTest::wait_for_event(bool timeout_is_error = true) { } // Wait until a COMMAND_COMPLETE is received. -void BluetoothHidlTest::wait_for_command_complete_event(hidl_vec cmd) { +hidl_vec BluetoothHidlTest::wait_for_command_complete_event(hidl_vec cmd) { wait_for_event(); hidl_vec event = event_queue.front(); event_queue.pop(); @@ -361,6 +392,8 @@ void BluetoothHidlTest::wait_for_command_complete_event(hidl_vec cmd) { EXPECT_EQ(cmd[0], event[EVENT_COMMAND_COMPLETE_OPCODE_LSBYTE]); EXPECT_EQ(cmd[1], event[EVENT_COMMAND_COMPLETE_OPCODE_LSBYTE + 1]); EXPECT_EQ(HCI_STATUS_SUCCESS, event[EVENT_COMMAND_COMPLETE_STATUS_BYTE]); + + return event; } // Send the command to read the controller's buffer sizes. @@ -646,6 +679,36 @@ TEST_P(BluetoothHidlTest, HciVersionTest) { EXPECT_LE(HCI_MINIMUM_LMP_VERSION, event[EVENT_LOCAL_LMP_VERSION_BYTE]); } +/** + * VSR-5.3.14-007 MUST support Bluetooth 4.2 and Bluetooth LE Data Length Extension. + * VSR-5.3.14-008 MUST support Bluetooth Low Energy (BLE). + */ +// @VsrTest = 5.3.14-007 +// @VsrTest = 5.3.14-008 +TEST_P(BluetoothHidlTest, Bluetooth4_2) { + // Bluetooth 4.2+ + hidl_vec cmd = COMMAND_HCI_READ_LOCAL_VERSION_INFORMATION; + bluetooth->sendHciCommand(cmd); + auto event = wait_for_command_complete_event(cmd); + + EXPECT_LE(HCI_BLUETOOTH4_2_HCI_VERSION, event[EVENT_LOCAL_HCI_VERSION_BYTE]); + EXPECT_LE(HCI_BLUETOOTH4_2_LMP_VERSION, event[EVENT_LOCAL_LMP_VERSION_BYTE]); + + // BLE + cmd = COMMAND_HCI_READ_LOCAL_SUPPORTED_FEATURES; + bluetooth->sendHciCommand(cmd); + event = wait_for_command_complete_event(cmd); + EXPECT_TRUE(event[EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BYTE] & + EVENT_LOCAL_SUPPORTED_FEATURES_LE_SUPPORTED_BITMASK); + + // BLE Data Length Extension + cmd = COMMAND_HCI_LE_READ_LOCAL_SUPPORTED_FEATURES; + bluetooth->sendHciCommand(cmd); + event = wait_for_command_complete_event(cmd); + EXPECT_TRUE(event[EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_EXTENSION_BYTE] & + EVENT_LOCAL_LE_SUPPORTED_FEATURES_DATA_LENGTH_BITMASK); +} + // Send an unknown HCI command and wait for the error message. TEST_P(BluetoothHidlTest, HciUnknownCommand) { hidl_vec cmd = COMMAND_HCI_SHOULD_BE_UNKNOWN; diff --git a/bluetooth/aidl/vts/VtsHalBluetoothTargetTest.cpp b/bluetooth/aidl/vts/VtsHalBluetoothTargetTest.cpp index 24eb4d08711dafab98d2060348f061f8442b794d..87f0f112a9f84b4d18a706ed074029c5ab3d8613 100644 --- a/bluetooth/aidl/vts/VtsHalBluetoothTargetTest.cpp +++ b/bluetooth/aidl/vts/VtsHalBluetoothTargetTest.cpp @@ -118,6 +118,10 @@ static bool isTv() { testing::deviceSupportsFeature("android.hardware.type.television"); } +static bool isHandheld() { + return testing::deviceSupportsFeature("android.hardware.type.handheld"); +} + class ThroughputLogger { public: explicit ThroughputLogger(std::string task) @@ -1039,6 +1043,47 @@ TEST_P(BluetoothAidlTest, Vsr_Bluetooth5Requirements) { ASSERT_GE(num_resolving_list, kMinLeResolvingListForBt5); } +/** + * VSR-5.3.14-007 MUST support Bluetooth 4.2 and Bluetooth LE Data Length Extension. + * VSR-5.3.14-008 MUST support Bluetooth Low Energy (BLE). + */ +// @VsrTest = 5.3.14-007 +// @VsrTest = 5.3.14-008 +TEST_P(BluetoothAidlTest, Vsr_Bluetooth4_2Requirements) { + // test only applies to handheld devices + if (!isHandheld()) { + return; + } + + std::vector version_event; + send_and_wait_for_cmd_complete(ReadLocalVersionInformationBuilder::Create(), + version_event); + auto version_view = ReadLocalVersionInformationCompleteView::Create( + CommandCompleteView::Create(EventView::Create(PacketView( + std::make_shared>(version_event))))); + ASSERT_TRUE(version_view.IsValid()); + ASSERT_EQ(::bluetooth::hci::ErrorCode::SUCCESS, version_view.GetStatus()); + auto version = version_view.GetLocalVersionInformation(); + // Starting with Android 15, Fails when HCI version is lower than 4.2. + ASSERT_GE(static_cast(version.hci_version_), + static_cast(::bluetooth::hci::HciVersion::V_4_2)); + ASSERT_GE(static_cast(version.lmp_version_), + static_cast(::bluetooth::hci::LmpVersion::V_4_2)); + + std::vector le_features_event; + send_and_wait_for_cmd_complete(LeReadLocalSupportedFeaturesBuilder::Create(), + le_features_event); + auto le_features_view = LeReadLocalSupportedFeaturesCompleteView::Create( + CommandCompleteView::Create(EventView::Create(PacketView( + std::make_shared>(le_features_event))))); + ASSERT_TRUE(le_features_view.IsValid()); + ASSERT_EQ(::bluetooth::hci::ErrorCode::SUCCESS, le_features_view.GetStatus()); + auto le_features = le_features_view.GetLeFeatures(); + ASSERT_TRUE(le_features & + static_cast(LLFeaturesBits::LE_EXTENDED_ADVERTISING)); + +} + GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BluetoothAidlTest); INSTANTIATE_TEST_SUITE_P(PerInstance, BluetoothAidlTest, testing::ValuesIn(android::getAidlHalInstanceNames( diff --git a/bluetooth/audio/aidl/Android.bp b/bluetooth/audio/aidl/Android.bp index feed6f55ca5e8d184f8ed9c97f95dc0b69d325b7..f8818fda29162ddb7ea4af94369b34d2060818d3 100644 --- a/bluetooth/audio/aidl/Android.bp +++ b/bluetooth/audio/aidl/Android.bp @@ -75,9 +75,17 @@ aidl_interface { "android.hardware.audio.common-V2", ], }, + { + version: "4", + imports: [ + "android.hardware.audio.common-V3", + "android.hardware.common-V2", + "android.hardware.common.fmq-V1", + ], + }, ], - frozen: false, + frozen: true, } diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/.hash b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/.hash new file mode 100644 index 0000000000000000000000000000000000000000..a1dec3a95ee02c7f87d1df81fb34699cd1aeff74 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/.hash @@ -0,0 +1 @@ +ac25616dda1c45dc2915d3f5ac82687a1a6f6e46 diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9e67b1520d03fe86a705881c521a9f7818b7d53d --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfiguration.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable A2dpConfiguration { + int remoteSeid; + android.hardware.bluetooth.audio.CodecId id; + android.hardware.bluetooth.audio.CodecParameters parameters; + byte[] configuration; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfigurationHint.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfigurationHint.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0a5b4893218452a2f18b991934ed4d9121cd2165 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpConfigurationHint.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable A2dpConfigurationHint { + byte[6] bdAddr; + android.hardware.bluetooth.audio.AudioContext audioContext; + @nullable android.hardware.bluetooth.audio.CodecId codecId; + @nullable android.hardware.bluetooth.audio.CodecParameters codecParameters; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9c1e97173a442227366f7fefa3f36d92ed59f236 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable A2dpRemoteCapabilities { + int seid; + android.hardware.bluetooth.audio.CodecId id; + byte[] capabilities; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStatus.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ac22e2519f45d3698a6ec039ac1961c23d2623ef --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStatus.aidl @@ -0,0 +1,65 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum A2dpStatus { + OK = 0, + BAD_LENGTH = 0x11u8, + BAD_PAYLOAD_FORMAT = 0x18u8, + INVALID_CODEC_TYPE = 0xC1u8, + NOT_SUPPORTED_CODEC_TYPE = 0xC2u8, + INVALID_SAMPLING_FREQUENCY = 0xC3u8, + NOT_SUPPORTED_SAMPLING_FREQUENCY = 0xC4u8, + INVALID_CHANNEL_MODE = 0xC5u8, + NOT_SUPPORTED_CHANNEL_MODE = 0xC6u8, + INVALID_SUBBANDS = 0xC7u8, + NOT_SUPPORTED_SUBBANDS = 0xC8u8, + INVALID_ALLOCATION_METHOD = 0xC9u8, + NOT_SUPPORTED_ALLOCATION_METHOD = 0xCAu8, + INVALID_MINIMUM_BITPOOL_VALUE = 0xCBu8, + NOT_SUPPORTED_MINIMUM_BITPOOL_VALUE = 0xCCu8, + INVALID_MAXIMUM_BITPOOL_VALUE = 0xCDu8, + NOT_SUPPORTED_MAXIMUM_BITPOOL_VALUE = 0xCEu8, + NOT_SUPPORTED_VBR = 0xD3u8, + NOT_SUPPORTED_BIT_RATE = 0xD5u8, + INVALID_OBJECT_TYPE = 0xD6u8, + NOT_SUPPORTED_OBJECT_TYPE = 0xD7u8, + INVALID_CHANNELS = 0xD8u8, + NOT_SUPPORTED_CHANNELS = 0xD9u8, + INVALID_BLOCK_LENGTH = 0xDDu8, + INVALID_CODEC_PARAMETER = 0xE2u8, + NOT_SUPPORTED_CODEC_PARAMETER = 0xE3u8, + INVALID_DRC = 0xE4u8, + NOT_SUPPORTED_DRC = 0xE5u8, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ff5a1bc29861757893f27e5023b398fe3146829a --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable A2dpStreamConfiguration { + int peerMtu; + @nullable byte[1] cpHeaderScmst; + android.hardware.bluetooth.audio.CodecId codecId; + byte[] configuration; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e548cd326a5bc006a0580bbb98670d2f4c3ce676 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacCapabilities.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AacCapabilities { + android.hardware.bluetooth.audio.AacObjectType[] objectType; + int[] sampleRateHz; + android.hardware.bluetooth.audio.ChannelMode[] channelMode; + boolean variableBitRateSupported; + byte[] bitsPerSample; + boolean adaptiveBitRateSupported; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..29ab8ce3d081178c6dc343cdc77a423b49837f32 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacConfiguration.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AacConfiguration { + android.hardware.bluetooth.audio.AacObjectType objectType; + int sampleRateHz; + android.hardware.bluetooth.audio.ChannelMode channelMode; + boolean variableBitRateEnabled; + byte bitsPerSample; + boolean adaptiveBitRateSupported; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacObjectType.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacObjectType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..418dd7a6a5e549bdf7093d500ed365afcafd40a4 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AacObjectType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum AacObjectType { + MPEG2_LC, + MPEG4_LC, + MPEG4_LTP, + MPEG4_SCALABLE, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4e5dfe66c29121a2d642f345b9aa66b21192619b --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveCapabilities.aidl @@ -0,0 +1,46 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxAdaptiveCapabilities { + int[] sampleRateHz; + android.hardware.bluetooth.audio.AptxAdaptiveChannelMode[] channelMode; + byte[] bitsPerSample; + android.hardware.bluetooth.audio.AptxMode[] aptxMode; + android.hardware.bluetooth.audio.AptxSinkBuffering sinkBufferingMs; + android.hardware.bluetooth.audio.AptxAdaptiveTimeToPlay ttp; + android.hardware.bluetooth.audio.AptxAdaptiveInputMode inputMode; + int inputFadeDurationMs; + byte[] aptxAdaptiveConfigStream; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveChannelMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveChannelMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..675f9f2d23737b2671fdba4804e6bd29f46f117e --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveChannelMode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum AptxAdaptiveChannelMode { + JOINT_STEREO = 0, + MONO = 1, + DUAL_MONO = 2, + TWS_STEREO = 4, + UNKNOWN = 0xFF, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..aab05213b45cf7729d233cc8e7a7940b26b8ed95 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveConfiguration.aidl @@ -0,0 +1,46 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxAdaptiveConfiguration { + int sampleRateHz; + android.hardware.bluetooth.audio.AptxAdaptiveChannelMode channelMode; + byte bitsPerSample; + android.hardware.bluetooth.audio.AptxMode aptxMode; + android.hardware.bluetooth.audio.AptxSinkBuffering sinkBufferingMs; + android.hardware.bluetooth.audio.AptxAdaptiveTimeToPlay ttp; + android.hardware.bluetooth.audio.AptxAdaptiveInputMode inputMode; + int inputFadeDurationMs; + byte[] aptxAdaptiveConfigStream; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveInputMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveInputMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a18303ed75d13a6f64899b144364b4335ba4b106 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveInputMode.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum AptxAdaptiveInputMode { + STEREO = 0x00, + DUAL_MONO = 0x01, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c9d3cde671032747a3f1c87ec900d5fa0e7e8993 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeCapabilities.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxAdaptiveLeCapabilities { + byte[] pcmBitDepth; + int[] samplingFrequencyHz; + int[] frameDurationUs; + int[] octetsPerFrame; + byte[] blocksPerSdu; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..76df4edba1c454654888c8dd3290902334aa7d54 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveLeConfiguration.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxAdaptiveLeConfiguration { + byte pcmBitDepth; + int samplingFrequencyHz; + int frameDurationUs; + int octetsPerFrame; + byte blocksPerSdu; + int codecMode; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveTimeToPlay.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveTimeToPlay.aidl new file mode 100644 index 0000000000000000000000000000000000000000..35606667cb6ec9fd7ee39b8cedb14e29e2e660ba --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxAdaptiveTimeToPlay.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxAdaptiveTimeToPlay { + byte lowLowLatency; + byte highLowLatency; + byte lowHighQuality; + byte highHighQuality; + byte lowTws; + byte highTws; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..08a38e26e1e8dea6d64b6a5f61ea8216f4009f7a --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxCapabilities.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxCapabilities { + int[] sampleRateHz; + android.hardware.bluetooth.audio.ChannelMode[] channelMode; + byte[] bitsPerSample; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..91e88b32f3d853ddb36d5422d5ef06c4dce57d70 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxConfiguration.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxConfiguration { + int sampleRateHz; + android.hardware.bluetooth.audio.ChannelMode channelMode; + byte bitsPerSample; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dd8cf08c3929fb67e167a9d4f0980a670c378adf --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum AptxMode { + UNKNOWN = 0x00, + HIGH_QUALITY = 0x1000, + LOW_LATENCY = 0x2000, + ULTRA_LOW_LATENCY = 0x4000, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxSinkBuffering.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxSinkBuffering.aidl new file mode 100644 index 0000000000000000000000000000000000000000..527418e308ef57b45d73ff6424ac03e1df7a46a5 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AptxSinkBuffering.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AptxSinkBuffering { + byte minLowLatency; + byte maxLowLatency; + byte minHighQuality; + byte maxHighQuality; + byte minTws; + byte maxTws; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8ae716ff23299651bb3e1f27d23c3893d00698c1 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioCapabilities.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union AudioCapabilities { + android.hardware.bluetooth.audio.PcmCapabilities pcmCapabilities; + android.hardware.bluetooth.audio.CodecCapabilities a2dpCapabilities; + android.hardware.bluetooth.audio.LeAudioCodecCapabilitiesSetting leAudioCapabilities; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2c402678b1f1bf05a4dfe9b9f9820b9f8469fb4d --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioConfiguration.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union AudioConfiguration { + android.hardware.bluetooth.audio.PcmConfiguration pcmConfig; + android.hardware.bluetooth.audio.CodecConfiguration a2dpConfig; + android.hardware.bluetooth.audio.LeAudioConfiguration leAudioConfig; + android.hardware.bluetooth.audio.LeAudioBroadcastConfiguration leAudioBroadcastConfig; + android.hardware.bluetooth.audio.HfpConfiguration hfpConfig; + android.hardware.bluetooth.audio.A2dpStreamConfiguration a2dp; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioContext.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioContext.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5aafeb78d5c4ee55514c4432f7314560efded5fc --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioContext.aidl @@ -0,0 +1,50 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable AudioContext { + int bitmask; + const int UNSPECIFIED = 0x0001; + const int CONVERSATIONAL = 0x0002; + const int MEDIA = 0x0004; + const int GAME = 0x0008; + const int INSTRUCTIONAL = 0x0010; + const int VOICE_ASSISTANTS = 0x0020; + const int LIVE_AUDIO = 0x0040; + const int SOUND_EFFECTS = 0x0080; + const int NOTIFICATIONS = 0x0100; + const int RINGTONE_ALERTS = 0x0200; + const int ALERTS = 0x0400; + const int EMERGENCY_ALARM = 0x0800; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioLocation.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioLocation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..941344cdbec8f7ece405a0ba640230e3a95dbbfe --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/AudioLocation.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum AudioLocation { + UNKNOWN = 1, + FRONT_LEFT = (1 << 1) /* 2 */, + FRONT_RIGHT = (1 << 2) /* 4 */, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BluetoothAudioStatus.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BluetoothAudioStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c20c0576262f03ac0f182ccc6f378dab462ef120 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BluetoothAudioStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum BluetoothAudioStatus { + UNKNOWN = 0, + SUCCESS = 1, + UNSUPPORTED_CODEC_CONFIGURATION = 2, + FAILURE = 3, + RECONFIGURATION = 4, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BroadcastCapability.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BroadcastCapability.aidl new file mode 100644 index 0000000000000000000000000000000000000000..58710effe7f90a7fa8a5abd60f514ce86a722c3e --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/BroadcastCapability.aidl @@ -0,0 +1,50 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable BroadcastCapability { + android.hardware.bluetooth.audio.CodecType codecType; + android.hardware.bluetooth.audio.AudioLocation supportedChannel; + int channelCountPerStream; + android.hardware.bluetooth.audio.BroadcastCapability.LeAudioCodecCapabilities leAudioCodecCapabilities; + @VintfStability + parcelable VendorCapabilities { + ParcelableHolder extension; + } + @VintfStability + union LeAudioCodecCapabilities { + @nullable android.hardware.bluetooth.audio.Lc3Capabilities[] lc3Capabilities; + @nullable android.hardware.bluetooth.audio.BroadcastCapability.VendorCapabilities[] vendorCapabillities; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ChannelMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ChannelMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2bb5cd8e8b13b3fff91b04303852b6db033fd0ff --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ChannelMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum ChannelMode { + UNKNOWN, + MONO, + STEREO, + DUALMONO, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b00649a62dd03b5fe19706b7e1a3690df3d01d76 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecCapabilities.aidl @@ -0,0 +1,54 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable CodecCapabilities { + android.hardware.bluetooth.audio.CodecType codecType; + android.hardware.bluetooth.audio.CodecCapabilities.Capabilities capabilities; + @VintfStability + parcelable VendorCapabilities { + ParcelableHolder extension; + } + @VintfStability + union Capabilities { + android.hardware.bluetooth.audio.SbcCapabilities sbcCapabilities; + android.hardware.bluetooth.audio.AacCapabilities aacCapabilities; + android.hardware.bluetooth.audio.LdacCapabilities ldacCapabilities; + android.hardware.bluetooth.audio.AptxCapabilities aptxCapabilities; + android.hardware.bluetooth.audio.AptxAdaptiveCapabilities aptxAdaptiveCapabilities; + android.hardware.bluetooth.audio.Lc3Capabilities lc3Capabilities; + android.hardware.bluetooth.audio.CodecCapabilities.VendorCapabilities vendorCapabilities; + @nullable android.hardware.bluetooth.audio.OpusCapabilities opusCapabilities; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7f5ea48d8ae1f41f2ebbdc66c0453411672077b3 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecConfiguration.aidl @@ -0,0 +1,59 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable CodecConfiguration { + android.hardware.bluetooth.audio.CodecType codecType; + int encodedAudioBitrate; + int peerMtu; + boolean isScmstEnabled; + android.hardware.bluetooth.audio.CodecConfiguration.CodecSpecific config; + @VintfStability + parcelable VendorConfiguration { + int vendorId; + char codecId; + ParcelableHolder codecConfig; + } + @VintfStability + union CodecSpecific { + android.hardware.bluetooth.audio.SbcConfiguration sbcConfig; + android.hardware.bluetooth.audio.AacConfiguration aacConfig; + android.hardware.bluetooth.audio.LdacConfiguration ldacConfig; + android.hardware.bluetooth.audio.AptxConfiguration aptxConfig; + android.hardware.bluetooth.audio.AptxAdaptiveConfiguration aptxAdaptiveConfig; + android.hardware.bluetooth.audio.Lc3Configuration lc3Config; + android.hardware.bluetooth.audio.CodecConfiguration.VendorConfiguration vendorConfig; + @nullable android.hardware.bluetooth.audio.OpusConfiguration opusConfig; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecId.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecId.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f3b4102a307ea3e47f5deb96aff4d2d58859d373 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecId.aidl @@ -0,0 +1,53 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union CodecId { + android.hardware.bluetooth.audio.CodecId.A2dp a2dp = android.hardware.bluetooth.audio.CodecId.A2dp.SBC; + android.hardware.bluetooth.audio.CodecId.Core core; + android.hardware.bluetooth.audio.CodecId.Vendor vendor; + enum A2dp { + SBC = 0, + AAC = 2, + } + enum Core { + CVSD = 2, + MSBC = 5, + LC3 = 6, + } + parcelable Vendor { + int id; + int codecId; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecInfo.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2727d6e8407834ae17564dd43dec94951374cad2 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecInfo.aidl @@ -0,0 +1,64 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable CodecInfo { + android.hardware.bluetooth.audio.CodecId id; + String name; + android.hardware.bluetooth.audio.CodecInfo.Transport transport; + parcelable A2dp { + byte[] capabilities; + android.hardware.bluetooth.audio.ChannelMode[] channelMode; + int[] samplingFrequencyHz; + int[] bitdepth; + boolean lossless; + } + parcelable Hfp { + int inputDataPath = 1; + int outputDataPath = 1; + boolean useControllerCodec = true; + } + parcelable LeAudio { + android.hardware.bluetooth.audio.ChannelMode[] channelMode; + int[] samplingFrequencyHz; + int[] frameDurationUs; + int[] bitdepth; + @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; + } + union Transport { + android.hardware.bluetooth.audio.CodecInfo.LeAudio leAudio; + android.hardware.bluetooth.audio.CodecInfo.A2dp a2dp; + android.hardware.bluetooth.audio.CodecInfo.Hfp hfp; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecParameters.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecParameters.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ac63c289fd9d6d0d9dd6822606160bb2fc4b61ac --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecParameters.aidl @@ -0,0 +1,45 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable CodecParameters { + android.hardware.bluetooth.audio.ChannelMode channelMode; + int samplingFrequencyHz; + int bitdepth; + int minBitrate; + int maxBitrate; + boolean lowLatency = false; + boolean lossless = false; + byte[] vendorSpecificParameters; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl new file mode 100644 index 0000000000000000000000000000000000000000..60c276b0dd4567a2c19ae3f7760376fb9612817a --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl @@ -0,0 +1,83 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union CodecSpecificCapabilitiesLtv { + android.hardware.bluetooth.audio.CodecSpecificCapabilitiesLtv.SupportedSamplingFrequencies supportedSamplingFrequencies; + android.hardware.bluetooth.audio.CodecSpecificCapabilitiesLtv.SupportedFrameDurations supportedFrameDurations; + android.hardware.bluetooth.audio.CodecSpecificCapabilitiesLtv.SupportedAudioChannelCounts supportedAudioChannelCounts; + android.hardware.bluetooth.audio.CodecSpecificCapabilitiesLtv.SupportedOctetsPerCodecFrame supportedOctetsPerCodecFrame; + android.hardware.bluetooth.audio.CodecSpecificCapabilitiesLtv.SupportedMaxCodecFramesPerSDU supportedMaxCodecFramesPerSDU; + parcelable SupportedSamplingFrequencies { + int bitmask; + const int HZ8000 = 0x0001; + const int HZ11025 = 0x0002; + const int HZ16000 = 0x0004; + const int HZ22050 = 0x0008; + const int HZ24000 = 0x0010; + const int HZ32000 = 0x0020; + const int HZ44100 = 0x0040; + const int HZ48000 = 0x0080; + const int HZ88200 = 0x0100; + const int HZ96000 = 0x0200; + const int HZ176400 = 0x0400; + const int HZ192000 = 0x0800; + const int HZ384000 = 0x1000; + } + parcelable SupportedFrameDurations { + int bitmask; + const int US7500 = 0x01; + const int US10000 = 0x02; + const int US7500PREFERRED = 0x10; + const int US10000PREFERRED = 0x20; + } + parcelable SupportedAudioChannelCounts { + int bitmask; + const int ONE = 0x01; + const int TWO = 0x02; + const int THREE = 0x04; + const int FOUR = 0x08; + const int FIVE = 0x10; + const int SIX = 0x20; + const int SEVEN = 0x40; + const int EIGHT = 0x80; + } + parcelable SupportedOctetsPerCodecFrame { + int min; + int max; + } + parcelable SupportedMaxCodecFramesPerSDU { + int value; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificConfigurationLtv.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificConfigurationLtv.aidl new file mode 100644 index 0000000000000000000000000000000000000000..943d396aec6448b37b4b97a444b3e83b4cd36a73 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecSpecificConfigurationLtv.aidl @@ -0,0 +1,101 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union CodecSpecificConfigurationLtv { + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv.CodecFrameBlocksPerSDU codecFrameBlocksPerSDU; + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv.SamplingFrequency samplingFrequency; + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv.FrameDuration frameDuration; + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv.AudioChannelAllocation audioChannelAllocation; + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv.OctetsPerCodecFrame octetsPerCodecFrame; + @Backing(type="byte") + enum SamplingFrequency { + HZ8000 = 0x01, + HZ11025 = 0x02, + HZ16000 = 0x03, + HZ22050 = 0x04, + HZ24000 = 0x05, + HZ32000 = 0x06, + HZ44100 = 0x07, + HZ48000 = 0x08, + HZ88200 = 0x09, + HZ96000 = 0x0A, + HZ176400 = 0x0B, + HZ192000 = 0x0C, + HZ384000 = 0x0D, + } + @Backing(type="byte") + enum FrameDuration { + US7500 = 0x00, + US10000 = 0x01, + } + parcelable AudioChannelAllocation { + int bitmask; + const int NOT_ALLOWED = 0x00000000; + const int FRONT_LEFT = 0x00000001; + const int FRONT_RIGHT = 0x00000002; + const int FRONT_CENTER = 0x00000004; + const int LOW_FREQUENCY_EFFECTS_1 = 0x00000008; + const int BACK_LEFT = 0x00000010; + const int BACK_RIGHT = 0x00000020; + const int FRONT_LEFT_OF_CENTER = 0x00000040; + const int FRONT_RIGHT_OF_CENTER = 0x00000080; + const int BACK_CENTER = 0x00000100; + const int LOW_FREQUENCY_EFFECTS_2 = 0x00000200; + const int SIDE_LEFT = 0x00000400; + const int SIDE_RIGHT = 0x00000800; + const int TOP_FRONT_LEFT = 0x00001000; + const int TOP_FRONT_RIGHT = 0x00002000; + const int TOP_FRONT_CENTER = 0x00004000; + const int TOP_CENTER = 0x00008000; + const int TOP_BACK_LEFT = 0x00010000; + const int TOP_BACK_RIGHT = 0x00020000; + const int TOP_SIDE_LEFT = 0x00040000; + const int TOP_SIDE_RIGHT = 0x00080000; + const int TOP_BACK_CENTER = 0x00100000; + const int BOTTOM_FRONT_CENTER = 0x00200000; + const int BOTTOM_FRONT_LEFT = 0x00400000; + const int BOTTOM_FRONT_RIGHT = 0x00800000; + const int FRONT_LEFT_WIDE = 0x01000000; + const int FRONT_RIGHT_WIDE = 0x02000000; + const int LEFT_SURROUND = 0x04000000; + const int RIGHT_SURROUND = 0x08000000; + } + parcelable OctetsPerCodecFrame { + int value; + } + parcelable CodecFrameBlocksPerSDU { + int value; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecType.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d4f205e365007a3d8c2f34e0eb83dbe7eb795a3d --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/CodecType.aidl @@ -0,0 +1,49 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum CodecType { + UNKNOWN, + SBC, + AAC, + APTX, + APTX_HD, + LDAC, + LC3, + VENDOR, + APTX_ADAPTIVE, + OPUS, + APTX_ADAPTIVE_LE, + APTX_ADAPTIVE_LEX, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ConfigurationFlags.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ConfigurationFlags.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6b3cf723cf9f95b4a56064243e3700aab5ffcf98 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/ConfigurationFlags.aidl @@ -0,0 +1,45 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable ConfigurationFlags { + int bitmask; + const int NONE = 0x0000; + const int LOSSLESS = 0x0001; + const int LOW_LATENCY = 0x0002; + const int ALLOW_ASYMMETRIC_CONFIGURATIONS = 0x0004; + const int SPATIAL_AUDIO = 0x0008; + const int PROVIDE_ASE_METADATA = 0x0010; + const int MONO_MIC_CONFIGURATION = 0x0020; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/HfpConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/HfpConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..490a05d3f14774e01ba02fe1f51468b9da1da2bd --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/HfpConfiguration.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable HfpConfiguration { + android.hardware.bluetooth.audio.CodecId codecId; + int connectionHandle; + boolean nrec; + boolean controllerCodec; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioPort.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioPort.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d364371707c3b40bb9a292d6397058e78c5a94fe --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioPort.aidl @@ -0,0 +1,44 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +interface IBluetoothAudioPort { + android.hardware.bluetooth.audio.PresentationPosition getPresentationPosition(); + void startStream(boolean isLowLatency); + void stopStream(); + void suspendStream(); + void updateSourceMetadata(in android.hardware.audio.common.SourceMetadata sourceMetadata); + void updateSinkMetadata(in android.hardware.audio.common.SinkMetadata sinkMetadata); + void setLatencyMode(in android.hardware.bluetooth.audio.LatencyMode latencyMode); +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8d46c01bdabb1ed4f91d00eb0afbd696c5ca7f7d --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl @@ -0,0 +1,199 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +interface IBluetoothAudioProvider { + void endSession(); + android.hardware.common.fmq.MQDescriptor startSession(in android.hardware.bluetooth.audio.IBluetoothAudioPort hostIf, in android.hardware.bluetooth.audio.AudioConfiguration audioConfig, in android.hardware.bluetooth.audio.LatencyMode[] supportedLatencyModes); + void streamStarted(in android.hardware.bluetooth.audio.BluetoothAudioStatus status); + void streamSuspended(in android.hardware.bluetooth.audio.BluetoothAudioStatus status); + void updateAudioConfiguration(in android.hardware.bluetooth.audio.AudioConfiguration audioConfig); + void setLowLatencyModeAllowed(in boolean allowed); + android.hardware.bluetooth.audio.A2dpStatus parseA2dpConfiguration(in android.hardware.bluetooth.audio.CodecId codecId, in byte[] configuration, out android.hardware.bluetooth.audio.CodecParameters codecParameters); + @nullable android.hardware.bluetooth.audio.A2dpConfiguration getA2dpConfiguration(in android.hardware.bluetooth.audio.A2dpRemoteCapabilities[] remoteA2dpCapabilities, in android.hardware.bluetooth.audio.A2dpConfigurationHint hint); + void setCodecPriority(in android.hardware.bluetooth.audio.CodecId codecId, int priority); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting[] getLeAudioAseConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities[] remoteSinkAudioCapabilities, in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities[] remoteSourceAudioCapabilities, in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement[] requirements); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationPair getLeAudioAseQosConfiguration(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement qosRequirement); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.StreamConfig sinkConfig, in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.StreamConfig sourceConfig); + void onSinkAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata); + void onSourceAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationSetting getLeAudioBroadcastConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities[] remoteSinkAudioCapabilities, in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationRequirement requirement); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration getLeAudioBroadcastDatapathConfiguration(in android.hardware.bluetooth.audio.AudioContext audioContext, in android.hardware.bluetooth.audio.LeAudioBroadcastConfiguration.BroadcastStreamMap[] streamMap); + const int CODEC_PRIORITY_DISABLED = (-1) /* -1 */; + const int CODEC_PRIORITY_NONE = 0; + @VintfStability + parcelable LeAudioDeviceCapabilities { + android.hardware.bluetooth.audio.CodecId codecId; + android.hardware.bluetooth.audio.CodecSpecificCapabilitiesLtv[] codecSpecificCapabilities; + @nullable byte[] vendorCodecSpecificCapabilities; + @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata; + } + @VintfStability + parcelable LeAudioDataPathConfiguration { + int dataPathId; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration.DataPathConfiguration dataPathConfiguration; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration.IsoDataPathConfiguration isoDataPathConfiguration; + @VintfStability + parcelable IsoDataPathConfiguration { + android.hardware.bluetooth.audio.CodecId codecId; + boolean isTransparent; + int controllerDelayUs; + @nullable byte[] configuration; + } + @VintfStability + parcelable DataPathConfiguration { + @nullable byte[] configuration; + } + } + @VintfStability + parcelable LeAudioAseQosConfiguration { + int sduIntervalUs; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.Framing framing; + android.hardware.bluetooth.audio.Phy[] phy; + int maxTransportLatencyMs; + int maxSdu; + int retransmissionNum; + } + @Backing(type="byte") @VintfStability + enum Packing { + SEQUENTIAL = 0x00, + INTERLEAVED = 0x01, + } + @Backing(type="byte") @VintfStability + enum Framing { + UNFRAMED = 0x00, + FRAMED = 0x01, + } + @VintfStability + parcelable LeAudioAseConfigurationSetting { + android.hardware.bluetooth.audio.AudioContext audioContext; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.Packing packing; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting.AseDirectionConfiguration[] sinkAseConfiguration; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting.AseDirectionConfiguration[] sourceAseConfiguration; + @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; + @VintfStability + parcelable AseDirectionConfiguration { + android.hardware.bluetooth.audio.LeAudioAseConfiguration aseConfiguration; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfiguration qosConfiguration; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration dataPathConfiguration; + } + } + @VintfStability + parcelable LeAudioConfigurationRequirement { + android.hardware.bluetooth.audio.AudioContext audioContext; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement.AseDirectionRequirement[] sinkAseRequirement; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement.AseDirectionRequirement[] sourceAseRequirement; + @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; + @VintfStability + parcelable AseDirectionRequirement { + android.hardware.bluetooth.audio.LeAudioAseConfiguration aseConfiguration; + } + } + @VintfStability + parcelable LeAudioAseQosConfigurationRequirement { + android.hardware.bluetooth.audio.AudioContext audioContext; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement.AseQosDirectionRequirement sinkAseQosRequirement; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement.AseQosDirectionRequirement sourceAseQosRequirement; + @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; + @VintfStability + parcelable AseQosDirectionRequirement { + android.hardware.bluetooth.audio.IBluetoothAudioProvider.Framing framing; + android.hardware.bluetooth.audio.Phy[] preferredPhy; + int preferredRetransmissionNum; + int maxTransportLatencyMs; + int presentationDelayMinUs; + int presentationDelayMaxUs; + int preferredPresentationDelayMinUs; + int preferredPresentationDelayMaxUs; + android.hardware.bluetooth.audio.LeAudioAseConfiguration aseConfiguration; + } + } + @VintfStability + parcelable LeAudioAseQosConfigurationPair { + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfiguration sinkQosConfiguration; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfiguration sourceQosConfiguration; + } + parcelable LeAudioDataPathConfigurationPair { + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration inputConfig; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration outputConfig; + } + parcelable StreamConfig { + android.hardware.bluetooth.audio.AudioContext audioContext; + android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap[] streamMap; + } + @Backing(type="byte") @VintfStability + enum AseState { + ENABLING = 0x00, + STREAMING = 0x01, + DISABLING = 0x02, + } + @Backing(type="byte") @VintfStability + enum BroadcastQuality { + STANDARD, + HIGH, + } + @VintfStability + parcelable LeAudioBroadcastSubgroupConfigurationRequirement { + android.hardware.bluetooth.audio.AudioContext audioContext; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.BroadcastQuality quality; + int bisNumPerSubgroup; + } + @VintfStability + parcelable LeAudioBroadcastConfigurationRequirement { + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastSubgroupConfigurationRequirement[] subgroupConfigurationRequirements; + } + @VintfStability + parcelable LeAudioSubgroupBisConfiguration { + int numBis; + android.hardware.bluetooth.audio.LeAudioBisConfiguration bisConfiguration; + } + @VintfStability + parcelable LeAudioBroadcastSubgroupConfiguration { + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioSubgroupBisConfiguration[] bisConfigurations; + @nullable byte[] vendorCodecConfiguration; + } + @VintfStability + parcelable LeAudioBroadcastConfigurationSetting { + int sduIntervalUs; + int numBis; + int maxSduOctets; + int maxTransportLatencyMs; + int retransmitionNum; + android.hardware.bluetooth.audio.Phy[] phy; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.Packing packing; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.Framing framing; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration dataPathConfiguration; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastSubgroupConfiguration[] subgroupsConfigurations; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProviderFactory.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProviderFactory.aidl new file mode 100644 index 0000000000000000000000000000000000000000..edb79a3da09d277e22ece1d3e9dc335736dbfe02 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/IBluetoothAudioProviderFactory.aidl @@ -0,0 +1,46 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +interface IBluetoothAudioProviderFactory { + android.hardware.bluetooth.audio.AudioCapabilities[] getProviderCapabilities(in android.hardware.bluetooth.audio.SessionType sessionType); + android.hardware.bluetooth.audio.IBluetoothAudioProvider openProvider(in android.hardware.bluetooth.audio.SessionType sessionType); + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProviderFactory.ProviderInfo getProviderInfo(in android.hardware.bluetooth.audio.SessionType sessionType); + @VintfStability + parcelable ProviderInfo { + String name; + android.hardware.bluetooth.audio.CodecInfo[] codecInfos; + boolean supportsMultidirectionalCapabilities; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LatencyMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LatencyMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1140f9e90b8273a12fb1c3ba64bd4c1d77373875 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LatencyMode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="int") @VintfStability +enum LatencyMode { + UNKNOWN, + LOW_LATENCY, + FREE, + DYNAMIC_SPATIAL_AUDIO_SOFTWARE, + DYNAMIC_SPATIAL_AUDIO_HARDWARE, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Capabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Capabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cc4449aea9459580d3bdf77a28d0ae456964f61a --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Capabilities.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable Lc3Capabilities { + byte[] pcmBitDepth; + int[] samplingFrequencyHz; + int[] frameDurationUs; + int[] octetsPerFrame; + byte[] blocksPerSdu; + android.hardware.bluetooth.audio.ChannelMode[] channelMode; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Configuration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Configuration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7e8dccff5f924399742a3020777e4d0dc7459a90 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Lc3Configuration.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable Lc3Configuration { + byte pcmBitDepth; + int samplingFrequencyHz; + int frameDurationUs; + int octetsPerFrame; + byte blocksPerSdu; + android.hardware.bluetooth.audio.ChannelMode channelMode; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..aa4e4c8793c9b747725dfce84bad451bc0e5161c --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacCapabilities.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LdacCapabilities { + int[] sampleRateHz; + android.hardware.bluetooth.audio.LdacChannelMode[] channelMode; + android.hardware.bluetooth.audio.LdacQualityIndex[] qualityIndex; + byte[] bitsPerSample; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacChannelMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacChannelMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3d80c4b127828e1797e99d4157db0b59aff6a46b --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacChannelMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum LdacChannelMode { + UNKNOWN, + STEREO, + DUAL, + MONO, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8a3763800b699ac80ff2b0d334604a544bef2c78 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacConfiguration.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LdacConfiguration { + int sampleRateHz; + android.hardware.bluetooth.audio.LdacChannelMode channelMode; + android.hardware.bluetooth.audio.LdacQualityIndex qualityIndex; + byte bitsPerSample; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacQualityIndex.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacQualityIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a332dc510355cf363aed35422f488f21d7a382e8 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LdacQualityIndex.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum LdacQualityIndex { + HIGH, + MID, + LOW, + ABR, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioAseConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioAseConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bffc88b35288eaab8d18fa136f25d2048b259ec5 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioAseConfiguration.aidl @@ -0,0 +1,50 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LeAudioAseConfiguration { + android.hardware.bluetooth.audio.LeAudioAseConfiguration.TargetLatency targetLatency; + android.hardware.bluetooth.audio.Phy targetPhy; + @nullable android.hardware.bluetooth.audio.CodecId codecId; + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv[] codecConfiguration; + @nullable byte[] vendorCodecConfiguration; + @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata; + @Backing(type="byte") @VintfStability + enum TargetLatency { + UNDEFINED = 0x00, + LOWER = 0x01, + BALANCED_LATENCY_RELIABILITY = 0x02, + HIGHER_RELIABILITY = 0x03, + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBisConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBisConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b09d34fec249caef555c66466a49a7b1a701f81e --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBisConfiguration.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LeAudioBisConfiguration { + android.hardware.bluetooth.audio.CodecId codecId; + android.hardware.bluetooth.audio.CodecSpecificConfigurationLtv[] codecConfiguration; + byte[] vendorCodecConfiguration; + @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBroadcastConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBroadcastConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..efd3b02818f9654938ea99820a924d5b10807dda --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioBroadcastConfiguration.aidl @@ -0,0 +1,48 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LeAudioBroadcastConfiguration { + android.hardware.bluetooth.audio.CodecType codecType; + android.hardware.bluetooth.audio.LeAudioBroadcastConfiguration.BroadcastStreamMap[] streamMap; + @VintfStability + parcelable BroadcastStreamMap { + char streamHandle; + int audioChannelAllocation; + android.hardware.bluetooth.audio.LeAudioCodecConfiguration leAudioCodecConfig; + char pcmStreamId; + @nullable android.hardware.bluetooth.audio.LeAudioBisConfiguration bisConfiguration; + @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecCapabilitiesSetting.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecCapabilitiesSetting.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9818d543ac5cc023786b02e851e8724165c3fd47 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecCapabilitiesSetting.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LeAudioCodecCapabilitiesSetting { + android.hardware.bluetooth.audio.UnicastCapability unicastEncodeCapability; + android.hardware.bluetooth.audio.UnicastCapability unicastDecodeCapability; + android.hardware.bluetooth.audio.BroadcastCapability broadcastCapability; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..031ee679ac097d419f26a75de8e9c3f8174d6e01 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioCodecConfiguration.aidl @@ -0,0 +1,44 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union LeAudioCodecConfiguration { + android.hardware.bluetooth.audio.Lc3Configuration lc3Config; + android.hardware.bluetooth.audio.LeAudioCodecConfiguration.VendorConfiguration vendorConfig; + android.hardware.bluetooth.audio.AptxAdaptiveLeConfiguration aptxAdaptiveLeConfig; + @VintfStability + parcelable VendorConfiguration { + ParcelableHolder extension; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..25a9797daf1fe9e3b57aff3eaca46a480d601de6 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/LeAudioConfiguration.aidl @@ -0,0 +1,59 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable LeAudioConfiguration { + android.hardware.bluetooth.audio.CodecType codecType; + android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap[] streamMap; + int peerDelayUs; + android.hardware.bluetooth.audio.LeAudioCodecConfiguration leAudioCodecConfig; + @nullable byte[] vendorSpecificMetadata; + @VintfStability + parcelable StreamMap { + char streamHandle; + int audioChannelAllocation; + boolean isStreamActive; + @nullable android.hardware.bluetooth.audio.LeAudioAseConfiguration aseConfiguration; + @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; + @nullable android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap.BluetoothDeviceAddress bluetoothDeviceAddress; + parcelable BluetoothDeviceAddress { + byte[6] deviceAddress; + android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap.BluetoothDeviceAddress.DeviceAddressType deviceAddressType; + enum DeviceAddressType { + BLE_ADDRESS_PUBLIC = 0x00, + BLE_ADDRESS_RANDOM = 0x01, + } + } + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/MetadataLtv.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/MetadataLtv.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5e8a2ae25d702602c2220520394e2a38118cb756 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/MetadataLtv.aidl @@ -0,0 +1,50 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +union MetadataLtv { + android.hardware.bluetooth.audio.MetadataLtv.PreferredAudioContexts preferredAudioContexts; + android.hardware.bluetooth.audio.MetadataLtv.StreamingAudioContexts streamingAudioContexts; + android.hardware.bluetooth.audio.MetadataLtv.VendorSpecific vendorSpecific; + parcelable PreferredAudioContexts { + android.hardware.bluetooth.audio.AudioContext values; + } + parcelable StreamingAudioContexts { + android.hardware.bluetooth.audio.AudioContext values; + } + parcelable VendorSpecific { + int companyId; + byte[] opaqueValue; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2c04b0f3bb19741af629aa86fb6808d285f572d7 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusCapabilities.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable OpusCapabilities { + byte[] pcmBitDepth; + int[] samplingFrequencyHz; + int[] frameDurationUs; + int[] octetsPerFrame; + byte[] blocksPerSdu; + android.hardware.bluetooth.audio.ChannelMode[] channelMode; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..811d32a7eaeef8ffcda2eb681441332a2035eb02 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/OpusConfiguration.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable OpusConfiguration { + byte pcmBitDepth; + int samplingFrequencyHz; + int frameDurationUs; + int octetsPerFrame; + byte blocksPerSdu; + android.hardware.bluetooth.audio.ChannelMode channelMode; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0c2f87d5999e9f0cde8b5a75f43d7862f6b992ba --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmCapabilities.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable PcmCapabilities { + int[] sampleRateHz; + android.hardware.bluetooth.audio.ChannelMode[] channelMode; + byte[] bitsPerSample; + int[] dataIntervalUs; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..93d7805a336cdc651dc1f3db0fdcaf97579a4631 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PcmConfiguration.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable PcmConfiguration { + int sampleRateHz; + android.hardware.bluetooth.audio.ChannelMode channelMode; + byte bitsPerSample; + int dataIntervalUs; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Phy.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Phy.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bfeabcd5a5d499756e044102cdf9b76f4034bf32 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/Phy.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum Phy { + UNDEFINED = 0x00, + ONE_M = 0x01, + TWO_M = 0x02, + CODED = 0x03, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PresentationPosition.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PresentationPosition.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7e997e8c8f7f0432cf2c1a819152e734f57cd2cf --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/PresentationPosition.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable PresentationPosition { + long remoteDeviceAudioDelayNanos; + long transmittedOctets; + android.hardware.bluetooth.audio.PresentationPosition.TimeSpec transmittedOctetsTimestamp; + @VintfStability + parcelable TimeSpec { + long tvSec; + long tvNSec; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcAllocMethod.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcAllocMethod.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9cf65d57ece05f417e34bd9cdb397bf0d1584d42 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcAllocMethod.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum SbcAllocMethod { + ALLOC_MD_S, + ALLOC_MD_L, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcCapabilities.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c8d7e7e74ed197889ee2aef050d2eb8367c2719d --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcCapabilities.aidl @@ -0,0 +1,45 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable SbcCapabilities { + int[] sampleRateHz; + android.hardware.bluetooth.audio.SbcChannelMode[] channelMode; + byte[] blockLength; + byte[] numSubbands; + android.hardware.bluetooth.audio.SbcAllocMethod[] allocMethod; + byte[] bitsPerSample; + int minBitpool; + int maxBitpool; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcChannelMode.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcChannelMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7779aa052f41b086ca0a548484e181f2de6f52c4 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcChannelMode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum SbcChannelMode { + UNKNOWN, + JOINT_STEREO, + STEREO, + DUAL, + MONO, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcConfiguration.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8eab9c3d96f7842905a7c21796732265b73157f4 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SbcConfiguration.aidl @@ -0,0 +1,45 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable SbcConfiguration { + int sampleRateHz; + android.hardware.bluetooth.audio.SbcChannelMode channelMode; + byte blockLength; + byte numSubbands; + android.hardware.bluetooth.audio.SbcAllocMethod allocMethod; + byte bitsPerSample; + int minBitpool; + int maxBitpool; +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SessionType.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SessionType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..71cca5364fcc8cf37c0553e366cd41bc34a678a2 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/SessionType.aidl @@ -0,0 +1,52 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@Backing(type="byte") @VintfStability +enum SessionType { + UNKNOWN, + A2DP_SOFTWARE_ENCODING_DATAPATH, + A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH, + HEARING_AID_SOFTWARE_ENCODING_DATAPATH, + LE_AUDIO_SOFTWARE_ENCODING_DATAPATH, + LE_AUDIO_SOFTWARE_DECODING_DATAPATH, + LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH, + LE_AUDIO_HARDWARE_OFFLOAD_DECODING_DATAPATH, + LE_AUDIO_BROADCAST_SOFTWARE_ENCODING_DATAPATH, + LE_AUDIO_BROADCAST_HARDWARE_OFFLOAD_ENCODING_DATAPATH, + A2DP_SOFTWARE_DECODING_DATAPATH, + A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH, + HFP_SOFTWARE_ENCODING_DATAPATH, + HFP_SOFTWARE_DECODING_DATAPATH, + HFP_HARDWARE_OFFLOAD_DATAPATH, +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/UnicastCapability.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/UnicastCapability.aidl new file mode 100644 index 0000000000000000000000000000000000000000..894a2f314878b56cd8a9f7cc1fa42a3f355ea110 --- /dev/null +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/4/android/hardware/bluetooth/audio/UnicastCapability.aidl @@ -0,0 +1,52 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.audio; +@VintfStability +parcelable UnicastCapability { + android.hardware.bluetooth.audio.CodecType codecType; + android.hardware.bluetooth.audio.AudioLocation supportedChannel; + int deviceCount; + int channelCountPerDevice; + android.hardware.bluetooth.audio.UnicastCapability.LeAudioCodecCapabilities leAudioCodecCapabilities; + @VintfStability + parcelable VendorCapabilities { + ParcelableHolder extension; + } + @VintfStability + union LeAudioCodecCapabilities { + android.hardware.bluetooth.audio.Lc3Capabilities lc3Capabilities; + android.hardware.bluetooth.audio.UnicastCapability.VendorCapabilities vendorCapabillities; + android.hardware.bluetooth.audio.AptxAdaptiveLeCapabilities aptxAdaptiveLeCapabilities; + } +} diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecParameters.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecParameters.aidl index 60cf82a9e34ea0e7a6fe46554ca60f738413456c..ac63c289fd9d6d0d9dd6822606160bb2fc4b61ac 100644 --- a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecParameters.aidl +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecParameters.aidl @@ -39,7 +39,7 @@ parcelable CodecParameters { int bitdepth; int minBitrate; int maxBitrate; - boolean lowLatency; - boolean lossless; + boolean lowLatency = false; + boolean lossless = false; byte[] vendorSpecificParameters; } diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl index 1049d983fbbc807785e53395f8d0b15dd65e44ca..60c276b0dd4567a2c19ae3f7760376fb9612817a 100644 --- a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl @@ -74,8 +74,8 @@ union CodecSpecificCapabilitiesLtv { const int EIGHT = 0x80; } parcelable SupportedOctetsPerCodecFrame { - int minimum; - int maximum; + int min; + int max; } parcelable SupportedMaxCodecFramesPerSDU { int value; diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/ConfigurationFlags.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/ConfigurationFlags.aidl index baf0a4e9f6eafc90bcdab891d2f9e0bd24b22109..6b3cf723cf9f95b4a56064243e3700aab5ffcf98 100644 --- a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/ConfigurationFlags.aidl +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/ConfigurationFlags.aidl @@ -38,8 +38,8 @@ parcelable ConfigurationFlags { const int NONE = 0x0000; const int LOSSLESS = 0x0001; const int LOW_LATENCY = 0x0002; - const int ALLOW_ASYMMETRIC_CONFIGURATIONS = 0x0003; - const int SPATIAL_AUDIO = 0x0004; - const int PROVIDE_ASE_METADATA = 0x0005; - const int MONO_MIC_CONFIGURATION = 0x0006; + const int ALLOW_ASYMMETRIC_CONFIGURATIONS = 0x0004; + const int SPATIAL_AUDIO = 0x0008; + const int PROVIDE_ASE_METADATA = 0x0010; + const int MONO_MIC_CONFIGURATION = 0x0020; } diff --git a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl index f155634430f7b917368fd425a0cf905da79c5f1b..8d46c01bdabb1ed4f91d00eb0afbd696c5ca7f7d 100644 --- a/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl +++ b/bluetooth/audio/aidl/aidl_api/android.hardware.bluetooth.audio/current/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl @@ -41,15 +41,17 @@ interface IBluetoothAudioProvider { void updateAudioConfiguration(in android.hardware.bluetooth.audio.AudioConfiguration audioConfig); void setLowLatencyModeAllowed(in boolean allowed); android.hardware.bluetooth.audio.A2dpStatus parseA2dpConfiguration(in android.hardware.bluetooth.audio.CodecId codecId, in byte[] configuration, out android.hardware.bluetooth.audio.CodecParameters codecParameters); - @nullable android.hardware.bluetooth.audio.A2dpConfiguration getA2dpConfiguration(in List remoteA2dpCapabilities, in android.hardware.bluetooth.audio.A2dpConfigurationHint hint); + @nullable android.hardware.bluetooth.audio.A2dpConfiguration getA2dpConfiguration(in android.hardware.bluetooth.audio.A2dpRemoteCapabilities[] remoteA2dpCapabilities, in android.hardware.bluetooth.audio.A2dpConfigurationHint hint); void setCodecPriority(in android.hardware.bluetooth.audio.CodecId codecId, int priority); - List getLeAudioAseConfiguration(in @nullable List remoteSinkAudioCapabilities, in @nullable List remoteSourceAudioCapabilities, in List requirements); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting[] getLeAudioAseConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities[] remoteSinkAudioCapabilities, in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities[] remoteSourceAudioCapabilities, in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement[] requirements); android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationPair getLeAudioAseQosConfiguration(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement qosRequirement); - android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration(in android.hardware.bluetooth.audio.AudioContext context, in android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap[] streamMap); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.StreamConfig sinkConfig, in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.StreamConfig sourceConfig); void onSinkAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata); void onSourceAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata); - android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationSetting getLeAudioBroadcastConfiguration(in @nullable List remoteSinkAudioCapabilities, in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationRequirement requirement); - android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration getLeAudioBroadcastDatapathConfiguration(in android.hardware.bluetooth.audio.AudioContext context, in android.hardware.bluetooth.audio.LeAudioBroadcastConfiguration.BroadcastStreamMap[] streamMap); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationSetting getLeAudioBroadcastConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities[] remoteSinkAudioCapabilities, in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationRequirement requirement); + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration getLeAudioBroadcastDatapathConfiguration(in android.hardware.bluetooth.audio.AudioContext audioContext, in android.hardware.bluetooth.audio.LeAudioBroadcastConfiguration.BroadcastStreamMap[] streamMap); + const int CODEC_PRIORITY_DISABLED = (-1) /* -1 */; + const int CODEC_PRIORITY_NONE = 0; @VintfStability parcelable LeAudioDeviceCapabilities { android.hardware.bluetooth.audio.CodecId codecId; @@ -97,8 +99,8 @@ interface IBluetoothAudioProvider { parcelable LeAudioAseConfigurationSetting { android.hardware.bluetooth.audio.AudioContext audioContext; android.hardware.bluetooth.audio.IBluetoothAudioProvider.Packing packing; - @nullable List sinkAseConfiguration; - @nullable List sourceAseConfiguration; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting.AseDirectionConfiguration[] sinkAseConfiguration; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting.AseDirectionConfiguration[] sourceAseConfiguration; @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; @VintfStability parcelable AseDirectionConfiguration { @@ -110,8 +112,8 @@ interface IBluetoothAudioProvider { @VintfStability parcelable LeAudioConfigurationRequirement { android.hardware.bluetooth.audio.AudioContext audioContext; - @nullable List sinkAseRequirement; - @nullable List sourceAseRequirement; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement.AseDirectionRequirement[] sinkAseRequirement; + @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement.AseDirectionRequirement[] sourceAseRequirement; @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; @VintfStability parcelable AseDirectionRequirement { @@ -120,7 +122,7 @@ interface IBluetoothAudioProvider { } @VintfStability parcelable LeAudioAseQosConfigurationRequirement { - android.hardware.bluetooth.audio.AudioContext contextType; + android.hardware.bluetooth.audio.AudioContext audioContext; @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement.AseQosDirectionRequirement sinkAseQosRequirement; @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement.AseQosDirectionRequirement sourceAseQosRequirement; @nullable android.hardware.bluetooth.audio.ConfigurationFlags flags; @@ -146,6 +148,10 @@ interface IBluetoothAudioProvider { @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration inputConfig; @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration outputConfig; } + parcelable StreamConfig { + android.hardware.bluetooth.audio.AudioContext audioContext; + android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap[] streamMap; + } @Backing(type="byte") @VintfStability enum AseState { ENABLING = 0x00, @@ -159,13 +165,13 @@ interface IBluetoothAudioProvider { } @VintfStability parcelable LeAudioBroadcastSubgroupConfigurationRequirement { - android.hardware.bluetooth.audio.AudioContext context; + android.hardware.bluetooth.audio.AudioContext audioContext; android.hardware.bluetooth.audio.IBluetoothAudioProvider.BroadcastQuality quality; int bisNumPerSubgroup; } @VintfStability parcelable LeAudioBroadcastConfigurationRequirement { - List subgroupConfigurationRequirements; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastSubgroupConfigurationRequirement[] subgroupConfigurationRequirements; } @VintfStability parcelable LeAudioSubgroupBisConfiguration { @@ -174,7 +180,7 @@ interface IBluetoothAudioProvider { } @VintfStability parcelable LeAudioBroadcastSubgroupConfiguration { - List bisConfigurations; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioSubgroupBisConfiguration[] bisConfigurations; @nullable byte[] vendorCodecConfiguration; } @VintfStability @@ -188,6 +194,6 @@ interface IBluetoothAudioProvider { android.hardware.bluetooth.audio.IBluetoothAudioProvider.Packing packing; android.hardware.bluetooth.audio.IBluetoothAudioProvider.Framing framing; @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration dataPathConfiguration; - List subgroupsConfigurations; + android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastSubgroupConfiguration[] subgroupsConfigurations; } } diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpConfiguration.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpConfiguration.aidl index a7fd9ff014d741b262ae75bd82f7a2e7948bca67..db5212fd9bff3b600308f9d729e949df4403a5e5 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpConfiguration.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpConfiguration.aidl @@ -26,6 +26,7 @@ import android.hardware.bluetooth.audio.CodecParameters; parcelable A2dpConfiguration { /** * Remote Stream Endpoint Identifier + * This matches `A2dpRemoteCapabilities.seid` given by the framework. */ int remoteSeid; @@ -35,7 +36,7 @@ parcelable A2dpConfiguration { * `configuration`. Using `id.a2dp`, the format is given by the `Codec * Specific Information Elements` [A2DP - 4.3-6.2], and using `id.vendor`, * by `Vendor Specific Value` [A2DP - 4.7.2]. - * In any case, this byte array is limited by the framework to 128 Bytes. + * In any case, this byte array must be limited to 128 bytes. */ CodecId id; CodecParameters parameters; diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl index 87277f150d7f8ab1ab8d4830b8d616b00bb04304..224bb60922001a279e20d80badbb01f96c6e7a95 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpRemoteCapabilities.aidl @@ -25,6 +25,8 @@ import android.hardware.bluetooth.audio.CodecId; parcelable A2dpRemoteCapabilities { /** * Remote Stream Endpoint identifier + * Allocated by the remote device to identify a specific codec and capabilities, + * in the meaning of the AVDTP standard. */ int seid; diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl index 2a0c4d84ab00a6e2b84b316687f1e237b5ffcdda..b8521f477b148d5043d0616053b91d0794d6155a 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/A2dpStreamConfiguration.aidl @@ -21,7 +21,9 @@ import android.hardware.bluetooth.audio.CodecId; @VintfStability parcelable A2dpStreamConfiguration { /** - * Peer MTU (16 bits) + * Peer Maximum Transfer Unit (MTU), 16 bits value [Core - 3.A.5.1] + * It's the remote device indication of the maximum amount of data that + * can be received on the AVDTP Stream Channel. */ int peerMtu; @@ -29,6 +31,7 @@ parcelable A2dpStreamConfiguration { * Optional SCMS-T Content Protection header * that precedes audio content when enabled [A2DP - 3.2.1-2]. * The content protection byte is defined by [Assigned Number - 6.3.2]. + * When the content protection is not enabled, this field should be left `null`. */ @nullable byte[1] cpHeaderScmst; diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecId.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecId.aidl index 896a712fcd42812423c0e03cfe879565d488a915..22439574d5a2a4d4f2ef7f6e4f7663eca11fc0e6 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecId.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecId.aidl @@ -32,7 +32,7 @@ union CodecId { /** * Vendor Codec: - * id 16 bits - Assigned by BT Sig + * id 16 bits - Vendor identifier, assigned by BT Sig [Assigned Numbers - 7.1] * codecId 16 bits - Assigned by the vendor */ parcelable Vendor { diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecInfo.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecInfo.aidl index 33f0c043078fe51180a6e8012e7345173318d4a8..b60d70f3c8de2fabb2d42b20c9aed47559dc6284 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecInfo.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecInfo.aidl @@ -26,9 +26,12 @@ import android.hardware.bluetooth.audio.ConfigurationFlags; @VintfStability parcelable CodecInfo { /** - * Codec identifier and human readable name + * Codec identifier */ CodecId id; + /** + * Human readable name used to present codec to the user and for debug logs + */ String name; /** @@ -92,17 +95,18 @@ parcelable CodecInfo { */ parcelable LeAudio { /** - * Channel configuration: Mono, Dual-Mono or Stereo + * List of independently supported channel modes: Mono, Dual-Mono, or + * Stereo. */ ChannelMode[] channelMode; /** - * Supported sampling frequencies, in Hz. + * List of supported sampling frequencies, in Hz. */ int[] samplingFrequencyHz; - /* - * FrameDuration in microseconds. + /** + * List of supported FrameDurations in microseconds. */ int[] frameDurationUs; diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecParameters.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecParameters.aidl index b6f8a94b4a2f2627f0115f9cafdf52cd4beb7017..37f89423d296f79717812e7f81b5f597c7001ed3 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecParameters.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecParameters.aidl @@ -35,24 +35,29 @@ parcelable CodecParameters { int bitdepth; /** - * Encoding parameters: - * - * - Bitrate limits on a frame basis, defined in bits per second. - * The encoder bitrate mode can be encoded following this rule: - * . minBitrate equals to maxBitrate for constant bitrate - * . minBitrate set to 0, for VBR with peak bitrate at maxBitratre value. - * . minBitrate greater than 0, for ABR, the bitrate of the stream varies - * between minBitrate to maxBitrate according to link quality. - * The 0 value for both means "undefined" or "don't care". - * - * - Low-latency configuration privileged - * - Lossless effort indication. The 'False' value can be used as "don't care" + * Bitrate limits on a frame basis, defined in bits per second. + * The encoder bitrate mode can be encoded following this rule: + * . minBitrate equals to maxBitrate for constant bitrate + * . minBitrate set to 0, for VBR with peak bitrate at maxBitratre value. + * . minBitrate greater than 0, for ABR, the bitrate of the stream varies + * between minBitrate to maxBitrate according to link quality. + * The 0 value for both means "undefined" or "don't care". */ int minBitrate; int maxBitrate; - boolean lowLatency; - boolean lossless; + /** + * Low-latency configuration. The interpretation is vendor specific. + * When returned to the client, the assessment of the low latency configuration is left + * to the vendor's discretion. When set by the client, it indicates that we are entering + * a low-latency context (e.g. gaming), and such a configuration should be privileged. + */ + boolean lowLatency = false; + + /** + * Lossless effort indication. The 'False' value can be used as "don't care" + */ + boolean lossless = false; /** * Vendor specific parameters, inserted in the Vendor Specific HCI Command diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl index ceb90baf51cf95d58ff0b7b95888d1152ba49e57..fa302e3918a5250eb06bd5ab757c4e41156794fd 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/CodecSpecificCapabilitiesLtv.aidl @@ -23,6 +23,9 @@ package android.hardware.bluetooth.audio; */ @VintfStability union CodecSpecificCapabilitiesLtv { + /** + * Supported sampling frequencies in Hertz + */ parcelable SupportedSamplingFrequencies { const int HZ8000 = 0x0001; const int HZ11025 = 0x0002; @@ -41,10 +44,13 @@ union CodecSpecificCapabilitiesLtv { /* 16 bits wide bit mask */ int bitmask; } + /** + * Supported frame durations in microseconds + */ parcelable SupportedFrameDurations { const int US7500 = 0x01; const int US10000 = 0x02; - // Bits 2-3 are RFU + /* Bits 2-3 are RFU */ const int US7500PREFERRED = 0x10; const int US10000PREFERRED = 0x20; @@ -65,8 +71,8 @@ union CodecSpecificCapabilitiesLtv { int bitmask; } parcelable SupportedOctetsPerCodecFrame { - int minimum; - int maximum; + int min; + int max; } parcelable SupportedMaxCodecFramesPerSDU { int value; diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/ConfigurationFlags.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/ConfigurationFlags.aidl index 57c8be5b002df4539fca11193dd921c09ad81ac0..a12af4958c3d75f41e38b3143ca41e3cfd6f496b 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/ConfigurationFlags.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/ConfigurationFlags.aidl @@ -22,33 +22,33 @@ package android.hardware.bluetooth.audio; @VintfStability parcelable ConfigurationFlags { const int NONE = 0x0000; - /* + /** * Set for the lossless configurations */ const int LOSSLESS = 0x0001; - /* + /** * Set for the low latency configurations */ const int LOW_LATENCY = 0x0002; - /* + /** * When set, asymmetric configuration for SINK and SOURCE can be used. * e.g. in GAMING mode stream for 32kHz and back channel for 16 kHz */ - const int ALLOW_ASYMMETRIC_CONFIGURATIONS = 0x0003; - /* + const int ALLOW_ASYMMETRIC_CONFIGURATIONS = 0x0004; + /** * Set for the spatial audio configurations */ - const int SPATIAL_AUDIO = 0x0004; - /* + const int SPATIAL_AUDIO = 0x0008; + /** * When set, BluetoothAudioProvider requests to receive ASE metadata. * In such case onSinkAseMetadataChanged() and onSourceAseMetadataChanged * will be called. */ - const int PROVIDE_ASE_METADATA = 0x0005; - /* + const int PROVIDE_ASE_METADATA = 0x0010; + /** * Set for mono microphone configurations */ - const int MONO_MIC_CONFIGURATION = 0x0006; + const int MONO_MIC_CONFIGURATION = 0x0020; int bitmask; } diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl index 2e16f4e33f2591346636d74f0b06e4a40e62a761..33af8a49d967278c6582944b0b30af3dfcef3cc3 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/IBluetoothAudioProvider.aidl @@ -133,17 +133,34 @@ interface IBluetoothAudioProvider { * when no suitable configuration has been found. */ @nullable A2dpConfiguration getA2dpConfiguration( - in List remoteA2dpCapabilities, in A2dpConfigurationHint hint); + in A2dpRemoteCapabilities[] remoteA2dpCapabilities, in A2dpConfigurationHint hint); + + /** + * Predefined values for the codec priority, used by `setCodecPriority()`. + * Besides these special values, the codec priority can be set to 1 for + * the highest possible priority, or to any other 4 bytes wide integer N, + * where N has the higher priority than N + 1. + */ + const int CODEC_PRIORITY_DISABLED = -1; + const int CODEC_PRIORITY_NONE = 0; /** * Set specific codec priority * * It should be assumed that the external module will start with all its - * integrated codecs priority 0 by default. + * integrated codecs priority set to `CODEC_PRIORITY_NONE` by default. + * + * Note: If the BT stack sets a particular codec priority to + * CODEC_PRIORITY_DISABLED, the configuration provider shal not return + * a particular codec when asked for the configuration. Other priority + * levels and the prioritization mechanism details are not specified + * and the vendor can implement them as desired. * * @param codecId: codecId - * @param priority: 0 for no priority, -1 for codec disabled, - * from 1 to N, where 1 is highest. + * @param priority: `CODEC_PRIORITY_NONE` for no priority, + * `CODEC_PRIORITY_DISABLED` for the disabled codec, or priority + * level from 1 to N, where the priority of N + 1 is lower than N, + * and N equal to 1 is the highest possible codec priority. */ void setCodecPriority(in CodecId codecId, int priority); @@ -240,7 +257,8 @@ interface IBluetoothAudioProvider { IsoDataPathConfiguration isoDataPathConfiguration; } - /* All the LeAudioAseQosConfiguration parameters are defined by the + /** + * All the LeAudioAseQosConfiguration parameters are defined by the * Bluetooth Audio Stream Control Service specification v.1.0, Sec. 5: "ASE * Control Operations". */ @@ -330,11 +348,11 @@ interface IBluetoothAudioProvider { /** * Sink ASEs configuration */ - @nullable List sinkAseConfiguration; + @nullable AseDirectionConfiguration[] sinkAseConfiguration; /** * Source ASEs configuration */ - @nullable List sourceAseConfiguration; + @nullable AseDirectionConfiguration[] sourceAseConfiguration; /** * Additional flags, used for configurations with special features */ @@ -371,11 +389,11 @@ interface IBluetoothAudioProvider { /** * Sink ASEs configuration setting */ - @nullable List sinkAseRequirement; + @nullable AseDirectionRequirement[] sinkAseRequirement; /** * Source ASEs configuration setting */ - @nullable List sourceAseRequirement; + @nullable AseDirectionRequirement[] sourceAseRequirement; /** * Additional flags, used to request configurations with special * features @@ -395,25 +413,57 @@ interface IBluetoothAudioProvider { * BluetoothStack expects to get configuration list for SINK and SOURCE * on either _ENCODING or _DECODING session. * - * @param remoteSinkAudioCapabilities List of remote sink capabilities + * Note: When the requirements are not met, either for one or both + * directions, the corresponding returned AseDirectionConfiguration + * can be set to null. Otherwise it shall contain an ASE configuration + * array with the number of configurations equal to the number of ASEs + * which should be configured by the BT stack for this particular + * direction. + * The provider shall match all the requirements set by the Bluetooth + * stack or return a null configuration for the direction when these + * requirements are not met. In response, the BT Stack may decide to + * reduce the requirements to the minimum, which is the `audioContext` + * and the `LeAudioAseConfiguration.codecConfiguration` with the + * mandatory `CodecSpecificConfigurationLtv.SamplingFrequency` and + * `CodecSpecificConfigurationLtv.AudioChannelAllocation` fields set. + * When these minimum requirements are not met as well, the Bt stack + * may set either `sinkAseRequirement` or `sourceAseRequirement`, or + * both to null. In such case the provider has the freedom of + * providing a configuration for the null-ed direction requirements or + * not for the particular audio context. However returning neither of + * the direction configurations (both nulled) is considered as an + * invalid behavior. + * If the returned configurations are not complete (either + * `qosConfiguration` or `dataPathConfiguration` are null), the BT + * stack will ask for these dynamically during the stream + * establishment, using the corresponding + * `getLeAudioAseQosConfiguration()` and + * `getLeAudioAseDatapathConfiguration()` API calls. This behavior + * is not desired as it slows down the stream establishment, and + * should be implemented only if really needed (e.g. when the provider + * needs to monitor the remote device ASE states, using the + * `onSinkAseMetadataChanged()` and `onSourceAseMetadataChanged()` + * callbacks to derive the valid QoS and/or data path configuration). + * + * @param remoteSinkAudioCapabilities Array of remote sink capabilities * supported by an active group devices. - * @param remoteSourceAudioCapabilities List of remote source capabilities + * @param remoteSourceAudioCapabilities Array of remote source capabilities * supported by an active group devices. * @param requirements ASE configuration requirements * - * @return List + * @return LeAudioAseConfigurationSetting[] */ - List getLeAudioAseConfiguration( - in @nullable List remoteSinkAudioCapabilities, - in @nullable List remoteSourceAudioCapabilities, - in List requirements); + LeAudioAseConfigurationSetting[] getLeAudioAseConfiguration( + in @nullable LeAudioDeviceCapabilities[] remoteSinkAudioCapabilities, + in @nullable LeAudioDeviceCapabilities[] remoteSourceAudioCapabilities, + in LeAudioConfigurationRequirement[] requirements); @VintfStability parcelable LeAudioAseQosConfigurationRequirement { /** * Audio Contect Type that this requirements apply to */ - AudioContext contextType; + AudioContext audioContext; /** * QoS preferences received in Codec Configured ASE state. As defined in @@ -501,6 +551,18 @@ interface IBluetoothAudioProvider { * parameters are not within the boundaries received from the remote device * after configuring the ASEs. * + * Note: When the requirements are not met, either for one or both + * directions, the corresponding configurations in the returned + * LeAudioAseQosConfigurationPair can be set to null. The minimum + * requirement can have only the `audioContext` field set and just a + * single (either sink or source) AseQosDirectionRequirement, where + * only the preferred parameter fields are not specified. The + * configuration provider should always be able to satisfy such + * requirement for all the audio contexts specified by Bluetooth SIG. + * The Bluetooth stack can reduce the requirements to the minimum, + * when more precisely specified requirements are not met by the + * configuration provider. + * * @param qosRequirement ASE QoS configurations requirements * * @return LeAudioAseQosConfigurationPair @@ -518,17 +580,52 @@ interface IBluetoothAudioProvider { @nullable LeAudioDataPathConfiguration outputConfig; } + /** + * Stream Configuration + */ + parcelable StreamConfig { + /** + * Streaming Audio Context. + * This can serve as a hint for selecting the proper configuration by + * the offloader. + */ + AudioContext audioContext; + /** + * Stream configuration, including connection handles and audio channel + * allocations. + */ + StreamMap[] streamMap; + } + /** * Used to get a data path configuration which dynamically depends on CIS * connection handles in StreamMap. This is used if non-dynamic data path * was not provided in LeAudioAseConfigurationSetting. Calling this during * the unicast audio stream establishment might slightly delay the stream * start. + * + * @param sinkConfig - remote sink device stream configuration + * @param sourceConfig - remote source device stream configuration + * + * Note: The provider shall provide a data path configuration for each + * of the non-null configurations passed to this function if these + * configurations are supported by the configuration provider. + * The Bluetooth stack can set either only sink or source + * configuration if it expects just a single direction data path + * configuration. Not providing a valid data path configuration for + * the stream configured with the codec parameters provided by the + * configuration provider will be considered an invalid behavior. + * The BT stack can pass asymmetric sink and source configurations + * if `ALLOW_ASYMMETRIC_CONFIGURATIONS` flag was set by the provider + * in the `CodecInfo` information for the particular codec. + * + * @return LeAudioDataPathConfigurationPair */ LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration( - in AudioContext context, in StreamMap[] streamMap); + in @nullable StreamConfig sinkConfig, + in @nullable StreamConfig sourceConfig); - /* + /** * Audio Stream Endpoint state used to report Metadata changes on the remote * device audio endpoints. */ @@ -541,14 +638,32 @@ interface IBluetoothAudioProvider { } /** - * Used to report metadata changes to the provider. This allows for a - * pseudo communication channel between the remote device and the provider, - * using the vendor specific metadata of the changing ASE state. - * It is used only when ASE is using configurations marked with the - * `PROVIDE_ASE_METADATA` flag. + * Used to report sink endpoint metadata changes to the provider. This + * allows for a pseudo communication channel between the remote device and + * the provider, using the vendor specific metadata of the changing ASE + * state. It is used only when Audio Stream Endpoint (ASE) is using + * configurations marked with the `PROVIDE_ASE_METADATA` flag. + * + * @param state - current Audio Stream Endpoint state of the remote device + * @param cigId - Coordinate Isochronous Group identifier + * @param cisId - Coordinate Isochronous Stream identifier + * @param metadata - remote sink device metadata for the given ASE */ void onSinkAseMetadataChanged( in AseState state, int cigId, int cisId, in @nullable MetadataLtv[] metadata); + + /** + * Used to report source endpoint metadata changes to the provider. This + * allows for a pseudo communication channel between the remote device and + * the provider, using the vendor specific metadata of the changing ASE + * state. It is used only when Audio Stream Endpoint (ASE) is using + * configurations marked with the `PROVIDE_ASE_METADATA` flag. + * + * @param state - current Audio Stream Endpoint state of the remote device + * @param cigId - Coordinate Isochronous Group identifier + * @param cisId - Coordinate Isochronous Stream identifier + * @param metadata - remote source device metadata for the given ASE + */ void onSourceAseMetadataChanged( in AseState state, int cigId, int cisId, in @nullable MetadataLtv[] metadata); @@ -572,7 +687,7 @@ interface IBluetoothAudioProvider { * This can serve as a hint for selecting the proper configuration by * the offloader. */ - AudioContext context; + AudioContext audioContext; /** * Streaming Broadcast Audio Quality */ @@ -591,7 +706,7 @@ interface IBluetoothAudioProvider { */ @VintfStability parcelable LeAudioBroadcastConfigurationRequirement { - List subgroupConfigurationRequirements; + LeAudioBroadcastSubgroupConfigurationRequirement[] subgroupConfigurationRequirements; } /** @@ -612,11 +727,10 @@ interface IBluetoothAudioProvider { /** * Subgroup configuration with a list of BIS configurations - * */ @VintfStability parcelable LeAudioBroadcastSubgroupConfiguration { - List bisConfigurations; + LeAudioSubgroupBisConfiguration[] bisConfigurations; /** * Vendor specific codec configuration for all the BISes inside this @@ -636,7 +750,6 @@ interface IBluetoothAudioProvider { * LeAudioBroadcastConfigurationSetting is a result of * getLeAudioBroadcastConfiguration. It is used in HCI_LE_Create_BIG command * and for creating the Broadcast Announcements. - * */ @VintfStability parcelable LeAudioBroadcastConfigurationSetting { @@ -682,18 +795,23 @@ interface IBluetoothAudioProvider { @nullable LeAudioDataPathConfiguration dataPathConfiguration; /** - * A list of subgroup configurations in the broadcast. + * An array of subgroup configurations in the broadcast. */ - List subgroupsConfigurations; + LeAudioBroadcastSubgroupConfiguration[] subgroupsConfigurations; } /** * Get Broadcast configuration. Output of this function will be used * in HCI_LE_Create_BIG (0x0068) command and also to create BIG INFO * + * @param remoteSinkAudioCapabilities - remote device sink endpoint + * capabilities + * @param requirement - requested configuration requirements + * + * @return the whole broadcast audio stream configuration */ LeAudioBroadcastConfigurationSetting getLeAudioBroadcastConfiguration( - in @nullable List remoteSinkAudioCapabilities, + in @nullable LeAudioDeviceCapabilities[] remoteSinkAudioCapabilities, in LeAudioBroadcastConfigurationRequirement requirement); /** @@ -702,7 +820,12 @@ interface IBluetoothAudioProvider { * not provided in LeAudioBroadcastConfigurationSetting. Calling this during * the broadcast audio stream establishment might slightly delay the stream * start. + * + * @param audioContext - audio stream context for the given stream map + * @param streamMap - channel map with BIS configurations + * + * @return broadcast audio stream data path configuration */ LeAudioDataPathConfiguration getLeAudioBroadcastDatapathConfiguration( - in AudioContext context, in BroadcastStreamMap[] streamMap); + in AudioContext audioContext, in BroadcastStreamMap[] streamMap); } diff --git a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/MetadataLtv.aidl b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/MetadataLtv.aidl index b0befc15b969c7e0543e02e0db1afb5f5e5e64ca..afe76cebeafa01123c7f7383ebebd474ce502ae2 100644 --- a/bluetooth/audio/aidl/android/hardware/bluetooth/audio/MetadataLtv.aidl +++ b/bluetooth/audio/aidl/android/hardware/bluetooth/audio/MetadataLtv.aidl @@ -30,8 +30,9 @@ union MetadataLtv { parcelable StreamingAudioContexts { AudioContext values; } - /* This is an opaque container for passing metadata between the provider and - * the remote device. It must not be interpreted by the BT stack. + /** + * This is an opaque container for passing metadata between the provider and + * the remote device. It shall not be inspected by the BT stack. */ parcelable VendorSpecific { int companyId; diff --git a/bluetooth/audio/aidl/default/A2dpBits.h b/bluetooth/audio/aidl/default/A2dpBits.h index f467c9588f72a86708607eeca26d21a33d90c3bd..fb7587c707d19c3b182c2cb69e642f3717a21501 100644 --- a/bluetooth/audio/aidl/default/A2dpBits.h +++ b/bluetooth/audio/aidl/default/A2dpBits.h @@ -23,7 +23,8 @@ class A2dpBits { uint8_t* data_; public: - A2dpBits(const std::vector& vector) : cdata_(vector.data()) {} + A2dpBits(const std::vector& vector) + : cdata_(vector.data()), data_(nullptr) {} A2dpBits(std::vector& vector) : cdata_(vector.data()), data_(vector.data()) {} diff --git a/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.cpp b/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.cpp index ba7a89d8befa79de9bae7aca6bf2f7f247a88809..1eb6a6d610301b94abbe0cb4f008f360c943e71f 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.cpp +++ b/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.cpp @@ -23,7 +23,6 @@ #include #include "A2dpOffloadCodecAac.h" -#include "A2dpOffloadCodecFactory.h" #include "A2dpOffloadCodecSbc.h" namespace aidl { @@ -32,17 +31,21 @@ namespace hardware { namespace bluetooth { namespace audio { -A2dpOffloadEncodingAudioProvider::A2dpOffloadEncodingAudioProvider() - : A2dpOffloadAudioProvider() { +A2dpOffloadEncodingAudioProvider::A2dpOffloadEncodingAudioProvider( + const A2dpOffloadCodecFactory& codec_factory) + : A2dpOffloadAudioProvider(codec_factory) { session_type_ = SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH; } -A2dpOffloadDecodingAudioProvider::A2dpOffloadDecodingAudioProvider() - : A2dpOffloadAudioProvider() { +A2dpOffloadDecodingAudioProvider::A2dpOffloadDecodingAudioProvider( + const A2dpOffloadCodecFactory& codec_factory) + : A2dpOffloadAudioProvider(codec_factory) { session_type_ = SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH; } -A2dpOffloadAudioProvider::A2dpOffloadAudioProvider() {} +A2dpOffloadAudioProvider::A2dpOffloadAudioProvider( + const A2dpOffloadCodecFactory& codec_factory) + : codec_factory_(codec_factory) {} bool A2dpOffloadAudioProvider::isValid(const SessionType& session_type) { return (session_type == session_type_); @@ -56,17 +59,29 @@ ndk::ScopedAStatus A2dpOffloadAudioProvider::startSession( auto a2dp_config = audio_config.get(); A2dpStatus a2dp_status = A2dpStatus::NOT_SUPPORTED_CODEC_TYPE; - if (a2dp_config.codecId == - A2dpOffloadCodecSbc::GetInstance()->GetCodecId()) { + auto codec = codec_factory_.GetCodec(a2dp_config.codecId); + if (!codec) { + LOG(INFO) << __func__ << " - SessionType=" << toString(session_type_) + << " - CodecId=" << a2dp_config.codecId.toString() + << " is not found"; + return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); + } + + if (codec->info.id == CodecId(CodecId::A2dp::SBC)) { SbcParameters sbc_parameters; - a2dp_status = A2dpOffloadCodecSbc::GetInstance()->ParseConfiguration( - a2dp_config.configuration, &sbc_parameters); - } else if (a2dp_config.codecId == - A2dpOffloadCodecAac::GetInstance()->GetCodecId()) { + auto codec_sbc = + std::static_pointer_cast(codec); + a2dp_status = codec_sbc->ParseConfiguration(a2dp_config.configuration, + &sbc_parameters); + + } else if (codec->info.id == CodecId(CodecId::A2dp::AAC)) { AacParameters aac_parameters; - a2dp_status = A2dpOffloadCodecAac::GetInstance()->ParseConfiguration( - a2dp_config.configuration, &aac_parameters); + + auto codec_aac = + std::static_pointer_cast(codec); + a2dp_status = codec_aac->ParseConfiguration(a2dp_config.configuration, + &aac_parameters); } if (a2dp_status != A2dpStatus::OK) { LOG(WARNING) << __func__ << " - Invalid Audio Configuration=" @@ -105,7 +120,13 @@ ndk::ScopedAStatus A2dpOffloadAudioProvider::onSessionReady( ndk::ScopedAStatus A2dpOffloadAudioProvider::parseA2dpConfiguration( const CodecId& codec_id, const std::vector& configuration, CodecParameters* codec_parameters, A2dpStatus* _aidl_return) { - auto codec = A2dpOffloadCodecFactory::GetInstance()->GetCodec(codec_id); + if (!kEnableA2dpCodecExtensibility) { + // parseA2dpConfiguration must not be implemented if A2dp codec + // extensibility is not supported. + return ndk::ScopedAStatus::fromStatus(STATUS_UNKNOWN_TRANSACTION); + } + + auto codec = codec_factory_.GetCodec(codec_id); if (!codec) { LOG(INFO) << __func__ << " - SessionType=" << toString(session_type_) << " - CodecId=" << codec_id.toString() << " is not found"; @@ -121,11 +142,17 @@ ndk::ScopedAStatus A2dpOffloadAudioProvider::getA2dpConfiguration( const std::vector& remote_a2dp_capabilities, const A2dpConfigurationHint& hint, std::optional* _aidl_return) { + if (!kEnableA2dpCodecExtensibility) { + // getA2dpConfiguration must not be implemented if A2dp codec + // extensibility is not supported. + return ndk::ScopedAStatus::fromStatus(STATUS_UNKNOWN_TRANSACTION); + } + *_aidl_return = std::nullopt; A2dpConfiguration avdtp_configuration; - if (A2dpOffloadCodecFactory::GetInstance()->GetConfiguration( - remote_a2dp_capabilities, hint, &avdtp_configuration)) + if (codec_factory_.GetConfiguration(remote_a2dp_capabilities, hint, + &avdtp_configuration)) *_aidl_return = std::make_optional(std::move(avdtp_configuration)); diff --git a/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.h b/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.h index 7cc6deeada4c6fcfc10594a66825b54d225112fd..a2d03fe3f33cd01de8e84df4d773f00ed1fc5f21 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.h +++ b/bluetooth/audio/aidl/default/A2dpOffloadAudioProvider.h @@ -16,6 +16,7 @@ #pragma once +#include "A2dpOffloadCodecFactory.h" #include "BluetoothAudioProvider.h" namespace aidl { @@ -26,8 +27,6 @@ namespace audio { class A2dpOffloadAudioProvider : public BluetoothAudioProvider { public: - A2dpOffloadAudioProvider(); - bool isValid(const SessionType& session_type) override; ndk::ScopedAStatus startSession( @@ -45,18 +44,23 @@ class A2dpOffloadAudioProvider : public BluetoothAudioProvider { const A2dpConfigurationHint& hint, std::optional* _aidl_return) override; + protected: + A2dpOffloadAudioProvider(const A2dpOffloadCodecFactory&); + private: + const A2dpOffloadCodecFactory& codec_factory_; + ndk::ScopedAStatus onSessionReady(DataMQDesc* _aidl_return) override; }; class A2dpOffloadEncodingAudioProvider : public A2dpOffloadAudioProvider { public: - A2dpOffloadEncodingAudioProvider(); + A2dpOffloadEncodingAudioProvider(const A2dpOffloadCodecFactory&); }; class A2dpOffloadDecodingAudioProvider : public A2dpOffloadAudioProvider { public: - A2dpOffloadDecodingAudioProvider(); + A2dpOffloadDecodingAudioProvider(const A2dpOffloadCodecFactory&); }; } // namespace audio diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodec.h b/bluetooth/audio/aidl/default/A2dpOffloadCodec.h index 7ed58723460237cb9dbe21792ad488f11e4e2a9d..2f51c73857095e2dac80ac0eda21115e55171cb4 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodec.h +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodec.h @@ -18,10 +18,9 @@ #include #include +#include #include -#include "BluetoothAudioProviderFactory.h" - namespace aidl::android::hardware::bluetooth::audio { class A2dpOffloadCodec { diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.cpp b/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.cpp index 0f5533a4d9de44b914ed0f11047ab716f2ea2fd1..1570cd8e4f85101256c5312dc747782137a50bbe 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.cpp +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.cpp @@ -194,11 +194,6 @@ static ChannelMode GetChannelModeEnum(int channel_mode) { * AAC Class implementation */ -const A2dpOffloadCodecAac* A2dpOffloadCodecAac::GetInstance() { - static A2dpOffloadCodecAac instance; - return &instance; -} - A2dpOffloadCodecAac::A2dpOffloadCodecAac() : A2dpOffloadCodec(info_), info_({.id = CodecId(CodecId::A2dp::AAC), .name = "AAC"}) { diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.h b/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.h index eefa89b5219a5fd653471144b1fb44e536f9a21c..65e927d7f57ecbf11682b0d5014813d8b546e0cd 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.h +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodecAac.h @@ -29,14 +29,12 @@ struct AacParameters : public CodecParameters { class A2dpOffloadCodecAac : public A2dpOffloadCodec { CodecInfo info_; - A2dpOffloadCodecAac(); - A2dpStatus ParseConfiguration(const std::vector& configuration, CodecParameters* codec_parameters, AacParameters* aac_parameters) const; public: - static const A2dpOffloadCodecAac* GetInstance(); + A2dpOffloadCodecAac(); A2dpStatus ParseConfiguration( const std::vector& configuration, diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.cpp b/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.cpp index 73d8fb178f1001287e156b0ac5ff09edc4cea959..658073c48f7735d97ba7cb7610e07e7566a700b2 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.cpp +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.cpp @@ -37,20 +37,18 @@ enum : bool { * Class implementation */ -const A2dpOffloadCodecFactory* A2dpOffloadCodecFactory::GetInstance() { - static A2dpOffloadCodecFactory instance; - return &instance; -} - A2dpOffloadCodecFactory::A2dpOffloadCodecFactory() : name("Offload"), codecs(ranked_codecs_) { ranked_codecs_.reserve(kEnableAac + kEnableSbc); - if (kEnableAac) ranked_codecs_.push_back(A2dpOffloadCodecAac::GetInstance()); - if (kEnableSbc) ranked_codecs_.push_back(A2dpOffloadCodecSbc::GetInstance()); + if (kEnableAac) + ranked_codecs_.push_back(std::make_shared()); + if (kEnableSbc) + ranked_codecs_.push_back(std::make_shared()); } -const A2dpOffloadCodec* A2dpOffloadCodecFactory::GetCodec(CodecId id) const { +std::shared_ptr A2dpOffloadCodecFactory::GetCodec( + CodecId id) const { auto codec = std::find_if(begin(ranked_codecs_), end(ranked_codecs_), [&](auto c) { return id == c->info.id; }); diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.h b/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.h index 3fb5b1dc64f596d19156b57c49fdbf4a7b7af322..1546cc4c8a90cfdbbb8134838ba273ca3e06c1aa 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.h +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodecFactory.h @@ -16,22 +16,26 @@ #pragma once +#include +#include +#include + +#include + #include "A2dpOffloadCodec.h" namespace aidl::android::hardware::bluetooth::audio { class A2dpOffloadCodecFactory { - std::vector ranked_codecs_; - - A2dpOffloadCodecFactory(); + std::vector> ranked_codecs_; public: const std::string name; - const std::vector& codecs; + const std::vector>& codecs; - static const A2dpOffloadCodecFactory* GetInstance(); + A2dpOffloadCodecFactory(); - const A2dpOffloadCodec* GetCodec(CodecId id) const; + std::shared_ptr GetCodec(CodecId id) const; bool GetConfiguration(const std::vector&, const A2dpConfigurationHint& hint, diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.cpp b/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.cpp index 36d8f729eb3524869c1c81c094a14a8ff19e770a..6b9046c09b68f93186fd08355c6b0da5521e03c3 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.cpp +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.cpp @@ -257,11 +257,6 @@ static uint8_t GetBitpool(const A2dpBits& configuration, int bitrate) { * SBC Class implementation */ -const A2dpOffloadCodecSbc* A2dpOffloadCodecSbc::GetInstance() { - static A2dpOffloadCodecSbc instance; - return &instance; -} - A2dpOffloadCodecSbc::A2dpOffloadCodecSbc() : A2dpOffloadCodec(info_), info_({.id = CodecId(CodecId::A2dp::SBC), .name = "SBC"}) { diff --git a/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.h b/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.h index c380850cbb74983bd54f80d81ceb5e0b6b481bdf..a39d7793bf3460fb9b961dbf882f4e97bb213dbb 100644 --- a/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.h +++ b/bluetooth/audio/aidl/default/A2dpOffloadCodecSbc.h @@ -33,14 +33,12 @@ struct SbcParameters : public CodecParameters { class A2dpOffloadCodecSbc : public A2dpOffloadCodec { CodecInfo info_; - A2dpOffloadCodecSbc(); - A2dpStatus ParseConfiguration(const std::vector& configuration, CodecParameters* codec_parameters, SbcParameters* sbc_parameters) const; public: - static const A2dpOffloadCodecSbc* GetInstance(); + A2dpOffloadCodecSbc(); A2dpStatus ParseConfiguration( const std::vector& configuration, diff --git a/bluetooth/audio/aidl/default/BluetoothAudioProvider.cpp b/bluetooth/audio/aidl/default/BluetoothAudioProvider.cpp index bdba898a6a855cb734cddc0f447e4a53ff37a566..8d03faec0497dc65f72a37329e858e171fd6a8a3 100644 --- a/bluetooth/audio/aidl/default/BluetoothAudioProvider.cpp +++ b/bluetooth/audio/aidl/default/BluetoothAudioProvider.cpp @@ -229,14 +229,17 @@ ndk::ScopedAStatus BluetoothAudioProvider::getLeAudioAseQosConfiguration( }; ndk::ScopedAStatus BluetoothAudioProvider::getLeAudioAseDatapathConfiguration( - const ::aidl::android::hardware::bluetooth::audio::AudioContext& in_context, - const std::vector<::aidl::android::hardware::bluetooth::audio:: - LeAudioConfiguration::StreamMap>& in_streamMap, + const std::optional<::aidl::android::hardware::bluetooth::audio:: + IBluetoothAudioProvider::StreamConfig>& + in_sinkConfig, + const std::optional<::aidl::android::hardware::bluetooth::audio:: + IBluetoothAudioProvider::StreamConfig>& + in_sourceConfig, ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider:: LeAudioDataPathConfigurationPair* _aidl_return) { /* TODO: Implement */ - (void)in_context; - (void)in_streamMap; + (void)in_sinkConfig; + (void)in_sourceConfig; (void)_aidl_return; return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); } diff --git a/bluetooth/audio/aidl/default/BluetoothAudioProvider.h b/bluetooth/audio/aidl/default/BluetoothAudioProvider.h index 5064869ca357c52bedb977afc630c525fd7dea28..866eaebad67c502fd4bd5ca8f8a5229125c5155f 100644 --- a/bluetooth/audio/aidl/default/BluetoothAudioProvider.h +++ b/bluetooth/audio/aidl/default/BluetoothAudioProvider.h @@ -35,6 +35,23 @@ namespace hardware { namespace bluetooth { namespace audio { +/// Enable flag for the reference implementation for A2dp Codec +/// Extensibility. +/// +/// A2dp Codec extensibility cannot be enabled until the following +/// requirements are fulfilled. +/// +/// 1. The Bluetooth controller must support the HCI Requirements +/// v1.04 or later, and must support the vendor HCI command +/// A2DP Offload Start (v2), A2DP Offload Stop (v2) as indicated +/// by the field a2dp_offload_v2 of the vendor capabilities. +/// +/// 2. The implementation of the provider must be completed with +/// DSP configuration for streaming. +enum : bool { + kEnableA2dpCodecExtensibility = false, +}; + class BluetoothAudioProvider : public BnBluetoothAudioProvider { public: BluetoothAudioProvider(); @@ -71,10 +88,12 @@ class BluetoothAudioProvider : public BnBluetoothAudioProvider { ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider:: LeAudioAseQosConfigurationPair* _aidl_return) override; ndk::ScopedAStatus getLeAudioAseDatapathConfiguration( - const ::aidl::android::hardware::bluetooth::audio::AudioContext& - in_context, - const std::vector<::aidl::android::hardware::bluetooth::audio:: - LeAudioConfiguration::StreamMap>& in_streamMap, + const std::optional<::aidl::android::hardware::bluetooth::audio:: + IBluetoothAudioProvider::StreamConfig>& + in_sinkConfig, + const std::optional<::aidl::android::hardware::bluetooth::audio:: + IBluetoothAudioProvider::StreamConfig>& + in_sourceConfig, ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider:: LeAudioDataPathConfigurationPair* _aidl_return) override; ndk::ScopedAStatus onSinkAseMetadataChanged( diff --git a/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.cpp b/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.cpp index e55a43438cf83432173bd372078c644f17ae0e96..584640b232ffee5c1fa5262e54bce27c0a1e9691 100644 --- a/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.cpp +++ b/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.cpp @@ -22,7 +22,6 @@ #include #include "A2dpOffloadAudioProvider.h" -#include "A2dpOffloadCodecFactory.h" #include "A2dpSoftwareAudioProvider.h" #include "BluetoothAudioProvider.h" #include "HearingAidAudioProvider.h" @@ -53,7 +52,8 @@ ndk::ScopedAStatus BluetoothAudioProviderFactory::openProvider( provider = ndk::SharedRefBase::make(); break; case SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH: - provider = ndk::SharedRefBase::make(); + provider = ndk::SharedRefBase::make( + a2dp_offload_codec_factory_); break; case SessionType::HEARING_AID_SOFTWARE_ENCODING_DATAPATH: provider = ndk::SharedRefBase::make(); @@ -82,7 +82,8 @@ ndk::ScopedAStatus BluetoothAudioProviderFactory::openProvider( provider = ndk::SharedRefBase::make(); break; case SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH: - provider = ndk::SharedRefBase::make(); + provider = ndk::SharedRefBase::make( + a2dp_offload_codec_factory_); break; case SessionType::HFP_SOFTWARE_ENCODING_DATAPATH: provider = ndk::SharedRefBase::make(); @@ -158,10 +159,16 @@ ndk::ScopedAStatus BluetoothAudioProviderFactory::getProviderInfo( if (session_type == SessionType::A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH || session_type == SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH) { + if (!kEnableA2dpCodecExtensibility) { + // Implementing getProviderInfo equates supporting + // A2dp codec extensibility. + return ndk::ScopedAStatus::fromStatus(STATUS_UNKNOWN_TRANSACTION); + } + auto& provider_info = _aidl_return->emplace(); - provider_info.name = A2dpOffloadCodecFactory::GetInstance()->name; - for (auto codec : A2dpOffloadCodecFactory::GetInstance()->codecs) + provider_info.name = a2dp_offload_codec_factory_.name; + for (auto codec : a2dp_offload_codec_factory_.codecs) provider_info.codecInfos.push_back(codec->info); } diff --git a/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.h b/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.h index 1afae649410903777ab2c73430ed087d000eb356..6931884306e5b4e26f4a50f9e20525e79165f9a5 100644 --- a/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.h +++ b/bluetooth/audio/aidl/default/BluetoothAudioProviderFactory.h @@ -18,6 +18,8 @@ #include +#include "A2dpOffloadCodecFactory.h" + namespace aidl { namespace android { namespace hardware { @@ -25,6 +27,8 @@ namespace bluetooth { namespace audio { class BluetoothAudioProviderFactory : public BnBluetoothAudioProviderFactory { + const A2dpOffloadCodecFactory a2dp_offload_codec_factory_; + public: BluetoothAudioProviderFactory(); diff --git a/bluetooth/audio/aidl/default/LeAudioOffloadAudioProvider.cpp b/bluetooth/audio/aidl/default/LeAudioOffloadAudioProvider.cpp index cff3b2582c6fc51fb20a7f7ac32f8eeb3d34749e..a692d84f998b477fa36827a53809122d30d24c0e 100644 --- a/bluetooth/audio/aidl/default/LeAudioOffloadAudioProvider.cpp +++ b/bluetooth/audio/aidl/default/LeAudioOffloadAudioProvider.cpp @@ -157,8 +157,11 @@ ndk::ScopedAStatus LeAudioOffloadAudioProvider::setCodecPriority( bool LeAudioOffloadAudioProvider::isMatchedValidCodec(CodecId cfg_codec, CodecId req_codec) { auto priority = codec_priority_map_.find(cfg_codec); - if (priority != codec_priority_map_.end() && priority->second == -1) + if (priority != codec_priority_map_.end() && + priority->second == + LeAudioOffloadAudioProvider::CODEC_PRIORITY_DISABLED) { return false; + } return cfg_codec == req_codec; } @@ -222,8 +225,8 @@ bool LeAudioOffloadAudioProvider::isMatchedOctetsPerCodecFrame( CodecSpecificConfigurationLtv::OctetsPerCodecFrame& cfg_octets, CodecSpecificCapabilitiesLtv::SupportedOctetsPerCodecFrame& capability_octets) { - return cfg_octets.value >= capability_octets.minimum && - cfg_octets.value <= capability_octets.maximum; + return cfg_octets.value >= capability_octets.min && + cfg_octets.value <= capability_octets.max; } bool LeAudioOffloadAudioProvider::isCapabilitiesMatchedCodecConfiguration( @@ -568,7 +571,7 @@ ndk::ScopedAStatus LeAudioOffloadAudioProvider::getLeAudioAseQosConfiguration( for (auto& setting : ase_configuration_settings) { // Context matching - if (setting.audioContext != in_qosRequirement.contextType) continue; + if (setting.audioContext != in_qosRequirement.audioContext) continue; // Match configuration flags // Currently configuration flags are not populated, ignore. diff --git a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp index 88f2f97e28d6d3e16531e2764d678b774ba5cfcd..789e8a126862f45ac288ece2a52c6c6427068dec 100644 --- a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp +++ b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp @@ -120,6 +120,16 @@ static constexpr ChannelMode a2dp_channel_modes[] = { ChannelMode::UNKNOWN, ChannelMode::MONO, ChannelMode::STEREO}; static std::vector latency_modes = {LatencyMode::FREE}; +enum class BluetoothAudioHalVersion : int32_t { + VERSION_UNAVAILABLE = 0, + VERSION_2_0, + VERSION_2_1, + VERSION_AIDL_V1, + VERSION_AIDL_V2, + VERSION_AIDL_V3, + VERSION_AIDL_V4, +}; + // Some valid configs for HFP PCM configuration (software sessions) static constexpr int32_t hfp_sample_rates_[] = {8000, 16000, 32000}; static constexpr int8_t hfp_bits_per_samples_[] = {16}; @@ -221,7 +231,6 @@ class BluetoothAudioProviderFactoryAidl temp_provider_info_ = std::nullopt; auto aidl_reval = provider_factory_->getProviderInfo(session_type, &temp_provider_info_); - ASSERT_TRUE(aidl_reval.isOk()); } void GetProviderCapabilitiesHelper(const SessionType& session_type) { @@ -623,9 +632,38 @@ class BluetoothAudioProviderFactoryAidl SessionType::LE_AUDIO_BROADCAST_HARDWARE_OFFLOAD_ENCODING_DATAPATH, SessionType::A2DP_SOFTWARE_DECODING_DATAPATH, SessionType::A2DP_HARDWARE_OFFLOAD_DECODING_DATAPATH, + }; + + static constexpr SessionType kAndroidVSessionType[] = { SessionType::HFP_SOFTWARE_ENCODING_DATAPATH, SessionType::HFP_SOFTWARE_DECODING_DATAPATH, }; + + BluetoothAudioHalVersion GetProviderFactoryInterfaceVersion() { + int32_t aidl_version = 0; + if (provider_factory_ == nullptr) { + return BluetoothAudioHalVersion::VERSION_UNAVAILABLE; + } + + auto aidl_retval = provider_factory_->getInterfaceVersion(&aidl_version); + if (!aidl_retval.isOk()) { + return BluetoothAudioHalVersion::VERSION_UNAVAILABLE; + } + switch (aidl_version) { + case 1: + return BluetoothAudioHalVersion::VERSION_AIDL_V1; + case 2: + return BluetoothAudioHalVersion::VERSION_AIDL_V2; + case 3: + return BluetoothAudioHalVersion::VERSION_AIDL_V3; + case 4: + return BluetoothAudioHalVersion::VERSION_AIDL_V4; + default: + return BluetoothAudioHalVersion::VERSION_UNAVAILABLE; + } + + return BluetoothAudioHalVersion::VERSION_UNAVAILABLE; + } }; /** @@ -647,6 +685,15 @@ TEST_P(BluetoothAudioProviderFactoryAidl, EXPECT_TRUE(temp_provider_capabilities_.empty() || audio_provider_ != nullptr); } + if (GetProviderFactoryInterfaceVersion() >= + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + for (auto session_type : kAndroidVSessionType) { + GetProviderCapabilitiesHelper(session_type); + OpenProviderHelper(session_type); + EXPECT_TRUE(temp_provider_capabilities_.empty() || + audio_provider_ != nullptr); + } + } } /** @@ -736,8 +783,7 @@ TEST_P(BluetoothAudioProviderFactoryAidl, getProviderInfo_leAudioSessionTypes) { ASSERT_NE(codec_info.id.getTag(), CodecId::a2dp); // The codec info must contain the information // for le audio transport. - // ASSERT_EQ(codec_info.transport.getTag(), - // CodecInfo::Transport::le_audio); + ASSERT_EQ(codec_info.transport.getTag(), CodecInfo::Transport::leAudio); } } } @@ -1465,8 +1511,8 @@ TEST_P(BluetoothAudioProviderA2dpEncodingSoftwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_SOFTWARE_ENCODING_DATAPATH can be started and stopped with - * different PCM config + * SessionType::A2DP_SOFTWARE_ENCODING_DATAPATH can be started and stopped + * with different PCM config */ TEST_P(BluetoothAudioProviderA2dpEncodingSoftwareAidl, StartAndEndA2dpEncodingSoftwareSessionWithPossiblePcmConfig) { @@ -1503,6 +1549,10 @@ class BluetoothAudioProviderHfpSoftwareEncodingAidl public: virtual void SetUp() override { BluetoothAudioProviderFactoryAidl::SetUp(); + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } GetProviderCapabilitiesHelper(SessionType::HFP_SOFTWARE_ENCODING_DATAPATH); OpenProviderHelper(SessionType::HFP_SOFTWARE_ENCODING_DATAPATH); ASSERT_NE(audio_provider_, nullptr); @@ -1570,6 +1620,10 @@ class BluetoothAudioProviderHfpSoftwareDecodingAidl public: virtual void SetUp() override { BluetoothAudioProviderFactoryAidl::SetUp(); + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } GetProviderCapabilitiesHelper(SessionType::HFP_SOFTWARE_DECODING_DATAPATH); OpenProviderHelper(SessionType::HFP_SOFTWARE_DECODING_DATAPATH); ASSERT_NE(audio_provider_, nullptr); @@ -1658,13 +1712,13 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped with - * SBC hardware encoding config + * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped + * with SBC hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpSbcEncodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -1688,13 +1742,13 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped with - * AAC hardware encoding config + * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped + * with AAC hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpAacEncodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -1718,13 +1772,13 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped with - * LDAC hardware encoding config + * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped + * with LDAC hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpLdacEncodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -1748,13 +1802,13 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped with - * Opus hardware encoding config + * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped + * with Opus hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpOpusEncodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -1778,13 +1832,13 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped with - * AptX hardware encoding config + * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped + * with AptX hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpAptxEncodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } for (auto codec_type : {CodecType::APTX, CodecType::APTX_HD}) { @@ -1814,13 +1868,13 @@ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped with - * an invalid codec config + * SessionType::A2DP_HARDWARE_ENCODING_DATAPATH can be started and stopped + * with an invalid codec config */ TEST_P(BluetoothAudioProviderA2dpEncodingHardwareAidl, StartAndEndA2dpEncodingHardwareSessionInvalidCodecConfig) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } ASSERT_NE(audio_provider_, nullptr); @@ -1886,6 +1940,10 @@ class BluetoothAudioProviderHfpHardwareAidl public: virtual void SetUp() override { BluetoothAudioProviderFactoryAidl::SetUp(); + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } OpenProviderHelper(SessionType::HFP_HARDWARE_OFFLOAD_DATAPATH); // Can open or empty capability ASSERT_TRUE(temp_provider_capabilities_.empty() || @@ -2244,8 +2302,8 @@ class BluetoothAudioProviderLeAudioOutputHardwareAidl frame_duration.bitmask = CodecSpecificCapabilitiesLtv::SupportedFrameDurations::US7500; auto octets = CodecSpecificCapabilitiesLtv::SupportedOctetsPerCodecFrame(); - octets.minimum = 0; - octets.maximum = 60; + octets.min = 0; + octets.max = 60; auto frames = CodecSpecificCapabilitiesLtv::SupportedMaxCodecFramesPerSDU(); frames.value = 2; capability.codecSpecificCapabilities = {sampling_rate, frame_duration, @@ -2419,8 +2477,12 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, TEST_P( BluetoothAudioProviderLeAudioOutputHardwareAidl, StartAndEndLeAudioOutputSessionWithPossibleUnicastConfigFromProviderInfo) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } if (!IsOffloadOutputProviderInfoSupported()) { - return; + GTEST_SKIP(); } auto lc3_codec_configs = GetUnicastLc3SupportedListFromProviderInfo(); @@ -2444,6 +2506,10 @@ TEST_P( TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, GetEmptyAseConfigurationEmptyCapability) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } std::vector> empty_capability; std::vector empty_requirement; std::vector configurations; @@ -2465,6 +2531,10 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, GetEmptyAseConfigurationMismatchedRequirement) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } std::vector> capabilities = { GetDefaultRemoteCapability()}; @@ -2489,11 +2559,15 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, } TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, GetQoSConfiguration) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } IBluetoothAudioProvider::LeAudioAseQosConfigurationRequirement requirement; std::vector QoSConfigurations; for (auto bitmask : all_context_bitmasks) { - requirement.contextType = GetAudioContext(bitmask); + requirement.audioContext = GetAudioContext(bitmask); IBluetoothAudioProvider::LeAudioAseQosConfigurationPair result; auto aidl_retval = audio_provider_->getLeAudioAseQosConfiguration(requirement, &result); @@ -2506,6 +2580,44 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, GetQoSConfiguration) { // QoS Configurations should not be empty, as we searched for all contexts ASSERT_FALSE(QoSConfigurations.empty()); } + +TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, + GetDataPathConfiguration) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } + IBluetoothAudioProvider::StreamConfig sink_requirement; + IBluetoothAudioProvider::StreamConfig source_requirement; + std::vector + DataPathConfigurations; + bool is_supported = false; + + for (auto bitmask : all_context_bitmasks) { + sink_requirement.audioContext = GetAudioContext(bitmask); + source_requirement.audioContext = GetAudioContext(bitmask); + IBluetoothAudioProvider::LeAudioDataPathConfigurationPair result; + auto aidl_retval = audio_provider_->getLeAudioAseDatapathConfiguration( + sink_requirement, source_requirement, &result); + if (!aidl_retval.isOk()) { + // If not OK, then it could be not supported, as it is an optional feature + ASSERT_EQ(aidl_retval.getExceptionCode(), EX_UNSUPPORTED_OPERATION); + } else { + is_supported = true; + if (result.inputConfig.has_value()) + DataPathConfigurations.push_back(result.inputConfig.value()); + if (result.inputConfig.has_value()) + DataPathConfigurations.push_back(result.inputConfig.value()); + } + } + + if (is_supported) { + // Datapath Configurations should not be empty, as we searched for all + // contexts + ASSERT_FALSE(DataPathConfigurations.empty()); + } +} + /** * Test whether each provider of type * SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH can be started and @@ -2514,7 +2626,7 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, GetQoSConfiguration) { TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, StartAndEndLeAudioOutputSessionWithPossibleUnicastConfig) { if (!IsOffloadOutputSupported()) { - return; + GTEST_SKIP(); } auto lc3_codec_configs = @@ -2547,7 +2659,7 @@ TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, DISABLED_StartAndEndLeAudioOutputSessionWithInvalidAudioConfiguration) { if (!IsOffloadOutputSupported()) { - return; + GTEST_SKIP(); } auto lc3_codec_configs = @@ -2585,7 +2697,7 @@ static std::vector vendorMetadata = {0x0B, // Length TEST_P(BluetoothAudioProviderLeAudioOutputHardwareAidl, StartAndEndLeAudioOutputSessionWithAptxAdaptiveLeUnicastConfig) { if (!IsOffloadOutputSupported()) { - return; + GTEST_SKIP(); } for (auto codec_type : {CodecType::APTX_ADAPTIVE_LE, CodecType::APTX_ADAPTIVE_LEX}) { @@ -2622,7 +2734,7 @@ TEST_P( BluetoothAudioProviderLeAudioOutputHardwareAidl, BluetoothAudioProviderLeAudioOutputHardwareAidl_StartAndEndLeAudioOutputSessionWithInvalidAptxAdaptiveLeAudioConfiguration) { if (!IsOffloadOutputSupported()) { - return; + GTEST_SKIP(); } for (auto codec_type : @@ -2708,7 +2820,7 @@ TEST_P( BluetoothAudioProviderLeAudioInputHardwareAidl, StartAndEndLeAudioInputSessionWithPossibleUnicastConfigFromProviderInfo) { if (!IsOffloadOutputProviderInfoSupported()) { - return; + GTEST_SKIP(); } auto lc3_codec_configs = GetUnicastLc3SupportedListFromProviderInfo(); @@ -2738,7 +2850,7 @@ TEST_P( TEST_P(BluetoothAudioProviderLeAudioInputHardwareAidl, StartAndEndLeAudioInputSessionWithPossibleUnicastConfig) { if (!IsOffloadInputSupported()) { - return; + GTEST_SKIP(); } auto lc3_codec_configs = @@ -2771,7 +2883,7 @@ TEST_P(BluetoothAudioProviderLeAudioInputHardwareAidl, TEST_P(BluetoothAudioProviderLeAudioInputHardwareAidl, DISABLED_StartAndEndLeAudioInputSessionWithInvalidAudioConfiguration) { if (!IsOffloadInputSupported()) { - return; + GTEST_SKIP(); } auto lc3_codec_configs = @@ -2829,16 +2941,16 @@ class BluetoothAudioProviderLeAudioBroadcastSoftwareAidl /** * Test whether each provider of type - * SessionType::LE_AUDIO_BROADCAST_SOFTWARE_ENCODING_DATAPATH can be started and - * stopped + * SessionType::LE_AUDIO_BROADCAST_SOFTWARE_ENCODING_DATAPATH can be started + * and stopped */ TEST_P(BluetoothAudioProviderLeAudioBroadcastSoftwareAidl, OpenLeAudioOutputSoftwareProvider) {} /** * Test whether each provider of type - * SessionType::LE_AUDIO_BROADCAST_SOFTWARE_ENCODING_DATAPATH can be started and - * stopped with different PCM config + * SessionType::LE_AUDIO_BROADCAST_SOFTWARE_ENCODING_DATAPATH can be started + * and stopped with different PCM config */ TEST_P(BluetoothAudioProviderLeAudioBroadcastSoftwareAidl, StartAndEndLeAudioOutputSessionWithPossiblePcmConfig) { @@ -3012,6 +3124,10 @@ TEST_P(BluetoothAudioProviderLeAudioBroadcastHardwareAidl, TEST_P( BluetoothAudioProviderLeAudioBroadcastHardwareAidl, StartAndEndLeAudioBroadcastSessionWithPossibleUnicastConfigFromProviderInfo) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } if (!IsBroadcastOffloadProviderInfoSupported()) { return; } @@ -3043,6 +3159,10 @@ TEST_P( TEST_P(BluetoothAudioProviderLeAudioBroadcastHardwareAidl, GetEmptyBroadcastConfigurationEmptyCapability) { + if (GetProviderFactoryInterfaceVersion() < + BluetoothAudioHalVersion::VERSION_AIDL_V4) { + GTEST_SKIP(); + } std::vector> empty_capability; IBluetoothAudioProvider::LeAudioBroadcastConfigurationRequirement empty_requirement; @@ -3157,8 +3277,8 @@ TEST_P(BluetoothAudioProviderA2dpDecodingSoftwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_SOFTWARE_DECODING_DATAPATH can be started and stopped with - * different PCM config + * SessionType::A2DP_SOFTWARE_DECODING_DATAPATH can be started and stopped + * with different PCM config */ TEST_P(BluetoothAudioProviderA2dpDecodingSoftwareAidl, StartAndEndA2dpDecodingSoftwareSessionWithPossiblePcmConfig) { @@ -3219,13 +3339,13 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped with - * SBC hardware encoding config + * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped + * with SBC hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpSbcDecodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -3249,13 +3369,13 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped with - * AAC hardware encoding config + * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped + * with AAC hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpAacDecodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -3279,13 +3399,13 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped with - * LDAC hardware encoding config + * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped + * with LDAC hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpLdacDecodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -3309,13 +3429,13 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped with - * Opus hardware encoding config + * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped + * with Opus hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpOpusDecodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } CodecConfiguration codec_config = { @@ -3339,13 +3459,13 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped with - * AptX hardware encoding config + * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped + * with AptX hardware encoding config */ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpAptxDecodingHardwareSession) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } for (auto codec_type : {CodecType::APTX, CodecType::APTX_HD}) { @@ -3375,13 +3495,13 @@ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, /** * Test whether each provider of type - * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped with - * an invalid codec config + * SessionType::A2DP_HARDWARE_DECODING_DATAPATH can be started and stopped + * with an invalid codec config */ TEST_P(BluetoothAudioProviderA2dpDecodingHardwareAidl, StartAndEndA2dpDecodingHardwareSessionInvalidCodecConfig) { if (!IsOffloadSupported()) { - return; + GTEST_SKIP(); } ASSERT_NE(audio_provider_, nullptr); diff --git a/bluetooth/audio/flags/Android.bp b/bluetooth/audio/flags/Android.bp new file mode 100644 index 0000000000000000000000000000000000000000..c3c8cf52796907897c40fc896929f0cde451232b --- /dev/null +++ b/bluetooth/audio/flags/Android.bp @@ -0,0 +1,13 @@ +aconfig_declarations { + name: "btaudiohal_flags", + package: "com.android.btaudio.hal.flags", + container: "system", + srcs: ["btaudiohal.aconfig"], +} + +cc_aconfig_library { + name: "btaudiohal_flags_c_lib", + aconfig_declarations: "btaudiohal_flags", + vendor: true, + host_supported: true, +} diff --git a/bluetooth/audio/flags/btaudiohal.aconfig b/bluetooth/audio/flags/btaudiohal.aconfig new file mode 100644 index 0000000000000000000000000000000000000000..4c1500a6eb2a49d9bdc30024e855b28ddc2d7e95 --- /dev/null +++ b/bluetooth/audio/flags/btaudiohal.aconfig @@ -0,0 +1,9 @@ +package: "com.android.btaudio.hal.flags" +container: "system" + +flag { + name: "dsa_lea" + namespace: "pixel_bluetooth" + description: "Flag for DSA Over LEA" + bug: "270987427" +} diff --git a/bluetooth/audio/utils/Android.bp b/bluetooth/audio/utils/Android.bp index f5f8163a921abb64b9e9c9682c5020e9b7ec9c4e..c0817f54e198a97c62c3ede1799734a766bf130e 100644 --- a/bluetooth/audio/utils/Android.bp +++ b/bluetooth/audio/utils/Android.bp @@ -63,6 +63,10 @@ cc_library_shared { "libhidlbase", "libxml2", "libflatbuffers-cpp", + "server_configurable_flags", + ], + static_libs: [ + "btaudiohal_flags_c_lib", ], generated_sources: ["le_audio_codec_capabilities"], generated_headers: [ diff --git a/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp b/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp index f461eae94b7a9045703154fb6af8a621019ed445..2a80b6792227f1aaf6ccf7e075fc134bf9d2b3c3 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothAudioCodecs.cpp @@ -429,7 +429,7 @@ std::vector BluetoothAudioCodecs::GetLeAudioOffloadCodecInfo( if (kDefaultOffloadLeAudioCodecInfoMap.empty()) { auto le_audio_offload_setting = BluetoothLeAudioCodecsProvider::ParseFromLeAudioOffloadSettingFile(); - auto kDefaultOffloadLeAudioCodecInfoMap = + kDefaultOffloadLeAudioCodecInfoMap = BluetoothLeAudioCodecsProvider::GetLeAudioCodecInfo( le_audio_offload_setting); } diff --git a/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp b/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp index 3519ace1f924e9dd8aa1e02c737c16f801826ab5..67ba93cdd7ef76f1cde949471edd49769638c286 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include "BluetoothAudioSession.h" @@ -36,6 +37,14 @@ static constexpr int kFmqReceiveTimeoutMs = static constexpr int kWritePollMs = 1; // polled non-blocking interval static constexpr int kReadPollMs = 1; // polled non-blocking interval +static std::string toString(const std::vector& latencies) { + std::stringstream latencyModesStr; + for (LatencyMode mode : latencies) { + latencyModesStr << " " << toString(mode); + } + return latencyModesStr.str(); +} + BluetoothAudioSession::BluetoothAudioSession(const SessionType& session_type) : session_type_(session_type), stack_iface_(nullptr), data_mq_(nullptr) {} @@ -65,6 +74,7 @@ void BluetoothAudioSession::OnSessionStarted( stack_iface_ = stack_iface; latency_modes_ = latency_modes; LOG(INFO) << __func__ << " - SessionType=" << toString(session_type_) + << " - All LatencyModes=" << toString(latency_modes) << ", AudioConfiguration=" << audio_config.toString(); ReportSessionStatus(); } @@ -490,14 +500,12 @@ bool BluetoothAudioSession::GetPresentationPosition( << " has NO session"; return false; } - bool retval = false; - if (!stack_iface_->getPresentationPosition(&presentation_position).isOk()) { LOG(WARNING) << __func__ << " - IBluetoothAudioPort SessionType=" << toString(session_type_) << " failed"; return false; } - return retval; + return true; } void BluetoothAudioSession::UpdateSourceMetadata( @@ -604,31 +612,46 @@ std::vector BluetoothAudioSession::GetSupportedLatencyModes() { return std::vector(); } - std::vector supported_latency_modes; - if (session_type_ == - SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH) { - for (LatencyMode mode : latency_modes_) { - if (mode == LatencyMode::LOW_LATENCY) { - // LOW_LATENCY is not supported for LE_HARDWARE_OFFLOAD_ENC sessions - continue; - } - supported_latency_modes.push_back(mode); - } - } else { - for (LatencyMode mode : latency_modes_) { - if (!low_latency_allowed_ && mode == LatencyMode::LOW_LATENCY) { - // ignore LOW_LATENCY mode if Bluetooth stack doesn't allow - continue; + if (com::android::btaudio::hal::flags::dsa_lea()) { + std::vector supported_latency_modes; + if (session_type_ == + SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH) { + for (LatencyMode mode : latency_modes_) { + if (mode == LatencyMode::LOW_LATENCY) { + // LOW_LATENCY is not supported for LE_HARDWARE_OFFLOAD_ENC sessions + continue; + } + supported_latency_modes.push_back(mode); } - if (mode == LatencyMode::DYNAMIC_SPATIAL_AUDIO_SOFTWARE || - mode == LatencyMode::DYNAMIC_SPATIAL_AUDIO_HARDWARE) { - // DSA_SW and DSA_HW only supported for LE_HARDWARE_OFFLOAD_ENC sessions - continue; + } else { + for (LatencyMode mode : latency_modes_) { + if (!low_latency_allowed_ && mode == LatencyMode::LOW_LATENCY) { + // ignore LOW_LATENCY mode if Bluetooth stack doesn't allow + continue; + } + if (mode == LatencyMode::DYNAMIC_SPATIAL_AUDIO_SOFTWARE || + mode == LatencyMode::DYNAMIC_SPATIAL_AUDIO_HARDWARE) { + // DSA_SW and DSA_HW only supported for LE_HARDWARE_OFFLOAD_ENC + // sessions + continue; + } + supported_latency_modes.push_back(mode); } - supported_latency_modes.push_back(mode); } + LOG(DEBUG) << __func__ << " - Supported LatencyMode=" + << toString(supported_latency_modes); + return supported_latency_modes; + } + + if (low_latency_allowed_) return latency_modes_; + std::vector modes; + for (LatencyMode mode : latency_modes_) { + if (mode == LatencyMode::LOW_LATENCY) + // ignore those low latency mode if Bluetooth stack doesn't allow + continue; + modes.push_back(mode); } - return supported_latency_modes; + return modes; } void BluetoothAudioSession::SetLatencyMode(const LatencyMode& latency_mode) { diff --git a/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp b/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp index b6df67e133f4e841f00061b2175a03e8022c0676..473777c945e9644c3d4e1d8334c973285fcf981f 100644 --- a/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp +++ b/bluetooth/audio/utils/aidl_session/BluetoothLeAudioCodecsProvider.cpp @@ -43,9 +43,6 @@ static bool isInvalidFileContent = false; std::optional BluetoothLeAudioCodecsProvider::ParseFromLeAudioOffloadSettingFile() { - if (!leAudioCodecCapabilities.empty() || isInvalidFileContent) { - return std::nullopt; - } auto le_audio_offload_setting = setting::readLeAudioOffloadSetting(kLeAudioCodecCapabilitiesFile); if (!le_audio_offload_setting.has_value()) { @@ -77,8 +74,6 @@ BluetoothLeAudioCodecsProvider::GetLeAudioCodecInfo( for (auto& p : configuration_map_) { // Initialize new CodecInfo for the config auto config_name = p.first; - if (config_codec_info_map_.count(config_name) == 0) - config_codec_info_map_[config_name] = CodecInfo(); // Getting informations from codecConfig and strategyConfig const auto codec_config_name = p.second.getCodecConfiguration(); @@ -92,6 +87,9 @@ BluetoothLeAudioCodecsProvider::GetLeAudioCodecInfo( if (strategy_configuration_map_iter == strategy_configuration_map_.end()) continue; + if (config_codec_info_map_.count(config_name) == 0) + config_codec_info_map_[config_name] = CodecInfo(); + const auto& codec_config = codec_configuration_map_iter->second; const auto codec = codec_config.getCodec(); const auto& strategy_config = strategy_configuration_map_iter->second; @@ -137,12 +135,19 @@ BluetoothLeAudioCodecsProvider::GetLeAudioCodecInfo( } } - // Goes through every scenario, deduplicate configuration + // Goes through every scenario, deduplicate configuration, skip the invalid + // config references (e.g. the "invalid" entries in the xml file). std::set encoding_config, decoding_config, broadcast_config; for (auto& s : supported_scenarios_) { - if (s.hasEncode()) encoding_config.insert(s.getEncode()); - if (s.hasDecode()) decoding_config.insert(s.getDecode()); - if (s.hasBroadcast()) broadcast_config.insert(s.getBroadcast()); + if (s.hasEncode() && config_codec_info_map_.count(s.getEncode())) { + encoding_config.insert(s.getEncode()); + } + if (s.hasDecode() && config_codec_info_map_.count(s.getDecode())) { + decoding_config.insert(s.getDecode()); + } + if (s.hasBroadcast() && config_codec_info_map_.count(s.getBroadcast())) { + broadcast_config.insert(s.getBroadcast()); + } } // Split by session types and add results diff --git a/bluetooth/finder/aidl/Android.bp b/bluetooth/finder/aidl/Android.bp index e606d2d9968eef497495d77cbd6ceb9399d3c8f9..7c83c130fdcd0d35be2b5045bfe818743e3cd416 100644 --- a/bluetooth/finder/aidl/Android.bp +++ b/bluetooth/finder/aidl/Android.bp @@ -28,7 +28,22 @@ aidl_interface { }, java: { enabled: true, - platform_apis: true, + sdk_version: "module_current", + min_sdk_version: "30", + apex_available: [ + "com.android.tethering", + ], + lint: { + baseline_filename: "lint-baseline.xml", + }, }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + } diff --git a/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/.hash b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/.hash new file mode 100644 index 0000000000000000000000000000000000000000..0c1f694c8bd3162916db4b7abcd116d0214d40dc --- /dev/null +++ b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/.hash @@ -0,0 +1 @@ +078986eb5ef2dd183974ee4c9a79dc9b71bea088 diff --git a/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/Eid.aidl b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/Eid.aidl new file mode 100644 index 0000000000000000000000000000000000000000..42461c59044f53fcbbf8da3b22debd39f7442917 --- /dev/null +++ b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/Eid.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.finder; +@VintfStability +parcelable Eid { + byte[20] bytes; +} diff --git a/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/IBluetoothFinder.aidl b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/IBluetoothFinder.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4bc9041499f333cbcad2f2b927f7605b14adb07e --- /dev/null +++ b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/1/android/hardware/bluetooth/finder/IBluetoothFinder.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.finder; +@VintfStability +interface IBluetoothFinder { + void sendEids(in android.hardware.bluetooth.finder.Eid[] eids); + void setPoweredOffFinderMode(in boolean enable); + boolean getPoweredOffFinderMode(); +} diff --git a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl index ae9b1590ee2407ce80f65928687ab0e1455d384e..0de306f8192d126d46148baa8a86ad1efe522fab 100644 --- a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl +++ b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl @@ -17,7 +17,7 @@ package android.hardware.bluetooth.finder; /** - * Ephemeral Identifier + * Find My Device network ephemeral identifier */ @VintfStability parcelable Eid { diff --git a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl index 615739b1cf5f4a241cdd2b314c1d2ba2efebfda1..a374c2ad09804a89fc126fb1fc98c5186a92b1d0 100644 --- a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl +++ b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl @@ -21,7 +21,7 @@ import android.hardware.bluetooth.finder.Eid; @VintfStability interface IBluetoothFinder { /** - * API to set the EIDs to the Bluetooth Controller + * API to set Find My Device network EIDs to the Bluetooth Controller * * @param eids array of 20 bytes EID to the Bluetooth * controller diff --git a/bluetooth/finder/aidl/default/service.cpp b/bluetooth/finder/aidl/default/service.cpp index a117df850d9118cad857ecf751a7c9676d62e7aa..fe8904bde512d3bb185b587b8d6cdf622671bdf5 100644 --- a/bluetooth/finder/aidl/default/service.cpp +++ b/bluetooth/finder/aidl/default/service.cpp @@ -35,12 +35,16 @@ int main(int /* argc */, char** /* argv */) { ndk::SharedRefBase::make(); std::string instance = std::string() + BluetoothFinder::descriptor + "/default"; - auto result = - AServiceManager_addService(service->asBinder().get(), instance.c_str()); - if (result == STATUS_OK) { - ABinderProcess_joinThreadPool(); + if (AServiceManager_isDeclared(instance.c_str())) { + auto result = + AServiceManager_addService(service->asBinder().get(), instance.c_str()); + if (result != STATUS_OK) { + ALOGE("Could not register as a service!"); + } } else { - ALOGE("Could not register as a service!"); + ALOGE("Could not register as a service because it's not declared."); } + // Keep running + ABinderProcess_joinThreadPool(); return 0; } diff --git a/bluetooth/finder/aidl/lint-baseline.xml b/bluetooth/finder/aidl/lint-baseline.xml new file mode 100644 index 0000000000000000000000000000000000000000..e0570f6bd9d97ba14c450c3fed444853da3f7e94 --- /dev/null +++ b/bluetooth/finder/aidl/lint-baseline.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + diff --git a/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.cpp b/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.cpp index be07a7db2446becc7b4fde001c671b9a284411ba..fee9e24200f7e87ca13869b90fe3d4bc06a36037 100644 --- a/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.cpp +++ b/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -71,6 +72,12 @@ ScopedAStatus BluetoothFinderTest::getPoweredOffFinderMode(bool* status) { return bluetooth_finder->getPoweredOffFinderMode(status); } +TEST_P(BluetoothFinderTest, PropertyIsSet) { + ASSERT_EQ( + android::base::GetProperty("ro.bluetooth.finder.supported", "false"), + "true"); +} + TEST_P(BluetoothFinderTest, SendEidsSingle) { ScopedAStatus status = sendEids(1); ASSERT_TRUE(status.isOk()); diff --git a/bluetooth/lmp_event/aidl/Android.bp b/bluetooth/lmp_event/aidl/Android.bp new file mode 100644 index 0000000000000000000000000000000000000000..1e3592bdf46cfe81ba65f5c86a6f2fcc23984e08 --- /dev/null +++ b/bluetooth/lmp_event/aidl/Android.bp @@ -0,0 +1,41 @@ +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "hardware_interfaces_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +aidl_interface { + name: "android.hardware.bluetooth.lmp_event", + vendor_available: true, + host_supported: true, + srcs: ["android/hardware/bluetooth/lmp_event/*.aidl"], + stability: "vintf", + backend: { + java: { + enabled: true, + platform_apis: true, + }, + cpp: { + enabled: true, + }, + ndk: { + enabled: true, + min_sdk_version: "33", + }, + rust: { + enabled: true, + min_sdk_version: "33", + }, + }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/.hash b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/.hash new file mode 100644 index 0000000000000000000000000000000000000000..8571e31db876e7c9547362cda3b2c96b1c9da33e --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/.hash @@ -0,0 +1 @@ +e9accf971a83a7829786ee24780fa7a5583b5dae diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/AddressType.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/AddressType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0f239e8055cdef65fad59b22ddf02b6003ce3a27 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/AddressType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@Backing(type="byte") @VintfStability +enum AddressType { + PUBLIC = 0x00, + RANDOM = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Direction.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Direction.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6f807cc836d8f4cfa2eb7e94dd62aec148714165 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Direction.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@Backing(type="byte") @VintfStability +enum Direction { + TX = 0x00, + RX = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3431010d21976c88c62d2d068d36b4cc3f46a1cb --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@VintfStability +interface IBluetoothLmpEvent { + void registerForLmpEvents(in android.hardware.bluetooth.lmp_event.IBluetoothLmpEventCallback callback, in android.hardware.bluetooth.lmp_event.AddressType addressType, in byte[6] address, in android.hardware.bluetooth.lmp_event.LmpEventId[] lmpEventIds); + void unregisterLmpEvents(in android.hardware.bluetooth.lmp_event.AddressType addressType, in byte[6] address); +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fc6758c608e48258339266d90ddf3bc693e179be --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@VintfStability +interface IBluetoothLmpEventCallback { + void onEventGenerated(in android.hardware.bluetooth.lmp_event.Timestamp timestamp, in android.hardware.bluetooth.lmp_event.AddressType addressType, in byte[6] address, in android.hardware.bluetooth.lmp_event.Direction direction, in android.hardware.bluetooth.lmp_event.LmpEventId lmpEventId, in char connEventCounter); + void onRegistered(in boolean status); +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/LmpEventId.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/LmpEventId.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4ee95d114739af603ac3a4984430566805bdba28 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/LmpEventId.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@Backing(type="byte") @VintfStability +enum LmpEventId { + CONNECT_IND = 0x00, + LL_PHY_UPDATE_IND = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Timestamp.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Timestamp.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5ef32ba716eb275977fcb89ab80013ba8f62bd45 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/1/android/hardware/bluetooth/lmp_event/Timestamp.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@VintfStability +parcelable Timestamp { + long systemTimeUs; + long bluetoothTimeUs; +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/AddressType.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/AddressType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0f239e8055cdef65fad59b22ddf02b6003ce3a27 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/AddressType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@Backing(type="byte") @VintfStability +enum AddressType { + PUBLIC = 0x00, + RANDOM = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Direction.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Direction.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6f807cc836d8f4cfa2eb7e94dd62aec148714165 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Direction.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@Backing(type="byte") @VintfStability +enum Direction { + TX = 0x00, + RX = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3431010d21976c88c62d2d068d36b4cc3f46a1cb --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@VintfStability +interface IBluetoothLmpEvent { + void registerForLmpEvents(in android.hardware.bluetooth.lmp_event.IBluetoothLmpEventCallback callback, in android.hardware.bluetooth.lmp_event.AddressType addressType, in byte[6] address, in android.hardware.bluetooth.lmp_event.LmpEventId[] lmpEventIds); + void unregisterLmpEvents(in android.hardware.bluetooth.lmp_event.AddressType addressType, in byte[6] address); +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fc6758c608e48258339266d90ddf3bc693e179be --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@VintfStability +interface IBluetoothLmpEventCallback { + void onEventGenerated(in android.hardware.bluetooth.lmp_event.Timestamp timestamp, in android.hardware.bluetooth.lmp_event.AddressType addressType, in byte[6] address, in android.hardware.bluetooth.lmp_event.Direction direction, in android.hardware.bluetooth.lmp_event.LmpEventId lmpEventId, in char connEventCounter); + void onRegistered(in boolean status); +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/LmpEventId.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/LmpEventId.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4ee95d114739af603ac3a4984430566805bdba28 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/LmpEventId.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@Backing(type="byte") @VintfStability +enum LmpEventId { + CONNECT_IND = 0x00, + LL_PHY_UPDATE_IND = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Timestamp.aidl b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Timestamp.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5ef32ba716eb275977fcb89ab80013ba8f62bd45 --- /dev/null +++ b/bluetooth/lmp_event/aidl/aidl_api/android.hardware.bluetooth.lmp_event/current/android/hardware/bluetooth/lmp_event/Timestamp.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.lmp_event; +@VintfStability +parcelable Timestamp { + long systemTimeUs; + long bluetoothTimeUs; +} diff --git a/health/2.0/utils/libhealthstoragedefault/StorageHealthDefault.cpp b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/AddressType.aidl similarity index 69% rename from health/2.0/utils/libhealthstoragedefault/StorageHealthDefault.cpp rename to bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/AddressType.aidl index aba6cc364b65cefc5b117fb280088ec5b4b9471a..6bfc7c71802232f4d86c46e03ec732ecdf0aaf92 100644 --- a/health/2.0/utils/libhealthstoragedefault/StorageHealthDefault.cpp +++ b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/AddressType.aidl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018 The Android Open Source Project + * 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. @@ -13,12 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#include "include/StorageHealthDefault.h" -void get_storage_info(std::vector&) { - // Use defaults. -} +package android.hardware.bluetooth.lmp_event; -void get_disk_stats(std::vector&) { - // Use defaults +/** + * Type of Address + */ +@VintfStability +@Backing(type="byte") +enum AddressType { + PUBLIC = 0x00, + RANDOM = 0x01, } diff --git a/health/2.0/utils/libhealthservice/include/health2/service.h b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Direction.aidl similarity index 68% rename from health/2.0/utils/libhealthservice/include/health2/service.h rename to bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Direction.aidl index d260568301ea61c8309b277628108e076393cc3e..884c2bb4b91e4f55b6feb8094d2bf3b72265c3cd 100644 --- a/health/2.0/utils/libhealthservice/include/health2/service.h +++ b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Direction.aidl @@ -1,5 +1,5 @@ /* - * Copyright 2018 The Android Open Source Project + * 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. @@ -14,9 +14,14 @@ * limitations under the License. */ -#ifndef ANDROID_HARDWARE_HEALTH_V2_0_SERVICE_COMMON -#define ANDROID_HARDWARE_HEALTH_V2_0_SERVICE_COMMON +package android.hardware.bluetooth.lmp_event; -int health_service_main(const char* instance = ""); - -#endif // ANDROID_HARDWARE_HEALTH_V2_0_SERVICE_COMMON +/** + * Direction of the LMP event + */ +@VintfStability +@Backing(type="byte") +enum Direction { + TX = 0x00, + RX = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3828af6537f8de1672a5dd8f4b8c6824c227c318 --- /dev/null +++ b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEvent.aidl @@ -0,0 +1,45 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.bluetooth.lmp_event; + +import android.hardware.bluetooth.lmp_event.IBluetoothLmpEventCallback; +import android.hardware.bluetooth.lmp_event.AddressType; +import android.hardware.bluetooth.lmp_event.LmpEventId; + +@VintfStability +interface IBluetoothLmpEvent { + /** + * API to monitor specific LMP event timestamp for given Bluetooth device. + * + * @param callback An instance of the |IBluetoothLmpEventCallback| AIDL interface object. + * @param addressType Type of bluetooth address. + * @param address Bluetooth address to monitor. + * @param lmpEventIds LMP events to monitor. + */ + void registerForLmpEvents(in IBluetoothLmpEventCallback callback, + in AddressType addressType, + in byte[6] address, + in LmpEventId[] lmpEventIds); + + /** + * API to stop monitoring a given Bluetooth device. + * + * @param addressType Type of Bluetooth address. + * @param address Bluetooth device to stop monitoring. + */ + void unregisterLmpEvents(in AddressType addressType, in byte[6] address); +} diff --git a/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3295ef015de97c2fd60d136cc2da5a49ec0691b5 --- /dev/null +++ b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/IBluetoothLmpEventCallback.aidl @@ -0,0 +1,47 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.bluetooth.lmp_event; + +import android.hardware.bluetooth.lmp_event.Direction; +import android.hardware.bluetooth.lmp_event.AddressType; +import android.hardware.bluetooth.lmp_event.LmpEventId; +import android.hardware.bluetooth.lmp_event.Timestamp; + +@VintfStability +interface IBluetoothLmpEventCallback { + /** + * Callback when monitored LMP event invoked. + * + * @param timestamp Timestamp when the LMP event invoked + * @param addressType Type of Bluetooth address. + * @param address Remote bluetooth address that invoke LMP event + * @param direction Direction of the invoked LMP event + * @param lmpEventId LMP event id that bluetooth chip invoked + * @param connEventCounter counter incremented by one for each new connection event + */ + void onEventGenerated(in Timestamp timestamp, + in AddressType addressType, + in byte[6] address, + in Direction direction, + in LmpEventId lmpEventId, + in char connEventCounter); + + /** + * Callback when registration done. + */ + void onRegistered(in boolean status); +} diff --git a/health/2.0/utils/libhealthstoragedefault/include/StorageHealthDefault.h b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/LmpEventId.aidl similarity index 50% rename from health/2.0/utils/libhealthstoragedefault/include/StorageHealthDefault.h rename to bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/LmpEventId.aidl index 85eb2102627129c78b804d2be543edf5e9b16105..3584b0c04708aae9cf389b051813ec10e55cff2b 100644 --- a/health/2.0/utils/libhealthstoragedefault/include/StorageHealthDefault.h +++ b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/LmpEventId.aidl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018 The Android Open Source Project + * 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. @@ -13,22 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef ANDROID_HARDWARE_HEALTH_V2_0_STORAGE_HEALTH_H -#define ANDROID_HARDWARE_HEALTH_V2_0_STORAGE_HEALTH_H -#include +package android.hardware.bluetooth.lmp_event; -using android::hardware::health::V2_0::StorageInfo; -using android::hardware::health::V2_0::DiskStats; - -/* - * Get storage information. - */ -void get_storage_info(std::vector& info); - -/* - * Get disk statistics. +/** + * LMP event id to be monitored + * CONNECT_IND indicator for initiating connection + * LL_PHY_UPDATE_IND indicator for PHY update */ -void get_disk_stats(std::vector& stats); - -#endif // ANDROID_HARDWARE_HEALTH_V2_0_STORAGE_HEALTH_H +@VintfStability +@Backing(type="byte") +enum LmpEventId { + CONNECT_IND = 0x00, + LL_PHY_UPDATE_IND = 0x01, +} diff --git a/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Timestamp.aidl b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Timestamp.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e3c991d31e124fa282e4a9e0571396d12b65a364 --- /dev/null +++ b/bluetooth/lmp_event/aidl/android/hardware/bluetooth/lmp_event/Timestamp.aidl @@ -0,0 +1,33 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.bluetooth.lmp_event; + +/** + * Generic structure to return the timestamp + */ +@VintfStability +parcelable Timestamp { + /** + * Timestamp in microsecond since system boot. + * if systemTimeUs is set to 0, its value is to be ignored + */ + long systemTimeUs; + /** + * Timestamp in microsecond since Bluetooth controller power up. + */ + long bluetoothTimeUs; +} diff --git a/bluetooth/lmp_event/aidl/default/Android.bp b/bluetooth/lmp_event/aidl/default/Android.bp new file mode 100644 index 0000000000000000000000000000000000000000..f8ca5e6404834ca7d0aefe969bc2bf26a39ee722 --- /dev/null +++ b/bluetooth/lmp_event/aidl/default/Android.bp @@ -0,0 +1,28 @@ +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "hardware_interfaces_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +rust_binary { + name: "android.hardware.bluetooth.lmp_event-service.default", + relative_install_path: "hw", + init_rc: ["lmp_event-default.rc"], + vintf_fragments: [":manifest_android.hardware.bluetooth.lmp_event-service.default.xml"], + vendor: true, + rustlibs: [ + "liblogger", + "liblog_rust", + "libbinder_rs", + "android.hardware.bluetooth.lmp_event-V1-rust", + ], + srcs: [ "src/main.rs" ], +} + +filegroup { + name: "manifest_android.hardware.bluetooth.lmp_event-service.default.xml", + srcs: [ "lmp_event-default.xml" ], +} diff --git a/bluetooth/lmp_event/aidl/default/lmp_event-default.rc b/bluetooth/lmp_event/aidl/default/lmp_event-default.rc new file mode 100644 index 0000000000000000000000000000000000000000..845e04dba1919b70aee3babd637b5b9d28d139fc --- /dev/null +++ b/bluetooth/lmp_event/aidl/default/lmp_event-default.rc @@ -0,0 +1,6 @@ +service vendor.bluetooth.lmp_event-default /vendor/bin/hw/android.hardware.bluetooth.lmp_event-service.default + class hal + capabilities BLOCK_SUSPEND NET_ADMIN SYS_NICE + user bluetooth + group bluetooth + task_profiles HighPerformance diff --git a/bluetooth/lmp_event/aidl/default/lmp_event-default.xml b/bluetooth/lmp_event/aidl/default/lmp_event-default.xml new file mode 100644 index 0000000000000000000000000000000000000000..24d93f89f30663d57f84f1d6a808f120121cbad5 --- /dev/null +++ b/bluetooth/lmp_event/aidl/default/lmp_event-default.xml @@ -0,0 +1,10 @@ + + + android.hardware.bluetooth.lmp_event + 1 + + IBluetoothLmpEvent + default + + + diff --git a/bluetooth/lmp_event/aidl/default/src/lmp_event.rs b/bluetooth/lmp_event/aidl/default/src/lmp_event.rs new file mode 100644 index 0000000000000000000000000000000000000000..f016c3f9eb6b41e82d786cae58ac4c0c9b4e9197 --- /dev/null +++ b/bluetooth/lmp_event/aidl/default/src/lmp_event.rs @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +//! Implements LMP Event AIDL Interface. + +use android_hardware_bluetooth_lmp_event::aidl::android::hardware::bluetooth::lmp_event::{ + Direction::Direction, AddressType::AddressType, IBluetoothLmpEvent::IBluetoothLmpEvent, + IBluetoothLmpEventCallback::IBluetoothLmpEventCallback, LmpEventId::LmpEventId, + Timestamp::Timestamp, +}; + +use binder::{Interface, Result, Strong}; + +use log::info; +use std::thread; +use std::time; + + +pub struct LmpEvent; + +impl LmpEvent { + pub fn new() -> Self { + Self + } +} + +impl Interface for LmpEvent {} + +impl IBluetoothLmpEvent for LmpEvent { + fn registerForLmpEvents(&self, + callback: &Strong, + address_type: AddressType, + address: &[u8; 6], + lmp_event_ids: &[LmpEventId] + ) -> Result<()> { + info!("registerForLmpEvents"); + + let cb = callback.clone(); + let addr_type = address_type; + let addr = address.clone(); + let lmp_event = lmp_event_ids.to_vec(); + + let thread_handle = thread::spawn(move || { + let ts = Timestamp { + bluetoothTimeUs: 1000000, + systemTimeUs: 2000000, + }; + + info!("sleep for 1000 ms"); + thread::sleep(time::Duration::from_millis(1000)); + + info!("callback event"); + cb.onEventGenerated(&ts, addr_type, &addr, Direction::RX, lmp_event[0], 1) + .expect("onEventGenerated failed"); + }); + + info!("callback register"); + callback.onRegistered(true)?; + + thread_handle.join().expect("join failed"); + Ok(()) + } + fn unregisterLmpEvents(&self, _address_type: AddressType, _address: &[u8; 6]) -> Result<()> { + info!("unregisterLmpEvents"); + + Ok(()) + } +} diff --git a/bluetooth/lmp_event/aidl/default/src/main.rs b/bluetooth/lmp_event/aidl/default/src/main.rs new file mode 100644 index 0000000000000000000000000000000000000000..b24164e584b73a65994f72b5f86811abc968bb9b --- /dev/null +++ b/bluetooth/lmp_event/aidl/default/src/main.rs @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +//! Implements LMP Event Example Service. + + +use android_hardware_bluetooth_lmp_event::aidl::android::hardware::bluetooth::lmp_event::IBluetoothLmpEvent::{ + IBluetoothLmpEvent, BnBluetoothLmpEvent +}; + +use binder::BinderFeatures; +use log::{info, LevelFilter}; + +mod lmp_event; + +const LOG_TAG: &str = "lmp_event_service_example"; + +fn main() { + info!("{LOG_TAG}: starting service"); + let logger_success = logger::init( + logger::Config::default().with_tag_on_device(LOG_TAG).with_max_level(LevelFilter::Trace) + ); + if !logger_success { + panic!("{LOG_TAG}: Failed to start logger"); + } + + binder::ProcessState::set_thread_pool_max_thread_count(0); + + let lmp_event_service = lmp_event::LmpEvent::new(); + let lmp_event_service_binder = BnBluetoothLmpEvent::new_binder(lmp_event_service, BinderFeatures::default()); + + let descriptor = format!("{}/default", lmp_event::LmpEvent::get_descriptor()); + if binder::is_declared(&descriptor).expect("Failed to check if declared") { + binder::add_service(&descriptor, lmp_event_service_binder.as_binder()).expect("Failed to register service"); + } else { + info!("{LOG_TAG}: Failed to register service. Not declared."); + } + binder::ProcessState::join_thread_pool() +} diff --git a/bluetooth/lmp_event/aidl/vts/Android.bp b/bluetooth/lmp_event/aidl/vts/Android.bp new file mode 100644 index 0000000000000000000000000000000000000000..b89351ed16e50283a30eaeb62e6d60aa26335b76 --- /dev/null +++ b/bluetooth/lmp_event/aidl/vts/Android.bp @@ -0,0 +1,20 @@ +cc_test { + name: "VtsHalLmpEventTargetTest", + defaults: [ + "VtsHalTargetTestDefaults", + "use_libaidlvintf_gtest_helper_static", + ], + srcs: ["VtsHalLmpEventTargetTest.cpp"], + shared_libs: [ + "libbinder", + "libbinder_ndk" + ], + static_libs: [ + "android.hardware.bluetooth.lmp_event-V1-ndk", + ], + test_suites: [ + "general-tests", + "vts", + ] +} + diff --git a/bluetooth/lmp_event/aidl/vts/VtsHalLmpEventTargetTest.cpp b/bluetooth/lmp_event/aidl/vts/VtsHalLmpEventTargetTest.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c49f60bdd80c0385695e01ae8216369f5fb65823 --- /dev/null +++ b/bluetooth/lmp_event/aidl/vts/VtsHalLmpEventTargetTest.cpp @@ -0,0 +1,176 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the std::shared_ptrecific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "lmp_event_hal_test" + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +using ::aidl::android::hardware::bluetooth::lmp_event::BnBluetoothLmpEventCallback; +using ::aidl::android::hardware::bluetooth::lmp_event::IBluetoothLmpEvent; +using ::aidl::android::hardware::bluetooth::lmp_event::IBluetoothLmpEventCallback; +using ::aidl::android::hardware::bluetooth::lmp_event::Direction; +using ::aidl::android::hardware::bluetooth::lmp_event::AddressType; +using ::aidl::android::hardware::bluetooth::lmp_event::LmpEventId; +using ::aidl::android::hardware::bluetooth::lmp_event::Timestamp; + +using ::android::ProcessState; +using ::ndk::SpAIBinder; + +namespace { + static constexpr std::chrono::milliseconds kEventTimeoutMs(10000); +} + +class BluetoothLmpEventTest : public testing::TestWithParam { + public: + virtual void SetUp() override { + ALOGI("%s", __func__); + + ibt_lmp_event_ = IBluetoothLmpEvent::fromBinder(SpAIBinder(AServiceManager_waitForService(GetParam().c_str()))); + ASSERT_NE(ibt_lmp_event_, nullptr); + + ibt_lmp_event_cb_ = ndk::SharedRefBase::make(*this); + ASSERT_NE(ibt_lmp_event_cb_, nullptr); + } + + virtual void TearDown() override { + ALOGI("%s", __func__); + ibt_lmp_event_->unregisterLmpEvents(address_type, address); + + ibt_lmp_event_cb_ = nullptr; + } + + class BluetoothLmpEventCallback : public BnBluetoothLmpEventCallback { + public: + BluetoothLmpEventTest& parent_; + BluetoothLmpEventCallback(BluetoothLmpEventTest& parent) + : parent_(parent) {} + ~BluetoothLmpEventCallback() = default; + + ::ndk::ScopedAStatus onEventGenerated(const Timestamp& timestamp, AddressType address_type, + const std::array& address, Direction direction, + LmpEventId lmp_event_id, char16_t conn_event_counter) override { + for (auto t: address) { + ALOGD("%s: 0x%02x", __func__, t); + } + if (direction == Direction::TX) { + ALOGD("%s: Transmitting", __func__); + } else if (direction == Direction::RX) { + ALOGD("%s: Receiving", __func__); + } + if (address_type == AddressType::PUBLIC) { + ALOGD("%s: Public address", __func__); + } else if (address_type == AddressType::RANDOM) { + ALOGD("%s: Random address", __func__); + } + if (lmp_event_id == LmpEventId::CONNECT_IND) { + ALOGD("%s: initiating connection", __func__); + } else if (lmp_event_id == LmpEventId::LL_PHY_UPDATE_IND) { + ALOGD("%s: PHY update indication", __func__); + } + + ALOGD("%s: time: %" PRId64 "counter value: %x", __func__, timestamp.bluetoothTimeUs, conn_event_counter); + + parent_.event_recv = true; + parent_.notify(); + + return ::ndk::ScopedAStatus::ok(); + } + ::ndk::ScopedAStatus onRegistered(bool status) override { + ALOGD("%s: status: %d", __func__, status); + parent_.status_recv = status; + parent_.notify(); + return ::ndk::ScopedAStatus::ok(); + } + }; + + inline void notify() { + std::unique_lock lock(lmp_event_mtx); + lmp_event_cv.notify_one(); + } + + inline void wait(bool is_register_event) { + std::unique_lock lock(lmp_event_mtx); + + + if (is_register_event) { + lmp_event_cv.wait(lock, [&]() { return status_recv == true; }); + } else { + lmp_event_cv.wait_for(lock, kEventTimeoutMs, + [&](){ return event_recv == true; }); + } + + } + + std::shared_ptr ibt_lmp_event_; + std::shared_ptr ibt_lmp_event_cb_; + + AddressType address_type; + std::array address; + + std::atomic event_recv; + bool status_recv; + + std::mutex lmp_event_mtx; + std::condition_variable lmp_event_cv; +}; + +TEST_P(BluetoothLmpEventTest, RegisterAndReceive) { + address = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66}; + address_type = AddressType::RANDOM; + std::vector lmp_event_ids{LmpEventId::CONNECT_IND, LmpEventId::LL_PHY_UPDATE_IND}; + + ibt_lmp_event_->registerForLmpEvents(ibt_lmp_event_cb_, address_type, address, lmp_event_ids); + wait(true); + EXPECT_EQ(true, status_recv); + + /* Wait for event generated here */ + wait(false); + EXPECT_EQ(true, event_recv); + + ibt_lmp_event_->unregisterLmpEvents(address_type, address); +} + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BluetoothLmpEventTest); +INSTANTIATE_TEST_SUITE_P(BluetoothLmpEvent, BluetoothLmpEventTest, + testing::ValuesIn(android::getAidlHalInstanceNames(IBluetoothLmpEvent::descriptor)), + android::PrintInstanceNameToString); + +int main(int argc, char** argv) { + ::testing::InitGoogleTest(&argc, argv); + ProcessState::self()->setThreadPoolMaxThreadCount(1); + ProcessState::self()->startThreadPool(); + return RUN_ALL_TESTS(); +} + diff --git a/bluetooth/ranging/aidl/Android.bp b/bluetooth/ranging/aidl/Android.bp index 9e53ef6cf15f01c08423a53764f402319bd0ac41..d0d1b900a28aed72f183f70e7bec3bf753bddcd2 100644 --- a/bluetooth/ranging/aidl/Android.bp +++ b/bluetooth/ranging/aidl/Android.bp @@ -36,4 +36,12 @@ aidl_interface { min_sdk_version: "33", }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + } diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/.hash b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/.hash new file mode 100644 index 0000000000000000000000000000000000000000..b0e0cfda257f34124b757a269f8b2a668054ccd8 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/.hash @@ -0,0 +1 @@ +d257bb74ef61a4cbb5854f4663604dd491b4a7bf diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/AddressType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/AddressType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fc417f0dab572713c20396a4d8c60746d92c12f0 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/AddressType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum AddressType { + PUBLIC = 0x00, + RANDOM = 0x01, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/BluetoothChannelSoundingParameters.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/BluetoothChannelSoundingParameters.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e8fefbe6383357f3e3c8965d6cdfe9b69cabcb03 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/BluetoothChannelSoundingParameters.aidl @@ -0,0 +1,49 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable BluetoothChannelSoundingParameters { + android.hardware.bluetooth.ranging.SessionType sessionType; + int aclHandle; + int l2capCid; + int realTimeProcedureDataAttHandle; + android.hardware.bluetooth.ranging.Role role; + boolean localSupportsSoundingPhaseBasedRanging; + boolean remoteSupportsSoundingPhaseBaseRanging; + android.hardware.bluetooth.ranging.Config config; + android.hardware.bluetooth.ranging.DeviceAddress address; + @nullable android.hardware.bluetooth.ranging.VendorSpecificData[] vendorSpecificData; + android.hardware.bluetooth.ranging.LocationType locationType; + android.hardware.bluetooth.ranging.SightType sightType; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8fc77aec31929e5ebe1dd82fa54e8f122284dddf --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl @@ -0,0 +1,48 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable ChannelSoudingRawData { + int procedureCounter; + int[] frequencyCompensation; + boolean aborted; + android.hardware.bluetooth.ranging.ChannelSoundingSingleSideData initiatorData; + android.hardware.bluetooth.ranging.ChannelSoundingSingleSideData reflectorData; + byte[] stepChannels; + @nullable int[] toaTodInitiator; + @nullable int[] todToaReflector; + android.hardware.bluetooth.ranging.ModeType[] stepMode; + byte numAntennaPaths; + long timestampMs; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..172ac5e9e83c921eb87b1c3b26d712dfc639cdb2 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl @@ -0,0 +1,46 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable ChannelSoundingSingleSideData { + @nullable android.hardware.bluetooth.ranging.StepTonePct[] stepTonePcts; + @nullable byte[] packetQuality; + @nullable byte[] packetRssiDbm; + @nullable android.hardware.bluetooth.ranging.Nadm[] packetNadm; + @nullable int[] measuredFreqOffset; + @nullable android.hardware.bluetooth.ranging.ComplexNumber[] packetPct1; + @nullable android.hardware.bluetooth.ranging.ComplexNumber[] packetPct2; + byte referencePowerDbm; + @nullable byte[] vendorSpecificCsSingleSidedata; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ComplexNumber.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ComplexNumber.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4d5ac213ee79dc4c75df65758590980db045ea8d --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ComplexNumber.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable ComplexNumber { + double real; + double imaginary; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Config.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Config.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c9ac99181b801a0d81ed8187539902f7e2860a09 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Config.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable Config { + android.hardware.bluetooth.ranging.ModeType modeType; + android.hardware.bluetooth.ranging.SubModeType subModeType; + android.hardware.bluetooth.ranging.RttType rttType; + byte[10] channelMap; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/CsSecurityLevel.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/CsSecurityLevel.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6a31547d879a119e4461bf51cb5d2777860aa31a --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/CsSecurityLevel.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum CsSecurityLevel { + NOT_SUPPORTED = 0x00, + ONE = 0x01, + TWO = 0x02, + THREE = 0x03, + FOUR = 0x04, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/DeviceAddress.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/DeviceAddress.aidl new file mode 100644 index 0000000000000000000000000000000000000000..69cad5d63289925e7de0f54cc48783721f9680a3 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/DeviceAddress.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable DeviceAddress { + android.hardware.bluetooth.ranging.AddressType addressType; + byte[6] address; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSounding.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSounding.aidl new file mode 100644 index 0000000000000000000000000000000000000000..004a48299e8b3f89bfa6e137918c5cf13cebe346 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSounding.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +interface IBluetoothChannelSounding { + @nullable android.hardware.bluetooth.ranging.VendorSpecificData[] getVendorSpecificData(); + @nullable android.hardware.bluetooth.ranging.SessionType[] getSupportedSessionTypes(); + android.hardware.bluetooth.ranging.CsSecurityLevel getMaxSupportedCsSecurityLevel(); + @nullable android.hardware.bluetooth.ranging.IBluetoothChannelSoundingSession openSession(in android.hardware.bluetooth.ranging.BluetoothChannelSoundingParameters params, in android.hardware.bluetooth.ranging.IBluetoothChannelSoundingSessionCallback callback); +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSession.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSession.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9f691b4710a9797e987db3ca660171d9fdc1fe57 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSession.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +interface IBluetoothChannelSoundingSession { + @nullable android.hardware.bluetooth.ranging.VendorSpecificData[] getVendorSpecificReplies(); + android.hardware.bluetooth.ranging.ResultType[] getSupportedResultTypes(); + boolean isAbortedProcedureRequired(); + void writeRawData(in android.hardware.bluetooth.ranging.ChannelSoudingRawData rawData); + void close(android.hardware.bluetooth.ranging.Reason reason); +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSessionCallback.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSessionCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d6622de09d78d1ace4dff32d54d1f485ef0f0a29 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/IBluetoothChannelSoundingSessionCallback.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +interface IBluetoothChannelSoundingSessionCallback { + void onOpened(android.hardware.bluetooth.ranging.Reason reason); + void onOpenFailed(android.hardware.bluetooth.ranging.Reason reason); + void onResult(in android.hardware.bluetooth.ranging.RangingResult result); + void onClose(android.hardware.bluetooth.ranging.Reason reason); + void onCloseFailed(android.hardware.bluetooth.ranging.Reason reason); +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/LocationType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/LocationType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d95af268c937f1f0ce21e3e42a4e6c880ef40b2e --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/LocationType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="byte") @VintfStability +enum LocationType { + UNKNOWN = 0x00, + INDOOR = 0x01, + OUTDOOR = 0x02, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ModeType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ModeType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1e8ae910377213f8e7ab42e9b8855356992511fe --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ModeType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="byte") @VintfStability +enum ModeType { + ZERO = 0x00, + ONE = 0x01, + TWO = 0x02, + THREE = 0x03, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Nadm.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Nadm.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a0aa47b16d217ab1caf6db535f7d126a59875a11 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Nadm.aidl @@ -0,0 +1,45 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="byte") @VintfStability +enum Nadm { + ATTACK_IS_EXTREMELY_UNLIKELY = 0x00, + ATTACK_IS_VERY_UNLIKELY = 0x01, + ATTACK_IS_UNLIKELY = 0x02, + ATTACK_IS_POSSIBLE = 0x03, + ATTACK_IS_LIKELY = 0x04, + ATTACK_IS_VERY_LIKELY = 0x05, + ATTACK_IS_EXTREMELY_LIKELY = 0x06, + UNKNOWN = 0xFFu8, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RangingResult.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RangingResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d092b806289d2cfd9418735cd5ab20bcf4db97b1 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RangingResult.aidl @@ -0,0 +1,48 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable RangingResult { + double resultMeters; + double errorMeters; + double azimuthDegrees; + double errorAzimuthDegrees; + double altitudeDegrees; + double errorAltitudeDegrees; + double delaySpreadMeters; + byte confidenceLevel; + android.hardware.bluetooth.ranging.Nadm detectedAttackLevel; + double velocityMetersPerSecond; + @nullable byte[] vendorSpecificCsRangingResultsData; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Reason.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Reason.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ddd44fe90bb2b0e6305859f58e59dfb5d8095650 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Reason.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum Reason { + LOCAL_STACK_REQUEST, + HAL_INITIATED, + HARDWARE_INITIATED, + ERROR_INVALID_PARAMETER, + ERROR_UNKNOWN, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ResultType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ResultType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b3e098cc6d55653d5c0ff88b1258dec0f6c11d49 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/ResultType.aidl @@ -0,0 +1,47 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum ResultType { + RESULT_METERS = 0x00, + ERROR_METERS = 0x01, + AZIMUTH_DEGREES = 0x02, + ERROR_AZIMUTH_DEGREES = 0x03, + ALTITUDE_DEGREES = 0x04, + ERROR_ALTITUDE_DEGREES = 0x05, + DELAY_SPREAD_METERS = 0x06, + CONFIDENCE_LEVEL = 0x07, + SECURITY_LEVEL = 0x08, + VELOCITY = 0x09, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Role.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Role.aidl new file mode 100644 index 0000000000000000000000000000000000000000..61ee1aa432f3842e6f31d795b8d47c61fa6fcbd2 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/Role.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum Role { + INITIATOR = 0, + REFLECTOR = 1, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RttType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RttType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e662c07c2b5559d6cb869245d6c3e153a19bd902 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/RttType.aidl @@ -0,0 +1,44 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum RttType { + AA_COARSE = 0x00, + WITH_32_BIT_SOUNDING_SEQUENCE = 0x01, + WITH_96_BIT_SOUNDING_SEQUENCE = 0x02, + WITH_32_BIT_RANDOM_SEQUENCE = 0x03, + WITH_64_BIT_RANDOM_SEQUENCE = 0x04, + WITH_96_BIT_RANDOM_SEQUENCE = 0x05, + WITH_128_BIT_RANDOM_SEQUENCE = 0x06, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SessionType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SessionType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d43022f023a610278a4cac6efc7db4b3052c9dd2 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SessionType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="int") @VintfStability +enum SessionType { + SOFTWARE_STACK_DATA_PARSING = 0, + HARDWARE_OFFLOAD_DATA_PARSING = 1, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SightType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SightType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6e96ba4beada8f48fe13e11989544386d932ca9d --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SightType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="byte") @VintfStability +enum SightType { + UNKNOWN = 0x00, + LINE_OF_SIGHT = 0x01, + NON_LINE_OF_SIGHT = 0x02, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/StepTonePct.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/StepTonePct.aidl new file mode 100644 index 0000000000000000000000000000000000000000..412574856eac49c78ea23623d56b3b8257c63515 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/StepTonePct.aidl @@ -0,0 +1,53 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable StepTonePct { + List tonePcts; + byte[] toneQualityIndicator; + byte toneExtensionAntennaIndex; + const int TONE_QUALITY_GOOD = 0; + const int TONE_QUALITY_MEDIUM = 1; + const int TONE_QUALITY_LOW = 2; + const int TONE_QUALITY_UNAVAILABLE = 3; + const int EXTENSION_SLOT_NONE = 0; + const int EXTENSION_SLOT_TONE_NOT_EXPECTED_TO_BE_PRESENT = 1; + const int EXTENSION_SLOT_TONE_EXPECTED_TO_BE_PRESENT = 2; + const int EXTENSION_SLOT_SHIFT_AMOUNT = 4; + const byte TONE_EXTENSION_ANTENNA_1 = 0x0; + const byte TONE_EXTENSION_ANTENNA_2 = 0x1; + const byte TONE_EXTENSION_ANTENNA_3 = 0x2; + const byte TONE_EXTENSION_ANTENNA_4 = 0x3; + const byte TONE_EXTENSION_UNUSED = 0xFFu8; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SubModeType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SubModeType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b72a97d090e80323c371be2c9c745b96648c30af --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/SubModeType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@Backing(type="byte") @VintfStability +enum SubModeType { + ONE = 0x01, + TWO = 0x02, + THREE = 0x03, + UNUSED = 0xffu8, +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/VendorSpecificData.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/VendorSpecificData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..13bf69609237cd36d9afce25032a8d984ad6a2c1 --- /dev/null +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/1/android/hardware/bluetooth/ranging/VendorSpecificData.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.ranging; +@VintfStability +parcelable VendorSpecificData { + byte[16] characteristicUuid; + byte[] opaqueValue; +} diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl index e7fad4d01bb100391e9effe197d6b755a42e3dea..8fc77aec31929e5ebe1dd82fa54e8f122284dddf 100644 --- a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl @@ -35,6 +35,7 @@ package android.hardware.bluetooth.ranging; @VintfStability parcelable ChannelSoudingRawData { int procedureCounter; + int[] frequencyCompensation; boolean aborted; android.hardware.bluetooth.ranging.ChannelSoundingSingleSideData initiatorData; android.hardware.bluetooth.ranging.ChannelSoundingSingleSideData reflectorData; diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl index 9fe85da874933c350dcedbcd674c7cec73d8b02a..172ac5e9e83c921eb87b1c3b26d712dfc639cdb2 100644 --- a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl @@ -34,12 +34,13 @@ package android.hardware.bluetooth.ranging; @VintfStability parcelable ChannelSoundingSingleSideData { - @nullable List stepTonePcts; + @nullable android.hardware.bluetooth.ranging.StepTonePct[] stepTonePcts; @nullable byte[] packetQuality; @nullable byte[] packetRssiDbm; @nullable android.hardware.bluetooth.ranging.Nadm[] packetNadm; - @nullable List packetPct1; - @nullable List packetPct2; + @nullable int[] measuredFreqOffset; + @nullable android.hardware.bluetooth.ranging.ComplexNumber[] packetPct1; + @nullable android.hardware.bluetooth.ranging.ComplexNumber[] packetPct2; byte referencePowerDbm; @nullable byte[] vendorSpecificCsSingleSidedata; } diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ModeType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ModeType.aidl index 75cdabca07358ca7dc00e1d9182f4bd1690a0fa0..1e8ae910377213f8e7ab42e9b8855356992511fe 100644 --- a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ModeType.aidl +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/ModeType.aidl @@ -32,7 +32,7 @@ // later when a module using the interface is updated, e.g., Mainline modules. package android.hardware.bluetooth.ranging; -@Backing(type="int") @VintfStability +@Backing(type="byte") @VintfStability enum ModeType { ZERO = 0x00, ONE = 0x01, diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/StepTonePct.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/StepTonePct.aidl index a51ba3790a42fd332b6f3b3237c2beea5137d21c..412574856eac49c78ea23623d56b3b8257c63515 100644 --- a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/StepTonePct.aidl +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/StepTonePct.aidl @@ -36,6 +36,7 @@ package android.hardware.bluetooth.ranging; parcelable StepTonePct { List tonePcts; byte[] toneQualityIndicator; + byte toneExtensionAntennaIndex; const int TONE_QUALITY_GOOD = 0; const int TONE_QUALITY_MEDIUM = 1; const int TONE_QUALITY_LOW = 2; @@ -44,4 +45,9 @@ parcelable StepTonePct { const int EXTENSION_SLOT_TONE_NOT_EXPECTED_TO_BE_PRESENT = 1; const int EXTENSION_SLOT_TONE_EXPECTED_TO_BE_PRESENT = 2; const int EXTENSION_SLOT_SHIFT_AMOUNT = 4; + const byte TONE_EXTENSION_ANTENNA_1 = 0x0; + const byte TONE_EXTENSION_ANTENNA_2 = 0x1; + const byte TONE_EXTENSION_ANTENNA_3 = 0x2; + const byte TONE_EXTENSION_ANTENNA_4 = 0x3; + const byte TONE_EXTENSION_UNUSED = 0xFFu8; } diff --git a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/SubModeType.aidl b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/SubModeType.aidl index f660c91741cd84bc5045d6ea2f5f83c39d87e11c..b72a97d090e80323c371be2c9c745b96648c30af 100644 --- a/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/SubModeType.aidl +++ b/bluetooth/ranging/aidl/aidl_api/android.hardware.bluetooth.ranging/current/android/hardware/bluetooth/ranging/SubModeType.aidl @@ -32,10 +32,10 @@ // later when a module using the interface is updated, e.g., Mainline modules. package android.hardware.bluetooth.ranging; -@Backing(type="int") @VintfStability +@Backing(type="byte") @VintfStability enum SubModeType { ONE = 0x01, TWO = 0x02, THREE = 0x03, - UNUSED = 0xff, + UNUSED = 0xffu8, } diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/AddressType.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/AddressType.aidl index bd032135ef4dcd6243bfabed144f4d4c252f6da3..499d42f98effae2a7a71dfcd08a4adb924605c0d 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/AddressType.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/AddressType.aidl @@ -16,9 +16,13 @@ package android.hardware.bluetooth.ranging; +/** + * Same as the BLE address type, except anonymous isn't supported for ranging. + */ @VintfStability @Backing(type="int") enum AddressType { PUBLIC = 0x00, + /* Still may be fixed on the device and is not randomized on boot */ RANDOM = 0x01, } diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl index 3c8a62fc25096c21b3a0858d5be1fbbf4b754707..78ce4f49256a17d86acdbb47b0c542c3d5e09c86 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoudingRawData.aidl @@ -21,6 +21,9 @@ import android.hardware.bluetooth.ranging.ModeType; /** * Raw ranging data of Channel Sounding. + * See Channel Sounding CR_PR 3.1.10 and Channel Sounding HCI Updates CR_PR 3.1.23 for details. + * + * Specification: https://www.bluetooth.com/specifications/specs/channel-sounding-cr-pr/ */ @VintfStability parcelable ChannelSoudingRawData { @@ -28,6 +31,11 @@ parcelable ChannelSoudingRawData { * Procedure counter of the CS procedure. */ int procedureCounter; + /** + * Frequency Compensation indicates fractional frequency + * offset (FFO) value of initiator, in 0.01ppm + */ + int[] frequencyCompensation; /** * Indicate if the procedure aborted. */ diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl index 2c3f20152d4d49041fed32ff7758dec34053cb74..9c4b47250be3e20840bb176ae0faa8d9b8134bda 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ChannelSoundingSingleSideData.aidl @@ -21,14 +21,17 @@ import android.hardware.bluetooth.ranging.Nadm; import android.hardware.bluetooth.ranging.StepTonePct; /** - * Raw ranging data of Channel Sounding from either Initator or Reflector + * Raw ranging data of Channel Sounding from either Initator or Reflector. + * See Channel Sounding CR_PR 3.1.10 and Channel Sounding HCI Updates CR_PR 3.1.23 for details. + * + * Specification: https://www.bluetooth.com/specifications/specs/channel-sounding-cr-pr/ */ @VintfStability parcelable ChannelSoundingSingleSideData { /** * PCT (complex value) measured from mode-2 or mode-3 steps in a CS procedure (in time order). */ - @nullable List stepTonePcts; + @nullable StepTonePct[] stepTonePcts; /** * Packet Quality from mode-1 or mode-3 steps in a CS procedures (in time order). */ @@ -41,12 +44,16 @@ parcelable ChannelSoundingSingleSideData { * Packet NADM of mode-1 or mode-3 step data for attack detection. */ @nullable Nadm[] packetNadm; + /** + * Measured Frequency Offset from mode 0, relative to the remote device, in 0.01ppm + */ + @nullable int[] measuredFreqOffset; /** * Packet_PCT1 or packet_PCT2 of mode-1 or mode-3, if sounding sequence is used and sounding * phase-based ranging is supported. */ - @nullable List packetPct1; - @nullable List packetPct2; + @nullable ComplexNumber[] packetPct1; + @nullable ComplexNumber[] packetPct2; /** * Reference power level (-127 to 20) of the signal in the procedure, in dBm. */ diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ModeType.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ModeType.aidl index 2058ae8411464e2d171b9a163a35128d3762c8fc..3a727aa353015ad985e0e55a1a4f0bf96ca0e419 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ModeType.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/ModeType.aidl @@ -17,7 +17,7 @@ package android.hardware.bluetooth.ranging; @VintfStability -@Backing(type="int") +@Backing(type="byte") enum ModeType { ZERO = 0x00, ONE = 0x01, diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/Nadm.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/Nadm.aidl index 3cfb22f464b6136704fa743a6c344755147144e0..74cf7317c9b40b6c5ab3c5ff152a38b1d6fa30fd 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/Nadm.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/Nadm.aidl @@ -16,6 +16,12 @@ package android.hardware.bluetooth.ranging; +/** + * Normalized Attack Detector Metric. + * See Channel Sounding CR_PR, 3.13.24 for details. + * + * Specification: https://www.bluetooth.com/specifications/specs/channel-sounding-cr-pr/ + */ @VintfStability @Backing(type="byte") enum Nadm { @@ -26,5 +32,7 @@ enum Nadm { ATTACK_IS_LIKELY = 0x04, ATTACK_IS_VERY_LIKELY = 0x05, ATTACK_IS_EXTREMELY_LIKELY = 0x06, + /* If a device is unable to determine a NADM value, then it shall report a NADM value of Unknown + */ UNKNOWN = 0xFFu8, } diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/StepTonePct.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/StepTonePct.aidl index 99c6d65e6817310ce6012d0847d3b19255717f77..46508614eeeab8e5edd2e7d7437cb5a5741a7320 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/StepTonePct.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/StepTonePct.aidl @@ -23,6 +23,10 @@ import android.hardware.bluetooth.ranging.ComplexNumber; */ @VintfStability parcelable StepTonePct { + /** + * PCT measured from mode-2 or mode-3 steps + * (in ascending order of antenna position with tone extension data at the end). + */ List tonePcts; const int TONE_QUALITY_GOOD = 0; const int TONE_QUALITY_MEDIUM = 1; @@ -52,4 +56,20 @@ parcelable StepTonePct { * See: https://bluetooth.com/specifications/specs/channel-sounding-cr-pr/ */ byte[] toneQualityIndicator; + + const byte TONE_EXTENSION_ANTENNA_1 = 0x0; + const byte TONE_EXTENSION_ANTENNA_2 = 0x1; + const byte TONE_EXTENSION_ANTENNA_3 = 0x2; + const byte TONE_EXTENSION_ANTENNA_4 = 0x3; + const byte TONE_EXTENSION_UNUSED = 0xFFu8; + /** + * Tone Extension Antenna Index indicates the Antenna position used in tone extension slot + * + * 0x00 = A1 + * 0x01 = A2 + * 0x02 = A3 + * 0x03 = A4 + * 0xFF = Tone extension not used + */ + byte toneExtensionAntennaIndex; } diff --git a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/SubModeType.aidl b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/SubModeType.aidl index ca9bfcb8361edb84d7db14716630fc7d48ea4a55..b775002eabff46d1174c71759d78876e1158e304 100644 --- a/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/SubModeType.aidl +++ b/bluetooth/ranging/aidl/android/hardware/bluetooth/ranging/SubModeType.aidl @@ -17,10 +17,10 @@ package android.hardware.bluetooth.ranging; @VintfStability -@Backing(type="int") +@Backing(type="byte") enum SubModeType { ONE = 0x01, TWO = 0x02, THREE = 0x03, - UNUSED = 0xff, + UNUSED = 0xffu8, } diff --git a/bluetooth/ranging/aidl/default/service.cpp b/bluetooth/ranging/aidl/default/service.cpp index 83e539ec4f1dac95e741ff25d481c2cb08f3d91e..35a3f559aaf8f055f26882281289b8a416276fc5 100644 --- a/bluetooth/ranging/aidl/default/service.cpp +++ b/bluetooth/ranging/aidl/default/service.cpp @@ -37,12 +37,16 @@ int main(int /* argc */, char** /* argv */) { ndk::SharedRefBase::make(); std::string instance = std::string() + BluetoothChannelSounding::descriptor + "/default"; - auto result = - AServiceManager_addService(service->asBinder().get(), instance.c_str()); - if (result == STATUS_OK) { - ABinderProcess_joinThreadPool(); + if (AServiceManager_isDeclared(instance.c_str())) { + auto result = + AServiceManager_addService(service->asBinder().get(), instance.c_str()); + if (result != STATUS_OK) { + ALOGE("Could not register as a service!"); + } } else { - ALOGE("Could not register as a service!"); + ALOGE("Could not register as a service because it's not declared."); } + // Keep running + ABinderProcess_joinThreadPool(); return 0; } diff --git a/broadcastradio/1.0/vts/functional/VtsHalBroadcastradioV1_0TargetTest.cpp b/broadcastradio/1.0/vts/functional/VtsHalBroadcastradioV1_0TargetTest.cpp index cac3dd0eaec2d109ae9491de47d68d1884c61daa..dec1f1781d680a083ff6e35c35ed55719cd48c5b 100644 --- a/broadcastradio/1.0/vts/functional/VtsHalBroadcastradioV1_0TargetTest.cpp +++ b/broadcastradio/1.0/vts/functional/VtsHalBroadcastradioV1_0TargetTest.cpp @@ -52,10 +52,9 @@ using ::android::hardware::broadcastradio::V1_0::Properties; using ::android::hardware::broadcastradio::V1_0::Result; using ::android::hardware::broadcastradio::V1_0::vts::RadioClassFromString; -#define RETURN_IF_SKIPPED \ - if (skipped) { \ - std::cout << "[ SKIPPED ] This device class is not supported. " << std::endl; \ - return; \ +#define RETURN_IF_SKIPPED \ + if (skipped) { \ + GTEST_SKIP() << "This device class is not supported."; \ } // The main test class for Broadcast Radio HIDL HAL. @@ -734,4 +733,4 @@ INSTANTIATE_TEST_CASE_P( testing::Combine(testing::ValuesIn(android::hardware::getAllHalInstanceNames( IBroadcastRadioFactory::descriptor)), ::testing::Values("AM_FM", "SAT", "DT")), - android::hardware::PrintInstanceTupleNameToString<>); \ No newline at end of file + android::hardware::PrintInstanceTupleNameToString<>); diff --git a/broadcastradio/1.1/vts/functional/VtsHalBroadcastradioV1_1TargetTest.cpp b/broadcastradio/1.1/vts/functional/VtsHalBroadcastradioV1_1TargetTest.cpp index caf6cbd9829ffddf52cf0551791ff9b5d9379d0c..b54e9d8d3bc0e01b770094aa01d5cf5aa2ded281 100644 --- a/broadcastradio/1.1/vts/functional/VtsHalBroadcastradioV1_1TargetTest.cpp +++ b/broadcastradio/1.1/vts/functional/VtsHalBroadcastradioV1_1TargetTest.cpp @@ -73,10 +73,6 @@ static constexpr ProgramType kStandardProgramTypes[] = { ProgramType::AM, ProgramType::FM, ProgramType::AM_HD, ProgramType::FM_HD, ProgramType::DAB, ProgramType::DRMO, ProgramType::SXM}; -static void printSkipped(std::string msg) { - std::cout << "[ SKIPPED ] " << msg << std::endl; -} - struct TunerCallbackMock : public ITunerCallback { TunerCallbackMock() { EXPECT_CALL(*this, hardwareFailure()).Times(0); } @@ -106,7 +102,6 @@ class BroadcastRadioHalTest bool getProgramList(std::function& list)> cb); Class radioClass; - bool skipped = false; sp mRadioModule; sp mTuner; @@ -137,9 +132,7 @@ void BroadcastRadioHalTest::SetUp() { ASSERT_TRUE(onConnect.waitForCall(kConnectModuleTimeout)); if (connectResult == Result::INVALID_ARGUMENTS) { - printSkipped("This device class is not supported."); - skipped = true; - return; + GTEST_SKIP() << "This device class is not supported."; } ASSERT_EQ(connectResult, Result::OK); ASSERT_NE(nullptr, mRadioModule.get()); @@ -285,8 +278,6 @@ bool BroadcastRadioHalTest::getProgramList( * might fail. */ TEST_P(BroadcastRadioHalTest, OpenTunerTwice) { - if (skipped) return; - ASSERT_TRUE(openTuner()); auto secondTuner = mTuner; @@ -306,7 +297,6 @@ TEST_P(BroadcastRadioHalTest, OpenTunerTwice) { * - getProgramInformation_1_1 returns the same selector as returned in tuneComplete_1_1 call. */ TEST_P(BroadcastRadioHalTest, TuneFromProgramList) { - if (skipped) return; ASSERT_TRUE(openTuner()); ProgramInfo firstProgram; @@ -320,8 +310,7 @@ TEST_P(BroadcastRadioHalTest, TuneFromProgramList) { } while (nextBand()); if (HasFailure()) return; if (!foundAny) { - printSkipped("Program list is empty."); - return; + GTEST_SKIP() << "Program list is empty."; } ProgramInfo infoCb; @@ -356,7 +345,6 @@ TEST_P(BroadcastRadioHalTest, TuneFromProgramList) { * identifier for program types other than VENDORn. */ TEST_P(BroadcastRadioHalTest, TuneFailsForPrimaryVendor) { - if (skipped) return; ASSERT_TRUE(openTuner()); for (auto ptype : kStandardProgramTypes) { @@ -377,7 +365,6 @@ TEST_P(BroadcastRadioHalTest, TuneFailsForPrimaryVendor) { * - tuneByProgramSelector fails with INVALID_ARGUMENT when unknown program type is passed. */ TEST_P(BroadcastRadioHalTest, TuneFailsForUnknownProgram) { - if (skipped) return; ASSERT_TRUE(openTuner()); // Program type is 1-based, so 0 will be always invalid. @@ -393,7 +380,6 @@ TEST_P(BroadcastRadioHalTest, TuneFailsForUnknownProgram) { * - cancelAnnouncement succeeds either when there is an announcement or there is none. */ TEST_P(BroadcastRadioHalTest, CancelAnnouncement) { - if (skipped) return; ASSERT_TRUE(openTuner()); auto hidlResult = mTuner->cancelAnnouncement(); @@ -407,8 +393,6 @@ TEST_P(BroadcastRadioHalTest, CancelAnnouncement) { * - getImage call handles argument 0 gracefully. */ TEST_P(BroadcastRadioHalTest, GetNoImage) { - if (skipped) return; - size_t len = 0; auto hidlResult = mRadioModule->getImage(0, [&](hidl_vec rawImage) { len = rawImage.size(); }); @@ -425,7 +409,6 @@ TEST_P(BroadcastRadioHalTest, GetNoImage) { * - images are available for getImage call. */ TEST_P(BroadcastRadioHalTest, OobImagesOnly) { - if (skipped) return; ASSERT_TRUE(openTuner()); std::vector imageIds; @@ -446,8 +429,7 @@ TEST_P(BroadcastRadioHalTest, OobImagesOnly) { } while (nextBand()); if (imageIds.size() == 0) { - printSkipped("No images found"); - return; + GTEST_SKIP() << "No images found"; } for (auto id : imageIds) { @@ -469,7 +451,6 @@ TEST_P(BroadcastRadioHalTest, OobImagesOnly) { * - setAnalogForced results either with INVALID_STATE, or isAnalogForced replying the same. */ TEST_P(BroadcastRadioHalTest, AnalogForcedSwitch) { - if (skipped) return; ASSERT_TRUE(openTuner()); bool forced; @@ -584,7 +565,6 @@ static void verifyIdentifier(const ProgramIdentifier& id) { * - values of ProgramIdentifier match their definitions at IdentifierType. */ TEST_P(BroadcastRadioHalTest, VerifyIdentifiersFormat) { - if (skipped) return; ASSERT_TRUE(openTuner()); do { diff --git a/broadcastradio/TEST_MAPPING b/broadcastradio/TEST_MAPPING new file mode 100644 index 0000000000000000000000000000000000000000..2604fb3b54b5dfd0addc91f285a00c2d486d608d --- /dev/null +++ b/broadcastradio/TEST_MAPPING @@ -0,0 +1,18 @@ +{ + "presubmit": [ + { + "name": "broadcastradio_utils_aidl_test" + }, + { + "name": "DefaultBroadcastRadioHalTestCase" + }, + { + "name": "android.hardware.broadcastradio@common-utils-tests" + } + ], + "auto-presubmit": [ + { + "name": "VtsHalBroadcastradioAidlTargetTest" + } + ] +} diff --git a/broadcastradio/aidl/Android.bp b/broadcastradio/aidl/Android.bp index e8bc5eb6d8225b04be43e87274fd92dd3b9e1878..187f2830eb7d299cc49b3026417f85b149a3a316 100644 --- a/broadcastradio/aidl/Android.bp +++ b/broadcastradio/aidl/Android.bp @@ -42,7 +42,12 @@ aidl_interface { version: "1", imports: [], }, + { + version: "2", + imports: [], + }, + ], - frozen: false, + frozen: true, } diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/.hash b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/.hash new file mode 100644 index 0000000000000000000000000000000000000000..747c764e12a48404ffcdd911a739a1f1ea3d741a --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/.hash @@ -0,0 +1 @@ +bff68a8bc8b7cc191ab62bee10f7df8e79494467 diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmBandRange.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmBandRange.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ca511aa13a93decc8340329d678d2bf565ece249 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmBandRange.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable AmFmBandRange { + int lowerBound; + int upperBound; + int spacing; + int seekSpacing; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmRegionConfig.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmRegionConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b96def32f80fb080606dea723dc48e4b7da601f4 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AmFmRegionConfig.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable AmFmRegionConfig { + android.hardware.broadcastradio.AmFmBandRange[] ranges; + int fmDeemphasis; + int fmRds; + const int DEEMPHASIS_D50 = (1 << 0) /* 1 */; + const int DEEMPHASIS_D75 = (1 << 1) /* 2 */; + const int RDS = (1 << 0) /* 1 */; + const int RBDS = (1 << 1) /* 2 */; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Announcement.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Announcement.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bbdd86f7dc4cb18df0aa917b3c25b8d46d2556d0 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Announcement.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable Announcement { + android.hardware.broadcastradio.ProgramSelector selector; + android.hardware.broadcastradio.AnnouncementType type = android.hardware.broadcastradio.AnnouncementType.INVALID; + android.hardware.broadcastradio.VendorKeyValue[] vendorInfo; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AnnouncementType.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AnnouncementType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1d187fe0b22ae2ef1037d48645679993637ce163 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/AnnouncementType.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@Backing(type="byte") @JavaDerive(equals=true, toString=true) @VintfStability +enum AnnouncementType { + INVALID = 0, + EMERGENCY = 1, + WARNING, + TRAFFIC, + WEATHER, + NEWS, + EVENT, + SPORT, + MISC, +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ConfigFlag.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ConfigFlag.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d6d33bca50ce219b3e4e62904e14ba0adb7e1319 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ConfigFlag.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@Backing(type="int") @JavaDerive(equals=true, toString=true) @VintfStability +enum ConfigFlag { + FORCE_MONO = 1, + /** + * @deprecated Use {link #FORCE_ANALOG_FM} instead + */ + FORCE_ANALOG, + FORCE_DIGITAL, + RDS_AF, + RDS_REG, + DAB_DAB_LINKING, + DAB_FM_LINKING, + DAB_DAB_SOFT_LINKING, + DAB_FM_SOFT_LINKING, + FORCE_ANALOG_FM, + FORCE_ANALOG_AM, +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/DabTableEntry.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/DabTableEntry.aidl new file mode 100644 index 0000000000000000000000000000000000000000..162f4abd6233dea1d6018813723e7ac17f3b8abb --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/DabTableEntry.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable DabTableEntry { + String label; + int frequencyKhz; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/HdSubChannel.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/HdSubChannel.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dd0613459ce6d1e49cf1d359a60bb7b98f64c690 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/HdSubChannel.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@Backing(type="int") @JavaDerive(equals=true, toString=true) @VintfStability +enum HdSubChannel { + HD1 = 0, + HD2 = 1, + HD3 = 2, + HD4 = 3, + HD5 = 4, + HD6 = 5, + HD7 = 6, + HD8 = 7, +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IAnnouncementListener.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IAnnouncementListener.aidl new file mode 100644 index 0000000000000000000000000000000000000000..346af5807d5422602a81aa4169ef1873da8e125b --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IAnnouncementListener.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@VintfStability +interface IAnnouncementListener { + oneway void onListUpdated(in android.hardware.broadcastradio.Announcement[] announcements); +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IBroadcastRadio.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IBroadcastRadio.aidl new file mode 100644 index 0000000000000000000000000000000000000000..39eb04c105ebafc9d806b7221971d4511a1333be --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IBroadcastRadio.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@VintfStability +interface IBroadcastRadio { + android.hardware.broadcastradio.Properties getProperties(); + android.hardware.broadcastradio.AmFmRegionConfig getAmFmRegionConfig(in boolean full); + android.hardware.broadcastradio.DabTableEntry[] getDabRegionConfig(); + void setTunerCallback(in android.hardware.broadcastradio.ITunerCallback callback); + void unsetTunerCallback(); + void tune(in android.hardware.broadcastradio.ProgramSelector program); + void seek(in boolean directionUp, in boolean skipSubChannel); + void step(in boolean directionUp); + void cancel(); + void startProgramListUpdates(in android.hardware.broadcastradio.ProgramFilter filter); + void stopProgramListUpdates(); + boolean isConfigFlagSet(in android.hardware.broadcastradio.ConfigFlag flag); + void setConfigFlag(in android.hardware.broadcastradio.ConfigFlag flag, in boolean value); + android.hardware.broadcastradio.VendorKeyValue[] setParameters(in android.hardware.broadcastradio.VendorKeyValue[] parameters); + android.hardware.broadcastradio.VendorKeyValue[] getParameters(in String[] keys); + byte[] getImage(in int id); + android.hardware.broadcastradio.ICloseHandle registerAnnouncementListener(in android.hardware.broadcastradio.IAnnouncementListener listener, in android.hardware.broadcastradio.AnnouncementType[] enabled); + const int INVALID_IMAGE = 0; + const int ANTENNA_STATE_CHANGE_TIMEOUT_MS = 100; + const int LIST_COMPLETE_TIMEOUT_MS = 300000; + const int TUNER_TIMEOUT_MS = 30000; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ICloseHandle.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ICloseHandle.aidl new file mode 100644 index 0000000000000000000000000000000000000000..75e7f2a4c0ed6dc7fd2b49559e77edb021ea58bc --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ICloseHandle.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@VintfStability +interface ICloseHandle { + void close(); +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ITunerCallback.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ITunerCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f5badade468e4ca99edbe406796cfb4f3748451d --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ITunerCallback.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@VintfStability +interface ITunerCallback { + oneway void onTuneFailed(in android.hardware.broadcastradio.Result result, in android.hardware.broadcastradio.ProgramSelector selector); + oneway void onCurrentProgramInfoChanged(in android.hardware.broadcastradio.ProgramInfo info); + oneway void onProgramListUpdated(in android.hardware.broadcastradio.ProgramListChunk chunk); + oneway void onAntennaStateChange(in boolean connected); + oneway void onConfigFlagUpdated(in android.hardware.broadcastradio.ConfigFlag flag, in boolean value); + oneway void onParametersUpdated(in android.hardware.broadcastradio.VendorKeyValue[] parameters); +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IdentifierType.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IdentifierType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ed41af00bc84e51626d75d1656fb6c3fc9431e7e --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/IdentifierType.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@Backing(type="int") @JavaDerive(equals=true, toString=true) @VintfStability +enum IdentifierType { + VENDOR_START = 1000, + VENDOR_END = 1999, + INVALID = 0, + AMFM_FREQUENCY_KHZ, + RDS_PI, + HD_STATION_ID_EXT, + HD_STATION_NAME, + DAB_SID_EXT, + DAB_ENSEMBLE, + DAB_SCID, + DAB_FREQUENCY_KHZ, + DRMO_SERVICE_ID, + DRMO_FREQUENCY_KHZ, + /** + * @deprecated SiriusXM Satellite Radio is not supported. + */ + SXM_SERVICE_ID = (DRMO_FREQUENCY_KHZ + 2) /* 12 */, + /** + * @deprecated SiriusXM Satellite Radio is not supported. + */ + SXM_CHANNEL, + HD_STATION_LOCATION, +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Metadata.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Metadata.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b4a1efa488bda78298cd08326fea26ccb13b0f1d --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Metadata.aidl @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +union Metadata { + String rdsPs; + int rdsPty; + int rbdsPty; + String rdsRt; + String songTitle; + String songArtist; + String songAlbum; + int stationIcon; + int albumArt; + String programName; + String dabEnsembleName; + String dabEnsembleNameShort; + String dabServiceName; + String dabServiceNameShort; + String dabComponentName; + String dabComponentNameShort; + String genre; + String commentShortDescription; + String commentActualText; + String commercial; + String[] ufids; + String hdStationNameShort; + String hdStationNameLong; + int hdSubChannelsAvailable; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramFilter.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramFilter.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9edeb8d5c65525d8988f32ff21f1fca11815d469 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramFilter.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ProgramFilter { + android.hardware.broadcastradio.IdentifierType[] identifierTypes; + android.hardware.broadcastradio.ProgramIdentifier[] identifiers; + boolean includeCategories; + boolean excludeModifications; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramIdentifier.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramIdentifier.aidl new file mode 100644 index 0000000000000000000000000000000000000000..66763508ad9a0aced3f0bda48d2924e0bdac4658 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramIdentifier.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ProgramIdentifier { + android.hardware.broadcastradio.IdentifierType type = android.hardware.broadcastradio.IdentifierType.INVALID; + long value; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramInfo.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..997cdd7dd0ddf63b49840d84184277d24a9a35b9 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramInfo.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ProgramInfo { + android.hardware.broadcastradio.ProgramSelector selector; + android.hardware.broadcastradio.ProgramIdentifier logicallyTunedTo; + android.hardware.broadcastradio.ProgramIdentifier physicallyTunedTo; + @nullable android.hardware.broadcastradio.ProgramIdentifier[] relatedContent; + int infoFlags; + int signalQuality; + android.hardware.broadcastradio.Metadata[] metadata; + android.hardware.broadcastradio.VendorKeyValue[] vendorInfo; + const int FLAG_LIVE = (1 << 0) /* 1 */; + const int FLAG_MUTED = (1 << 1) /* 2 */; + const int FLAG_TRAFFIC_PROGRAM = (1 << 2) /* 4 */; + const int FLAG_TRAFFIC_ANNOUNCEMENT = (1 << 3) /* 8 */; + const int FLAG_TUNABLE = (1 << 4) /* 16 */; + const int FLAG_STEREO = (1 << 5) /* 32 */; + const int FLAG_SIGNAL_ACQUISITION = (1 << 6) /* 64 */; + const int FLAG_HD_SIS_ACQUISITION = (1 << 7) /* 128 */; + const int FLAG_HD_AUDIO_ACQUISITION = (1 << 8) /* 256 */; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramListChunk.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramListChunk.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5d53b9930292eb70897f1631a395f1552a6f8b8c --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramListChunk.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ProgramListChunk { + boolean purge; + boolean complete; + android.hardware.broadcastradio.ProgramInfo[] modified; + @nullable android.hardware.broadcastradio.ProgramIdentifier[] removed; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramSelector.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramSelector.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9af1dc88809f9e1159851ca868b30b95aaa4f97a --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/ProgramSelector.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable ProgramSelector { + android.hardware.broadcastradio.ProgramIdentifier primaryId; + android.hardware.broadcastradio.ProgramIdentifier[] secondaryIds; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Properties.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Properties.aidl new file mode 100644 index 0000000000000000000000000000000000000000..643b819d8ab2415fcdf6d5a9512dcc7971db79d5 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Properties.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable Properties { + String maker; + String product; + String version; + String serial; + android.hardware.broadcastradio.IdentifierType[] supportedIdentifierTypes; + android.hardware.broadcastradio.VendorKeyValue[] vendorInfo; +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Result.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Result.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b0fc018cb74e3ae0881ade9e6a364d4ce551dbbc --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/Result.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@Backing(type="int") @JavaDerive(equals=true, toString=true) @VintfStability +enum Result { + OK = 0, + INTERNAL_ERROR, + INVALID_ARGUMENTS, + INVALID_STATE, + NOT_SUPPORTED, + TIMEOUT, + CANCELED, + UNKNOWN_ERROR, +} diff --git a/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/VendorKeyValue.aidl b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/VendorKeyValue.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3c6b19438f3dfccd17ef93d1c8744fe11e46be62 --- /dev/null +++ b/broadcastradio/aidl/aidl_api/android.hardware.broadcastradio/2/android/hardware/broadcastradio/VendorKeyValue.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.broadcastradio; +@JavaDerive(equals=true, toString=true) @VintfStability +parcelable VendorKeyValue { + String key; + String value; +} diff --git a/broadcastradio/aidl/android/hardware/broadcastradio/Metadata.aidl b/broadcastradio/aidl/android/hardware/broadcastradio/Metadata.aidl index 0ce967f0090a647a35e350f03a2641fb8a356dbd..f1800dca0a34898e30f3badd243cc7981a047dc5 100644 --- a/broadcastradio/aidl/android/hardware/broadcastradio/Metadata.aidl +++ b/broadcastradio/aidl/android/hardware/broadcastradio/Metadata.aidl @@ -86,7 +86,7 @@ union Metadata { /** * DAB ensemble name abbreviated (string). * - *

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

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

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

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

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

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

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

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

It can be <= 12 characters (see SY_IDD_1020s for more info). */ String hdStationNameShort; diff --git a/broadcastradio/aidl/default/Android.bp b/broadcastradio/aidl/default/Android.bp index 743365a07349f90da48906262a4b1f061632646b..d7bb7514b84c68dcc3833ec112fa0e74c88ac30c 100644 --- a/broadcastradio/aidl/default/Android.bp +++ b/broadcastradio/aidl/default/Android.bp @@ -26,11 +26,11 @@ package { cc_defaults { name: "BroadcastRadioHalDefaults", static_libs: [ + "android.hardware.broadcastradio-V2-ndk", "android.hardware.broadcastradio@common-utils-aidl-lib-V2", "android.hardware.broadcastradio@common-utils-lib", ], shared_libs: [ - "android.hardware.broadcastradio-V2-ndk", "libbase", "libbinder_ndk", "liblog", diff --git a/broadcastradio/aidl/default/test/Android.bp b/broadcastradio/aidl/default/test/Android.bp new file mode 100644 index 0000000000000000000000000000000000000000..a33fb703880a6b27e7cd5d03968c584d3d848467 --- /dev/null +++ b/broadcastradio/aidl/default/test/Android.bp @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package { + default_team: "trendy_team_aaos_framework", + default_applicable_licenses: ["Android-Apache-2.0"], +} + +cc_test { + name: "DefaultBroadcastRadioHalTestCase", + vendor: true, + srcs: ["*.cpp"], + static_libs: [ + "DefaultBroadcastRadioHal", + "libgtest", + "libgmock", + ], + shared_libs: [ + "libbase", + "libbinder_ndk", + "liblog", + "libutils", + ], + header_libs: [ + "IVehicleHardware", + ], + defaults: [ + "BroadcastRadioHalDefaults", + ], + test_suites: ["device-tests"], +} diff --git a/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp new file mode 100644 index 0000000000000000000000000000000000000000..78fcf27094185f48baf27a6072e8a06b083d61a6 --- /dev/null +++ b/broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp @@ -0,0 +1,517 @@ +/* + * 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 "MockBroadcastRadioCallback.h" + +#include +#include +#include + +#include +#include + +namespace aidl::android::hardware::broadcastradio { + +namespace { +using ::std::vector; + +constexpr uint32_t kAmFreq1 = 560u; +constexpr uint32_t kAmFreq2 = 680u; +constexpr uint32_t kAmHdFreq = 1170u; +constexpr uint64_t kAmHdSid = 0xB0000001u; +constexpr uint32_t kFmFreq1 = 94900u; +constexpr uint64_t kFmHdSid1 = 0xA0000001u; +constexpr uint64_t kFmHdSid2 = 0xA0000002u; +constexpr uint32_t kFmHdFreq1 = 98500u; +constexpr uint32_t kFmHdSubChannel0 = 0u; +constexpr uint32_t kFmHdSubChannel1 = 1u; +constexpr uint32_t kFmFreq2 = 99100u; +constexpr uint32_t kFmHdFreq2 = 101100u; + +const ProgramSelector kAmSel1 = utils::makeSelectorAmfm(kAmFreq1); +const ProgramSelector kAmSel2 = utils::makeSelectorAmfm(kAmFreq2); +const ProgramSelector kAmHdSel = utils::makeSelectorHd(kAmHdSid, kFmHdSubChannel0, kAmHdFreq); +const ProgramSelector kFmSel1 = utils::makeSelectorAmfm(kFmFreq1); +const ProgramSelector kFmSel2 = utils::makeSelectorAmfm(kFmFreq2); +const ProgramSelector kFmHdFreq1Sel1 = + utils::makeSelectorHd(kFmHdSid1, kFmHdSubChannel0, kFmHdFreq1); +const ProgramSelector kFmHdFreq1Sel2 = + utils::makeSelectorHd(kFmHdSid1, kFmHdSubChannel1, kFmHdFreq1); +const ProgramSelector kFmHdFreq2Sel1 = + utils::makeSelectorHd(kFmHdSid2, kFmHdSubChannel0, kFmHdFreq2); +const ProgramSelector kFmHdFreq2Sel2 = + utils::makeSelectorHd(kFmHdSid2, kFmHdSubChannel1, kFmHdFreq2); + +const VirtualRadio& getAmFmMockTestRadio() { + static VirtualRadio amFmRadioMockTestRadio( + "AM/FM radio mock for test", + { + {kAmSel1, "ProgramAm1", "ArtistAm1", "TitleAm1"}, + {kAmSel2, "ProgramAm2", "ArtistAm2", "TitleAm2"}, + {kFmSel1, "ProgramFm1", "ArtistFm1", "TitleFm1"}, + {kFmSel2, "ProgramFm2", "ArtistFm2", "TitleFm2"}, + {kAmHdSel, "ProgramAmHd1", "ArtistAmHd1", "TitleAmHd1"}, + {kFmHdFreq1Sel1, "ProgramFmHd1", "ArtistFmHd1", "TitleFmHd1"}, + {kFmHdFreq1Sel2, "ProgramFmHd2", "ArtistFmHd2", "TitleFmHd2"}, + {kFmHdFreq2Sel1, "ProgramFmHd3", "ArtistFmHd3", "TitleFmHd3"}, + {kFmHdFreq2Sel2, "ProgramFmHd4", "ArtistFmHd4", "TitleFmHd4"}, + }); + return amFmRadioMockTestRadio; +} + +int getSignalAcquisitionFlags(const ProgramInfo& info) { + return (info.infoFlags & + (ProgramInfo::FLAG_SIGNAL_ACQUISITION | ProgramInfo::FLAG_HD_SIS_ACQUISITION | + ProgramInfo::FLAG_HD_AUDIO_ACQUISITION)) >> + 6; +} + +} // namespace + +class DefaultBroadcastRadioHalTest : public testing::Test { + public: + void SetUp() override { + ::android::base::SetDefaultTag("BcRadioAidlDef.test"); + const VirtualRadio& amFmRadioMockTest = getAmFmMockTestRadio(); + mBroadcastRadioHal = ::ndk::SharedRefBase::make(amFmRadioMockTest); + mTunerCallback = ndk::SharedRefBase::make(); + } + + void TearDown() override { + mBroadcastRadioHal->unsetTunerCallback(); + EXPECT_FALSE(mTunerCallback->isTunerFailed()); + } + + void verifyUpdatedProgramInfo(const ProgramSelector& sel) { + ASSERT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); + ProgramInfo infoCb1 = mTunerCallback->getCurrentProgramInfo(); + mTunerCallback->reset(); + if (sel.primaryId.type == IdentifierType::HD_STATION_ID_EXT) { + EXPECT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); + ProgramInfo infoCb2 = mTunerCallback->getCurrentProgramInfo(); + mTunerCallback->reset(); + EXPECT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); + ProgramInfo infoCb3 = mTunerCallback->getCurrentProgramInfo(); + mTunerCallback->reset(); + EXPECT_EQ(infoCb1.selector, sel); + EXPECT_EQ(getSignalAcquisitionFlags(infoCb1), 0b001); + EXPECT_EQ(infoCb2.selector, sel); + EXPECT_EQ(getSignalAcquisitionFlags(infoCb2), 0b011); + EXPECT_EQ(infoCb3.selector, sel); + EXPECT_EQ(getSignalAcquisitionFlags(infoCb3), 0b111); + } else { + EXPECT_EQ(infoCb1.selector, sel); + } + } + + bool getAmFmBandRange(utils::FrequencyBand band, AmFmBandRange* res) { + AmFmRegionConfig config; + auto halResult = mBroadcastRadioHal->getAmFmRegionConfig(/* full= */ false, &config); + if (!halResult.isOk()) { + return false; + } + for (const auto& range : config.ranges) { + if (utils::getBand(range.lowerBound) == band) { + *res = range; + return true; + } + } + return false; + } + + std::optional getProgramList() { + ProgramFilter emptyFilter = {}; + return getProgramList(emptyFilter); + } + + std::optional getProgramList(const ProgramFilter& filter) { + mTunerCallback->reset(); + + auto startResult = mBroadcastRadioHal->startProgramListUpdates(filter); + + EXPECT_TRUE(startResult.isOk()); + + if (!startResult.isOk()) { + return std::nullopt; + } + EXPECT_TRUE(mTunerCallback->waitProgramReady()); + + auto stopResult = mBroadcastRadioHal->stopProgramListUpdates(); + + EXPECT_TRUE(stopResult.isOk()); + + return mTunerCallback->getProgramList(); + } + + void switchToFmBand() { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); + verifyUpdatedProgramInfo(kFmSel1); + } + + std::shared_ptr mBroadcastRadioHal; + std::shared_ptr mTunerCallback; +}; + +TEST_F(DefaultBroadcastRadioHalTest, GetAmFmRegionConfig) { + AmFmRegionConfig config; + + auto halResult = mBroadcastRadioHal->getAmFmRegionConfig(/* full= */ false, &config); + + ASSERT_TRUE(halResult.isOk()); + EXPECT_EQ(config.fmDeemphasis, AmFmRegionConfig::DEEMPHASIS_D50); + EXPECT_EQ(config.fmRds, AmFmRegionConfig::RDS); +} + +TEST_F(DefaultBroadcastRadioHalTest, GetAmFmRegionConfigWithFullBand) { + AmFmRegionConfig config; + + auto halResult = mBroadcastRadioHal->getAmFmRegionConfig(/* full= */ true, &config); + + ASSERT_TRUE(halResult.isOk()); + EXPECT_EQ(config.fmDeemphasis, + AmFmRegionConfig::DEEMPHASIS_D50 | AmFmRegionConfig::DEEMPHASIS_D75); + EXPECT_EQ(config.fmRds, AmFmRegionConfig::RDS | AmFmRegionConfig::RBDS); +} + +TEST_F(DefaultBroadcastRadioHalTest, GetDabRegionConfig) { + vector config; + + auto halResult = mBroadcastRadioHal->getDabRegionConfig(&config); + + ASSERT_TRUE(halResult.isOk()); + ASSERT_FALSE(config.empty()); +} + +TEST_F(DefaultBroadcastRadioHalTest, GetImage) { + vector img; + + auto halResult = mBroadcastRadioHal->getImage(BroadcastRadio::INVALID_IMAGE, &img); + + ASSERT_TRUE(halResult.isOk()); + ASSERT_TRUE(img.empty()); +} + +TEST_F(DefaultBroadcastRadioHalTest, GetProperties) { + vector mockPrograms = getAmFmMockTestRadio().getProgramList(); + Properties prop; + + auto halResult = mBroadcastRadioHal->getProperties(&prop); + + ASSERT_TRUE(halResult.isOk()); + ASSERT_FALSE(prop.supportedIdentifierTypes.empty()); + std::unordered_set supportedTypeSet; + for (const auto& supportedType : prop.supportedIdentifierTypes) { + supportedTypeSet.insert(supportedType); + } + for (const auto& program : mockPrograms) { + EXPECT_NE(supportedTypeSet.find(program.selector.primaryId.type), supportedTypeSet.end()); + } +} + +TEST_F(DefaultBroadcastRadioHalTest, SetTunerCallback) { + auto halResult = mBroadcastRadioHal->setTunerCallback(mTunerCallback); + + ASSERT_TRUE(halResult.isOk()); +} + +TEST_F(DefaultBroadcastRadioHalTest, SetTunerCallbackWithNull) { + auto halResult = mBroadcastRadioHal->setTunerCallback(nullptr); + + ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_ARGUMENTS)); +} + +TEST_F(DefaultBroadcastRadioHalTest, UnsetTunerCallbackWithNull) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + + auto halResult = mBroadcastRadioHal->unsetTunerCallback(); + + ASSERT_TRUE(halResult.isOk()); +} + +TEST_F(DefaultBroadcastRadioHalTest, TuneWithAmFmSelectorInProgramList) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + + auto halResult = mBroadcastRadioHal->tune(kFmSel1); + + ASSERT_TRUE(halResult.isOk()); + ASSERT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); + ProgramInfo infoCb = mTunerCallback->getCurrentProgramInfo(); + EXPECT_EQ(infoCb.selector, kFmSel1); +} + +TEST_F(DefaultBroadcastRadioHalTest, TuneWithHdSelectorInProgramList) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + + auto halResult = mBroadcastRadioHal->tune(kFmHdFreq1Sel2); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel2); +} + +TEST_F(DefaultBroadcastRadioHalTest, TuneWitFrequencyOfHdProgramInProgramList) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + + auto halResult = mBroadcastRadioHal->tune( + utils::makeSelectorAmfm(utils::getHdFrequency(kFmHdFreq1Sel1))); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel1); +} + +TEST_F(DefaultBroadcastRadioHalTest, TuneWithInvalidSelector) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + ProgramSelector invalidSelector = {utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, 0), + {}}; + + auto halResult = mBroadcastRadioHal->tune(invalidSelector); + + ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_ARGUMENTS)); +} + +TEST_F(DefaultBroadcastRadioHalTest, TuneWithoutTunerCallback) { + auto halResult = mBroadcastRadioHal->tune(kFmSel1); + + ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_STATE)); +} + +TEST_F(DefaultBroadcastRadioHalTest, StepUp) { + AmFmBandRange fmRange; + ASSERT_TRUE(getAmFmBandRange(utils::FrequencyBand::FM, &fmRange)); + ProgramSelector nextChannelSel = + utils::makeSelectorAmfm(kFmSel1.primaryId.value + fmRange.spacing); + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); + verifyUpdatedProgramInfo(kFmSel1); + + auto halResult = mBroadcastRadioHal->step(/* in_directionUp= */ true); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(nextChannelSel); +} + +TEST_F(DefaultBroadcastRadioHalTest, StepUpFromUpperBound) { + AmFmBandRange fmRange; + ASSERT_TRUE(getAmFmBandRange(utils::FrequencyBand::FM, &fmRange)); + ProgramSelector upperBoundSel = utils::makeSelectorAmfm(fmRange.upperBound); + ProgramSelector lowerBoundSel = utils::makeSelectorAmfm(fmRange.lowerBound); + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(upperBoundSel).isOk()); + verifyUpdatedProgramInfo(upperBoundSel); + + auto halResult = mBroadcastRadioHal->step(/* in_directionUp= */ true); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(lowerBoundSel); +} + +TEST_F(DefaultBroadcastRadioHalTest, StepDown) { + AmFmBandRange fmRange; + ASSERT_TRUE(getAmFmBandRange(utils::FrequencyBand::FM, &fmRange)); + ProgramSelector nextChannelSel = + utils::makeSelectorAmfm(kFmSel1.primaryId.value - fmRange.spacing); + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); + verifyUpdatedProgramInfo(kFmSel1); + + auto halResult = mBroadcastRadioHal->step(/* directionUp= */ false); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(nextChannelSel); +} + +TEST_F(DefaultBroadcastRadioHalTest, StepDownFromLowerBound) { + AmFmBandRange fmRange; + ASSERT_TRUE(getAmFmBandRange(utils::FrequencyBand::FM, &fmRange)); + ProgramSelector upperBoundSel = utils::makeSelectorAmfm(fmRange.upperBound); + ProgramSelector lowerBoundSel = utils::makeSelectorAmfm(fmRange.lowerBound); + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(lowerBoundSel).isOk()); + verifyUpdatedProgramInfo(lowerBoundSel); + + auto halResult = mBroadcastRadioHal->step(/* directionUp= */ false); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(upperBoundSel); +} + +TEST_F(DefaultBroadcastRadioHalTest, StepWithoutTunerCallback) { + switchToFmBand(); + mBroadcastRadioHal->unsetTunerCallback(); + + auto halResult = mBroadcastRadioHal->step(/* directionUp= */ false); + + ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_STATE)); +} + +TEST_F(DefaultBroadcastRadioHalTest, SeekUpWithoutSkipSubchannel) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmHdFreq1Sel1).isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel1); + + auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ true, /* skipSubChannel= */ false); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel2); +} + +TEST_F(DefaultBroadcastRadioHalTest, SeekUpWithSkipSubchannel) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmHdFreq1Sel1).isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel1); + + auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ true, /* skipSubChannel= */ true); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmSel2); +} + +TEST_F(DefaultBroadcastRadioHalTest, SeekUpFromLastProgramInProgramList) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmHdFreq2Sel1).isOk()); + verifyUpdatedProgramInfo(kFmHdFreq2Sel1); + + auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ true, /* skipSubChannel= */ true); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmSel1); +} + +TEST_F(DefaultBroadcastRadioHalTest, SeekDownWithoutSkipSubchannel) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmHdFreq1Sel2).isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel2); + + auto halResult = + mBroadcastRadioHal->seek(/* directionUp= */ false, /* skipSubChannel= */ false); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel1); +} + +TEST_F(DefaultBroadcastRadioHalTest, SeekDownWithSkipSubchannel) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmHdFreq1Sel2).isOk()); + verifyUpdatedProgramInfo(kFmHdFreq1Sel2); + + auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ false, /* skipSubChannel= */ true); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmSel1); +} + +TEST_F(DefaultBroadcastRadioHalTest, SeekDownWithFirstProgramInProgramList) { + switchToFmBand(); + + auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ false, /* skipSubChannel= */ true); + + ASSERT_TRUE(halResult.isOk()); + verifyUpdatedProgramInfo(kFmHdFreq2Sel1); +} + +TEST_F(DefaultBroadcastRadioHalTest, SeekWithoutTunerCallback) { + switchToFmBand(); + mBroadcastRadioHal->unsetTunerCallback(); + + auto halResult = mBroadcastRadioHal->seek(/* directionUp= */ false, /* skipSubChannel= */ true); + + ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_STATE)); +} + +TEST_F(DefaultBroadcastRadioHalTest, Cancel) { + ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); + mTunerCallback->reset(); + ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk()); + + auto halResult = mBroadcastRadioHal->cancel(); + + ASSERT_TRUE(halResult.isOk()); + mTunerCallback->reset(); +} + +TEST_F(DefaultBroadcastRadioHalTest, SetConfigFlag) { + ConfigFlag flag = ConfigFlag::FORCE_MONO; + + auto setResult = mBroadcastRadioHal->setConfigFlag(flag, /* value= */ true); + + ASSERT_TRUE(setResult.isOk()); +} + +TEST_F(DefaultBroadcastRadioHalTest, GetConfigFlag) { + bool gotValue = false; + ConfigFlag flag = ConfigFlag::FORCE_MONO; + mBroadcastRadioHal->setConfigFlag(flag, /* value= */ true); + + auto getResult = mBroadcastRadioHal->isConfigFlagSet(flag, &gotValue); + + ASSERT_TRUE(getResult.isOk()); + ASSERT_TRUE(gotValue); +} + +TEST_F(DefaultBroadcastRadioHalTest, StartProgramListUpdatesWithEmptyFilter) { + switchToFmBand(); + + auto programList = getProgramList(); + + ASSERT_TRUE(programList.has_value()); + for (auto it = programList->begin(); it != programList->end(); it++) { + EXPECT_EQ(utils::getBand(utils::getAmFmFrequency(it->selector)), utils::FrequencyBand::FM); + } +} + +TEST_F(DefaultBroadcastRadioHalTest, StartProgramListUpdatesWithAmFmFilter) { + ProgramFilter amFmFilter = {.identifierTypes = {IdentifierType::AMFM_FREQUENCY_KHZ}, + .identifiers = {}, + .includeCategories = false, + .excludeModifications = false}; + switchToFmBand(); + + auto programList = getProgramList(amFmFilter); + + ASSERT_TRUE(programList.has_value()); + for (auto it = programList->begin(); it != programList->end(); it++) { + EXPECT_TRUE(utils::hasId(it->selector, IdentifierType::AMFM_FREQUENCY_KHZ)); + EXPECT_EQ(utils::getBand(utils::getAmFmFrequency(it->selector)), utils::FrequencyBand::FM); + } +} + +TEST_F(DefaultBroadcastRadioHalTest, StartProgramListUpdatesWhenHdIsDisabled) { + switchToFmBand(); + mBroadcastRadioHal->setConfigFlag(ConfigFlag::FORCE_ANALOG_FM, /* value= */ true); + + auto programList = getProgramList(); + + ASSERT_TRUE(programList.has_value()); + for (auto it = programList->begin(); it != programList->end(); it++) { + EXPECT_FALSE(utils::hasId(it->selector, IdentifierType::HD_STATION_ID_EXT)); + EXPECT_EQ(utils::getBand(utils::getAmFmFrequency(it->selector)), utils::FrequencyBand::FM); + } +} + +} // namespace aidl::android::hardware::broadcastradio diff --git a/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.cpp b/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.cpp new file mode 100644 index 0000000000000000000000000000000000000000..963f8bf3221f3661ca87a94bc91f5fcf71acadf1 --- /dev/null +++ b/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.cpp @@ -0,0 +1,111 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "MockBroadcastRadioCallback.h" + +#include + +namespace aidl::android::hardware::broadcastradio { + +namespace { +using std::vector; +} + +MockBroadcastRadioCallback::MockBroadcastRadioCallback() { + mAntennaConnectionState = true; +} + +ScopedAStatus MockBroadcastRadioCallback::onTuneFailed(Result result, + const ProgramSelector& selector) { + LOG(DEBUG) << "onTuneFailed with result with " << selector.toString().c_str(); + if (result != Result::CANCELED) { + std::lock_guard lk(mLock); + tunerFailed = true; + } + return ndk::ScopedAStatus::ok(); +} + +ScopedAStatus MockBroadcastRadioCallback::onCurrentProgramInfoChanged(const ProgramInfo& info) { + LOG(DEBUG) << "onCurrentProgramInfoChanged with " << info.toString().c_str(); + { + std::lock_guard lk(mLock); + mCurrentProgramInfo = info; + } + + mOnCurrentProgramInfoChangedFlag.notify(); + return ndk::ScopedAStatus::ok(); +} + +ScopedAStatus MockBroadcastRadioCallback::onProgramListUpdated(const ProgramListChunk& chunk) { + { + std::lock_guard lk(mLock); + updateProgramList(chunk, &mProgramList); + } + + if (chunk.complete) { + mOnProgramListReadyFlag.notify(); + } + + return ndk::ScopedAStatus::ok(); +} + +ScopedAStatus MockBroadcastRadioCallback::onParametersUpdated( + [[maybe_unused]] const vector& parameters) { + return ndk::ScopedAStatus::ok(); +} + +ScopedAStatus MockBroadcastRadioCallback::onAntennaStateChange(bool connected) { + if (!connected) { + std::lock_guard lk(mLock); + mAntennaConnectionState = false; + } + return ndk::ScopedAStatus::ok(); +} + +ScopedAStatus MockBroadcastRadioCallback::onConfigFlagUpdated([[maybe_unused]] ConfigFlag in_flag, + [[maybe_unused]] bool in_value) { + return ndk::ScopedAStatus::ok(); +} + +bool MockBroadcastRadioCallback::waitOnCurrentProgramInfoChangedCallback() { + return mOnCurrentProgramInfoChangedFlag.wait(); +} + +bool MockBroadcastRadioCallback::waitProgramReady() { + return mOnProgramListReadyFlag.wait(); +} + +void MockBroadcastRadioCallback::reset() { + mOnCurrentProgramInfoChangedFlag.reset(); + mOnProgramListReadyFlag.reset(); +} + +bool MockBroadcastRadioCallback::isTunerFailed() { + std::lock_guard lk(mLock); + return tunerFailed; +} + +ProgramInfo MockBroadcastRadioCallback::getCurrentProgramInfo() { + std::lock_guard lk(mLock); + return mCurrentProgramInfo; +} + +utils::ProgramInfoSet MockBroadcastRadioCallback::getProgramList() { + std::lock_guard lk(mLock); + return mProgramList; +} + +} // namespace aidl::android::hardware::broadcastradio diff --git a/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.h b/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.h new file mode 100644 index 0000000000000000000000000000000000000000..4415842a9e78ded8ed2f03c21a4308a14178996b --- /dev/null +++ b/broadcastradio/aidl/default/test/MockBroadcastRadioCallback.h @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +#include + +namespace aidl::android::hardware::broadcastradio { + +namespace { +using ::ndk::ScopedAStatus; + +} // namespace + +class MockBroadcastRadioCallback final : public BnTunerCallback { + public: + explicit MockBroadcastRadioCallback(); + ScopedAStatus onTuneFailed(Result result, const ProgramSelector& selector) override; + ScopedAStatus onCurrentProgramInfoChanged(const ProgramInfo& info) override; + ScopedAStatus onProgramListUpdated(const ProgramListChunk& chunk) override; + ScopedAStatus onParametersUpdated(const std::vector& parameters) override; + ScopedAStatus onAntennaStateChange(bool connected) override; + ScopedAStatus onConfigFlagUpdated(ConfigFlag in_flag, bool in_value) override; + + bool waitOnCurrentProgramInfoChangedCallback(); + bool waitProgramReady(); + bool isTunerFailed(); + void reset(); + + ProgramInfo getCurrentProgramInfo(); + utils::ProgramInfoSet getProgramList(); + + private: + class CallbackFlag final { + public: + CallbackFlag(int timeoutMs) { mTimeoutMs = timeoutMs; } + /** + * Notify that the callback is called. + */ + void notify() { + std::unique_lock lock(mMutex); + mCalled = true; + lock.unlock(); + mCv.notify_all(); + }; + + /** + * Wait for the timeout passed into the constructor. + */ + bool wait() { + std::unique_lock lock(mMutex); + return mCv.wait_for(lock, std::chrono::milliseconds(mTimeoutMs), + [this] { return mCalled; }); + }; + + /** + * Reset the callback to not called. + */ + void reset() { + std::unique_lock lock(mMutex); + mCalled = false; + } + + private: + std::mutex mMutex; + bool mCalled GUARDED_BY(mMutex) = false; + std::condition_variable mCv; + int mTimeoutMs; + }; + + std::mutex mLock; + bool mAntennaConnectionState GUARDED_BY(mLock); + bool tunerFailed GUARDED_BY(mLock) = false; + ProgramInfo mCurrentProgramInfo GUARDED_BY(mLock); + utils::ProgramInfoSet mProgramList GUARDED_BY(mLock); + CallbackFlag mOnCurrentProgramInfoChangedFlag = CallbackFlag(IBroadcastRadio::TUNER_TIMEOUT_MS); + CallbackFlag mOnProgramListReadyFlag = CallbackFlag(IBroadcastRadio::LIST_COMPLETE_TIMEOUT_MS); +}; + +} // namespace aidl::android::hardware::broadcastradio diff --git a/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp b/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp index 2668a97c4f405e687426e9c8d31bc0c0214b5221..9633ebb5ae1f24f7fab749ff307aaf829ba9b406 100644 --- a/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp +++ b/broadcastradio/aidl/vts/src/VtsHalBroadcastradioAidlTargetTest.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -76,12 +77,6 @@ const ConfigFlag kConfigFlagValues[] = { constexpr int32_t kAidlVersion1 = 1; constexpr int32_t kAidlVersion2 = 2; -void printSkipped(const std::string& msg) { - const auto testInfo = testing::UnitTest::GetInstance()->current_test_info(); - LOG(INFO) << "[ SKIPPED ] " << testInfo->test_case_name() << "." << testInfo->name() - << " with message: " << msg; -} - bool isValidAmFmFreq(int64_t freq, int aidlVersion) { ProgramIdentifier id = bcutils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, freq); if (aidlVersion == kAidlVersion1) { @@ -255,6 +250,16 @@ ScopedAStatus TunerCallbackImpl::onCurrentProgramInfoChanged(const ProgramInfo& } } + for (const auto& metadataItem : info.metadata) { + bool validMetadata = false; + if (mCallbackAidlVersion == kAidlVersion1) { + validMetadata = bcutils::isValidMetadata(metadataItem); + } else { + validMetadata = bcutils::isValidMetadataV2(metadataItem); + } + EXPECT_TRUE(validMetadata) << "Invalid metadata " << metadataItem.toString().c_str(); + } + { std::lock_guard lk(mLock); mCurrentProgramInfo = info; @@ -385,7 +390,7 @@ std::optional BroadcastRadioHalTest::getProgramList( auto startResult = mModule->startProgramListUpdates(filter); if (startResult.getServiceSpecificError() == resultToInt(Result::NOT_SUPPORTED)) { - printSkipped("Program list not supported"); + LOG(WARNING) << "Program list not supported"; return std::nullopt; } EXPECT_TRUE(startResult.isOk()); @@ -430,8 +435,7 @@ TEST_P(BroadcastRadioHalTest, GetAmFmRegionConfig) { bool supported = getAmFmRegionConfig(/* full= */ false, &config); if (!supported) { - printSkipped("AM/FM not supported"); - return; + GTEST_SKIP() << "AM/FM not supported"; } EXPECT_LE(popcountll(static_cast(config.fmDeemphasis)), 1); @@ -459,8 +463,7 @@ TEST_P(BroadcastRadioHalTest, GetAmFmRegionConfigRanges) { bool supported = getAmFmRegionConfig(/* full= */ false, &config); if (!supported) { - printSkipped("AM/FM not supported"); - return; + GTEST_SKIP() << "AM/FM not supported"; } EXPECT_GT(config.ranges.size(), 0u); @@ -488,7 +491,7 @@ TEST_P(BroadcastRadioHalTest, GetAmFmRegionConfigCapabilitiesForFM) { if (supported && supportsFM(config)) { EXPECT_GE(popcountll(static_cast(config.fmDeemphasis)), 1); } else { - printSkipped("FM not supported"); + GTEST_SKIP() << "FM not supported"; } } @@ -509,8 +512,7 @@ TEST_P(BroadcastRadioHalTest, GetAmFmRegionConfigCapabilitiesRanges) { bool supported = getAmFmRegionConfig(/* full= */ true, &config); if (!supported) { - printSkipped("AM/FM not supported"); - return; + GTEST_SKIP() << "AM/FM not supported"; } EXPECT_GT(config.ranges.size(), 0u); @@ -536,8 +538,7 @@ TEST_P(BroadcastRadioHalTest, GetDabRegionConfig) { auto halResult = mModule->getDabRegionConfig(&config); if (halResult.getServiceSpecificError() == resultToInt(Result::NOT_SUPPORTED)) { - printSkipped("DAB not supported"); - return; + GTEST_SKIP() << "DAB not supported"; } ASSERT_TRUE(halResult.isOk()); @@ -671,7 +672,7 @@ TEST_P(BroadcastRadioHalTest, TuneFailsWithEmpty) { * - if it is supported, the method succeeds; * - after a successful tune call, onCurrentProgramInfoChanged callback is * invoked carrying a proper selector; - * - program changes exactly to what was requested. + * - program changes to a program info with the program selector requested. */ TEST_P(BroadcastRadioHalTest, FmTune) { LOG(DEBUG) << "FmTune Test"; @@ -715,8 +716,7 @@ TEST_P(BroadcastRadioHalTest, HdTune) { LOG(DEBUG) << "HdTune Test"; auto programList = getProgramList(); if (!programList) { - printSkipped("Empty station list, tune cannot be performed"); - return; + GTEST_SKIP() << "Empty station list, tune cannot be performed"; } ProgramSelector hdSel = {}; ProgramIdentifier physicallyTunedToExpected = {}; @@ -732,8 +732,7 @@ TEST_P(BroadcastRadioHalTest, HdTune) { break; } if (!hdStationPresent) { - printSkipped("No HD stations in the list, tune cannot be performed"); - return; + GTEST_SKIP() << "No HD stations in the list, tune cannot be performed"; } // try tuning @@ -762,7 +761,7 @@ TEST_P(BroadcastRadioHalTest, HdTune) { * - if it is supported, the method succeeds; * - after a successful tune call, onCurrentProgramInfoChanged callback is * invoked carrying a proper selector; - * - program changes exactly to what was requested. + * - program changes to a program info with the program selector requested. */ TEST_P(BroadcastRadioHalTest, DabTune) { LOG(DEBUG) << "DabTune Test"; @@ -771,8 +770,7 @@ TEST_P(BroadcastRadioHalTest, DabTune) { auto halResult = mModule->getDabRegionConfig(&config); if (halResult.getServiceSpecificError() == resultToInt(Result::NOT_SUPPORTED)) { - printSkipped("DAB not supported"); - return; + GTEST_SKIP() << "DAB not supported"; } ASSERT_TRUE(halResult.isOk()); ASSERT_NE(config.size(), 0U); @@ -780,8 +778,7 @@ TEST_P(BroadcastRadioHalTest, DabTune) { auto programList = getProgramList(); if (!programList) { - printSkipped("Empty DAB station list, tune cannot be performed"); - return; + GTEST_SKIP() << "Empty DAB station list, tune cannot be performed"; } ProgramSelector sel = {}; @@ -811,8 +808,7 @@ TEST_P(BroadcastRadioHalTest, DabTune) { } if (!dabStationPresent) { - printSkipped("No DAB stations in the list, tune cannot be performed"); - return; + GTEST_SKIP() << "No DAB stations in the list, tune cannot be performed"; } // try tuning @@ -844,7 +840,7 @@ TEST_P(BroadcastRadioHalTest, DabTune) { * Verifies that: * - the method succeeds; * - the program info is changed within kTuneTimeoutMs; - * - works both directions and with or without skipping sub-channel. + * - works both directions and with or without ing sub-channel. */ TEST_P(BroadcastRadioHalTest, Seek) { LOG(DEBUG) << "Seek Test"; @@ -854,8 +850,7 @@ TEST_P(BroadcastRadioHalTest, Seek) { auto result = mModule->seek(/* in_directionUp= */ true, /* in_skipSubChannel= */ true); if (result.getServiceSpecificError() == resultToInt(Result::NOT_SUPPORTED)) { - printSkipped("Seek not supported"); - return; + GTEST_SKIP() << "Seek not supported"; } EXPECT_TRUE(result.isOk()); @@ -905,8 +900,7 @@ TEST_P(BroadcastRadioHalTest, Step) { auto result = mModule->step(/* in_directionUp= */ true); if (result.getServiceSpecificError() == resultToInt(Result::NOT_SUPPORTED)) { - printSkipped("Step not supported"); - return; + GTEST_SKIP() << "Step not supported"; } EXPECT_TRUE(result.isOk()); EXPECT_TRUE(mCallback->waitOnCurrentProgramInfoChangedCallback()); @@ -957,8 +951,7 @@ TEST_P(BroadcastRadioHalTest, Cancel) { auto result = mModule->seek(/* in_directionUp= */ true, /* in_skipSubChannel= */ true); if (result.getServiceSpecificError() == notSupportedError) { - printSkipped("Cancel is skipped because of seek not supported"); - return; + GTEST_SKIP() << "Cancel is skipped because of seek not supported"; } EXPECT_TRUE(result.isOk()); @@ -1152,8 +1145,7 @@ TEST_P(BroadcastRadioHalTest, GetProgramListFromAmFmFilter) { std::optional completeList = getProgramList(); if (!completeList) { - printSkipped("No program list available"); - return; + GTEST_SKIP() << "No program list available"; } ProgramFilter amfmFilter = {}; @@ -1178,8 +1170,7 @@ TEST_P(BroadcastRadioHalTest, GetProgramListFromAmFmFilter) { } if (expectedResultSize == 0) { - printSkipped("No Am/FM programs available"); - return; + GTEST_SKIP() << "No Am/FM programs available"; } std::optional amfmList = getProgramList(amfmFilter); ASSERT_EQ(amfmList->size(), expectedResultSize) << "amfm filter result size is wrong"; @@ -1200,8 +1191,7 @@ TEST_P(BroadcastRadioHalTest, GetProgramListFromDabFilter) { std::optional completeList = getProgramList(); if (!completeList) { - printSkipped("No program list available"); - return; + GTEST_SKIP() << "No program list available"; } ProgramFilter dabFilter = {}; @@ -1225,8 +1215,7 @@ TEST_P(BroadcastRadioHalTest, GetProgramListFromDabFilter) { } if (expectedResultSize == 0) { - printSkipped("No DAB programs available"); - return; + GTEST_SKIP() << "No DAB programs available"; } std::optional dabList = getProgramList(dabFilter); ASSERT_EQ(dabList->size(), expectedResultSize) << "dab filter result size is wrong"; @@ -1245,8 +1234,7 @@ TEST_P(BroadcastRadioHalTest, HdRadioStationNameId) { std::optional list = getProgramList(); if (!list) { - printSkipped("No program list"); - return; + GTEST_SKIP() << "No program list"; } for (const auto& program : *list) { @@ -1297,8 +1285,7 @@ TEST_P(BroadcastRadioHalTest, AnnouncementListenerRegistration) { if (halResult.getServiceSpecificError() == resultToInt(Result::NOT_SUPPORTED)) { ASSERT_EQ(closeHandle.get(), nullptr); - printSkipped("Announcements not supported"); - return; + GTEST_SKIP() << "Announcements not supported"; } ASSERT_TRUE(halResult.isOk()); diff --git a/broadcastradio/common/tests/Android.bp b/broadcastradio/common/tests/Android.bp index 0a6a3a27d08243bcdb17938265195e741f0f043e..1ea4e8584b41cbf91fbc5da1e5b650f0b5bb6e4f 100644 --- a/broadcastradio/common/tests/Android.bp +++ b/broadcastradio/common/tests/Android.bp @@ -86,4 +86,7 @@ cc_test { ], static_libs: ["android.hardware.broadcastradio@common-utils-lib"], test_suites: ["general-tests"], + shared_libs: [ + "libbase", + ], } diff --git a/broadcastradio/common/utils/WorkerThread.cpp b/broadcastradio/common/utils/WorkerThread.cpp index 43fd04a89a79d3ca43ea1d53ae16d5d97acd5cb3..5c8e59c03fe57bf6da1c5c6956aff3aa3b4aadbc 100644 --- a/broadcastradio/common/utils/WorkerThread.cpp +++ b/broadcastradio/common/utils/WorkerThread.cpp @@ -69,8 +69,11 @@ void WorkerThread::cancelAll() { } void WorkerThread::threadLoop() { - while (!mIsTerminating) { + while (true) { unique_lock lk(mMut); + if (mIsTerminating) { + return; + } if (mTasks.empty()) { mCond.wait(lk); continue; diff --git a/broadcastradio/common/utils/include/broadcastradio-utils/WorkerThread.h b/broadcastradio/common/utils/include/broadcastradio-utils/WorkerThread.h index 457b57e40323515d8efcc3ed8e96752177afa5a6..e381f5a132b20dd9dac95ba32c4c78866d1174ac 100644 --- a/broadcastradio/common/utils/include/broadcastradio-utils/WorkerThread.h +++ b/broadcastradio/common/utils/include/broadcastradio-utils/WorkerThread.h @@ -20,6 +20,8 @@ #include #include +#include + namespace android { class WorkerThread { @@ -40,11 +42,11 @@ class WorkerThread { }; friend bool operator<(const Task& lhs, const Task& rhs); - std::atomic mIsTerminating; std::mutex mMut; - std::condition_variable mCond; + bool mIsTerminating GUARDED_BY(mMut); + std::condition_variable mCond GUARDED_BY(mMut); std::thread mThread; - std::priority_queue mTasks; + std::priority_queue mTasks GUARDED_BY(mMut); void threadLoop(); }; diff --git a/broadcastradio/common/utilsaidl/Android.bp b/broadcastradio/common/utilsaidl/Android.bp index 4ec635b17365dedeb435df4ac3730d1dd295dcad..e3bdfdda22b427dddbbcd4730fb3edd21e9d2bb8 100644 --- a/broadcastradio/common/utilsaidl/Android.bp +++ b/broadcastradio/common/utilsaidl/Android.bp @@ -20,13 +20,14 @@ package { // all of the 'license_kinds' from "hardware_interfaces_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 + default_team: "trendy_team_aaos_framework", default_applicable_licenses: ["hardware_interfaces_license"], } cc_library_static { name: "android.hardware.broadcastradio@common-utils-aidl-lib", defaults: [ - "VtsBroadcastRadioDefaults", + "BroadcastRadioUtilsDefaults", ], shared_libs: [ "android.hardware.broadcastradio-V1-ndk", @@ -36,7 +37,7 @@ cc_library_static { cc_library_static { name: "android.hardware.broadcastradio@common-utils-aidl-lib-V2", defaults: [ - "VtsBroadcastRadioDefaults", + "BroadcastRadioUtilsDefaults", ], srcs: [ "src/UtilsV2.cpp", @@ -46,8 +47,23 @@ cc_library_static { ], } +cc_test { + name: "broadcastradio_utils_aidl_test", + defaults: [ + "BroadcastRadioUtilsDefaults", + ], + srcs: [ + "test/*.cpp", + ], + static_libs: [ + "android.hardware.broadcastradio@common-utils-aidl-lib-V2", + "android.hardware.broadcastradio-V2-ndk", + ], + test_suites: ["general-tests"], +} + cc_defaults { - name: "VtsBroadcastRadioDefaults", + name: "BroadcastRadioUtilsDefaults", vendor_available: true, relative_install_path: "hw", cflags: [ diff --git a/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/Utils.h b/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/Utils.h index 3ced6856548e52e881bc4049262a8f94fa91cb02..25c96d075fa87ed680153c304b7239ed65e49899 100644 --- a/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/Utils.h +++ b/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/Utils.h @@ -143,6 +143,8 @@ ProgramSelector makeSelectorHd(uint64_t stationId, uint64_t subChannel, uint64_t bool satisfies(const ProgramFilter& filter, const ProgramSelector& sel); +bool isValidMetadata(const Metadata& metadata); + struct ProgramSelectorComparator { bool operator()(const ProgramSelector& lhs, const ProgramSelector& rhs) const; }; diff --git a/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/UtilsV2.h b/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/UtilsV2.h index e411aa446de65fce9dd8cea1320d522dc2b884c3..734758ddd790745f9f02d22f7cb7fe3b071c5d2f 100644 --- a/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/UtilsV2.h +++ b/broadcastradio/common/utilsaidl/include/broadcastradio-utils-aidl/UtilsV2.h @@ -28,6 +28,7 @@ namespace utils { bool isValidV2(const ProgramIdentifier& id); bool isValidV2(const ProgramSelector& sel); +bool isValidMetadataV2(const Metadata& metadata); std::optional getMetadataStringV2(const ProgramInfo& info, const Metadata::Tag& tag); } // namespace utils diff --git a/broadcastradio/common/utilsaidl/src/Utils.cpp b/broadcastradio/common/utilsaidl/src/Utils.cpp index b6474424b35e3009b0f051195e177a90c3003a0f..ddc5b8db59b64dfd5fdef5a948274a34f5f26225 100644 --- a/broadcastradio/common/utilsaidl/src/Utils.cpp +++ b/broadcastradio/common/utilsaidl/src/Utils.cpp @@ -442,9 +442,9 @@ void updateProgramList(const ProgramListChunk& chunk, ProgramInfoSet* list) { } std::optional getMetadataString(const ProgramInfo& info, const Metadata::Tag& tag) { - auto isRdsPs = [tag](const Metadata& item) { return item.getTag() == tag; }; + auto hasMetadataType = [tag](const Metadata& item) { return item.getTag() == tag; }; - auto it = std::find_if(info.metadata.begin(), info.metadata.end(), isRdsPs); + auto it = std::find_if(info.metadata.begin(), info.metadata.end(), hasMetadataType); if (it == info.metadata.end()) { return std::nullopt; } @@ -579,6 +579,45 @@ uint32_t getAmFmFrequency(const ProgramSelector& sel) { return getHdFrequency(sel); } +bool isValidMetadata(const Metadata& metadata) { + bool valid = true; + + auto expect = [&valid](bool condition, const std::string& message) { + if (!condition) { + valid = false; + LOG(ERROR) << "metadata not valid, expected " << message; + } + }; + + switch (metadata.getTag()) { + case Metadata::rdsPty: + expect(metadata.get() >= 0, "RDS PTY >= 0"); + expect(metadata.get() <= std::numeric_limits::max(), + "8bit RDS PTY"); + break; + case Metadata::rbdsPty: + expect(metadata.get() >= 0, "RBDS PTY >= 0"); + expect(metadata.get() <= std::numeric_limits::max(), + "8bit RBDS PTY"); + break; + case Metadata::dabEnsembleNameShort: + expect(metadata.get().size() <= 8, + "Dab ensemble name abbreviated length <= 8"); + break; + case Metadata::dabServiceNameShort: + expect(metadata.get().size() <= 8, + "Dab component name abbreviated length <= 8"); + break; + case Metadata::dabComponentNameShort: + expect(metadata.get().size() <= 8, + "Dab component name abbreviated length <= 8"); + break; + default: + break; + } + return valid; +} + bool parseArgInt(const std::string& s, int* out) { return ::android::base::ParseInt(s, out); } diff --git a/broadcastradio/common/utilsaidl/src/UtilsV2.cpp b/broadcastradio/common/utilsaidl/src/UtilsV2.cpp index ef739df117e1f6472c0dd400cf0dd1c2b26c05e4..6c75759f07be0f4d6d3008db3994756c4aca2892 100644 --- a/broadcastradio/common/utilsaidl/src/UtilsV2.cpp +++ b/broadcastradio/common/utilsaidl/src/UtilsV2.cpp @@ -17,6 +17,7 @@ #define LOG_TAG "BcRadioAidlDef.utilsV2" #include "broadcastradio-utils-aidl/UtilsV2.h" +#include "broadcastradio-utils-aidl/Utils.h" #include #include @@ -137,10 +138,33 @@ bool isValidV2(const ProgramSelector& sel) { return isValidV2(sel.primaryId); } +bool isValidMetadataV2(const Metadata& metadata) { + if (!isValidMetadata(metadata)) { + return false; + } + + if (metadata.getTag() == Metadata::hdStationNameShort) { + if (metadata.get().size() > 12) { + LOG(ERROR) << "metadata not valid, expected HD short name length <= 12"; + return false; + } + } else if (metadata.getTag() == Metadata::hdSubChannelsAvailable) { + if (metadata.get() < 0) { + LOG(ERROR) << "metadata not valid, expected HD subchannels available >= 0"; + return false; + } else if (metadata.get() > + std::numeric_limits::max()) { + LOG(ERROR) << "metadata not valid, expected 8bit HD subchannels available"; + return false; + } + } + return true; +} + std::optional getMetadataStringV2(const ProgramInfo& info, const Metadata::Tag& tag) { - auto isRdsPs = [tag](const Metadata& item) { return item.getTag() == tag; }; + auto hasMetadataType = [tag](const Metadata& item) { return item.getTag() == tag; }; - auto it = std::find_if(info.metadata.begin(), info.metadata.end(), isRdsPs); + auto it = std::find_if(info.metadata.begin(), info.metadata.end(), hasMetadataType); if (it == info.metadata.end()) { return std::nullopt; } diff --git a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a5c9073133344aa4103c4722f378c26e6d0b58c4 --- /dev/null +++ b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsTest.cpp @@ -0,0 +1,811 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +namespace aidl::android::hardware::broadcastradio { + +namespace { +constexpr int64_t kFmFrequencyKHz = 97900; +constexpr uint32_t kDabSid = 0x0000C221u; +constexpr int kDabEccCode = 0xE1u; +constexpr int kDabSCIdS = 0x1u; +constexpr uint64_t kDabSidExt = static_cast(kDabSid) | + (static_cast(kDabEccCode) << 32) | + (static_cast(kDabSCIdS) << 40); +constexpr uint32_t kDabEnsemble = 0xCE15u; +constexpr uint64_t kDabFrequencyKhz = 225648u; +constexpr uint64_t kHdStationId = 0xA0000001u; +constexpr uint64_t kHdSubChannel = 1u; +constexpr uint64_t kHdFrequency = 97700u; +constexpr int64_t kRdsValue = 0xBEEF; + +const Properties kAmFmTunerProp = { + .maker = "makerTest", + .product = "productTest", + .supportedIdentifierTypes = {IdentifierType::AMFM_FREQUENCY_KHZ, IdentifierType::RDS_PI, + IdentifierType::HD_STATION_ID_EXT}}; + +struct GetBandTestCase { + std::string name; + int64_t frequency; + utils::FrequencyBand bandResult; +}; + +std::vector getBandTestCases() { + return std::vector( + {GetBandTestCase{.name = "unknown_low_band", + .frequency = 0, + .bandResult = utils::FrequencyBand::UNKNOWN}, + GetBandTestCase{.name = "am_lw_band", + .frequency = 30, + .bandResult = utils::FrequencyBand::AM_LW}, + GetBandTestCase{.name = "am_mw_band", + .frequency = 700, + .bandResult = utils::FrequencyBand::AM_MW}, + GetBandTestCase{.name = "am_sw_band", + .frequency = 2000, + .bandResult = utils::FrequencyBand::AM_SW}, + GetBandTestCase{ + .name = "fm_band", .frequency = 97900, .bandResult = utils::FrequencyBand::FM}, + GetBandTestCase{.name = "unknown_high_band", + .frequency = 110000, + .bandResult = utils::FrequencyBand::UNKNOWN}}); +} + +struct IsValidIdentifierTestCase { + std::string name; + ProgramIdentifier id; + bool valid; +}; + +std::vector getIsValidIdentifierTestCases() { + return std::vector({ + IsValidIdentifierTestCase{.name = "invalid_id_type", + .id = utils::makeIdentifier(IdentifierType::INVALID, 0), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_frequency_high", + .id = utils::makeIdentifier(IdentifierType::DAB_FREQUENCY_KHZ, 10000000u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_frequency_low", + .id = utils::makeIdentifier(IdentifierType::DAB_FREQUENCY_KHZ, 100000u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "valid_dab_frequency", + .id = utils::makeIdentifier(IdentifierType::DAB_FREQUENCY_KHZ, 1000000u), + .valid = true}, + IsValidIdentifierTestCase{ + .name = "invalid_am_fm_frequency_high", + .id = utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, 10000000u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_am_fm_frequency_low", + .id = utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, 100u), + .valid = false}, + IsValidIdentifierTestCase{.name = "valid_am_fm_frequency", + .id = utils::makeIdentifier( + IdentifierType::AMFM_FREQUENCY_KHZ, kFmFrequencyKHz), + .valid = true}, + IsValidIdentifierTestCase{ + .name = "drmo_frequency_high", + .id = utils::makeIdentifier(IdentifierType::DRMO_FREQUENCY_KHZ, 10000000u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "drmo_frequency_low", + .id = utils::makeIdentifier(IdentifierType::DRMO_FREQUENCY_KHZ, 100u), + .valid = false}, + IsValidIdentifierTestCase{.name = "valid_drmo_frequency", + .id = utils::makeIdentifier( + IdentifierType::DRMO_FREQUENCY_KHZ, kFmFrequencyKHz), + .valid = true}, + IsValidIdentifierTestCase{.name = "invalid_rds_low", + .id = utils::makeIdentifier(IdentifierType::RDS_PI, 0x0), + .valid = false}, + IsValidIdentifierTestCase{.name = "invalid_rds_high", + .id = utils::makeIdentifier(IdentifierType::RDS_PI, 0x10000), + .valid = false}, + IsValidIdentifierTestCase{.name = "valid_rds", + .id = utils::makeIdentifier(IdentifierType::RDS_PI, 0x1000), + .valid = true}, + IsValidIdentifierTestCase{ + .name = "invalid_hd_id_zero", + .id = utils::makeSelectorHd(/* stationId= */ 0u, kHdSubChannel, kHdFrequency) + .primaryId, + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_hd_suchannel", + .id = utils::makeSelectorHd(kHdStationId, /* subChannel= */ 8u, kHdFrequency) + .primaryId, + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_hd_frequency_low", + .id = utils::makeSelectorHd(kHdStationId, kHdSubChannel, /* frequency= */ 100u) + .primaryId, + .valid = false}, + IsValidIdentifierTestCase{ + .name = "valid_hd_id", + .id = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency) + .primaryId, + .valid = true}, + IsValidIdentifierTestCase{ + .name = "invalid_hd_station_name", + .id = utils::makeIdentifier(IdentifierType::HD_STATION_NAME, 0x41422D464D), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "valid_hd_station_name", + .id = utils::makeIdentifier(IdentifierType::HD_STATION_NAME, 0x414231464D), + .valid = true}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_sid", + .id = utils::makeIdentifier(IdentifierType::DAB_SID_EXT, 0x0E100000000u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_ecc_low", + .id = utils::makeIdentifier(IdentifierType::DAB_SID_EXT, 0x0F700000221u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_ecc_high", + .id = utils::makeIdentifier(IdentifierType::DAB_SID_EXT, 0x09900000221u), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "valid_dab_sid_ext", + .id = utils::makeIdentifier(IdentifierType::DAB_SID_EXT, kDabSidExt), + .valid = true}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_ensemble_zero", + .id = utils::makeIdentifier(IdentifierType::DAB_ENSEMBLE, 0x0), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_dab_ensemble_high", + .id = utils::makeIdentifier(IdentifierType::DAB_ENSEMBLE, 0x10000), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "valid_dab_ensemble", + .id = utils::makeIdentifier(IdentifierType::DAB_ENSEMBLE, kDabEnsemble), + .valid = true}, + IsValidIdentifierTestCase{.name = "invalid_dab_scid_low", + .id = utils::makeIdentifier(IdentifierType::DAB_SCID, 0xF), + .valid = false}, + IsValidIdentifierTestCase{.name = "invalid_dab_scid_high", + .id = utils::makeIdentifier(IdentifierType::DAB_SCID, 0x1000), + .valid = false}, + IsValidIdentifierTestCase{.name = "valid_dab_scid", + .id = utils::makeIdentifier(IdentifierType::DAB_SCID, 0x100), + .valid = true}, + IsValidIdentifierTestCase{ + .name = "invalid_drmo_id_zero", + .id = utils::makeIdentifier(IdentifierType::DRMO_SERVICE_ID, 0x0), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "invalid_drmo_id_high", + .id = utils::makeIdentifier(IdentifierType::DRMO_SERVICE_ID, 0x1000000), + .valid = false}, + IsValidIdentifierTestCase{ + .name = "valid_drmo_id", + .id = utils::makeIdentifier(IdentifierType::DRMO_SERVICE_ID, 0x100000), + .valid = true}, + }); +} + +struct IsValidSelectorTestCase { + std::string name; + ProgramSelector sel; + bool valid; +}; + +std::vector getIsValidSelectorTestCases() { + return std::vector({ + IsValidSelectorTestCase{.name = "valid_am_fm_selector", + .sel = utils::makeSelectorAmfm(kFmFrequencyKHz), + .valid = true}, + IsValidSelectorTestCase{ + .name = "valid_hd_selector", + .sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency), + .valid = true}, + IsValidSelectorTestCase{ + .name = "valid_dab_selector", + .sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz), + .valid = true}, + IsValidSelectorTestCase{.name = "valid_rds_selector", + .sel = ProgramSelector{.primaryId = utils::makeIdentifier( + IdentifierType::RDS_PI, 0x1000)}, + .valid = true}, + IsValidSelectorTestCase{.name = "selector_with_invalid_id", + .sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, + /* frequency= */ 100u), + .valid = false}, + IsValidSelectorTestCase{ + .name = "selector_with_invalid_primary_id_type", + .sel = ProgramSelector{.primaryId = utils::makeIdentifier( + IdentifierType::DAB_ENSEMBLE, kDabEnsemble)}, + .valid = false}, + }); +} + +struct IsValidMetadataTestCase { + std::string name; + Metadata metadata; + bool valid; +}; + +std::vector getIsValidMetadataTestCases() { + return std::vector({ + IsValidMetadataTestCase{.name = "valid_rds_pty", + .metadata = Metadata::make(1), + .valid = true}, + IsValidMetadataTestCase{.name = "negative_rds_pty", + .metadata = Metadata::make(-1), + .valid = false}, + IsValidMetadataTestCase{.name = "large_rds_pty", + .metadata = Metadata::make(256), + .valid = false}, + IsValidMetadataTestCase{.name = "valid_rbds_pty", + .metadata = Metadata::make(1), + .valid = true}, + IsValidMetadataTestCase{.name = "negative_rbds_pty", + .metadata = Metadata::make(-1), + .valid = false}, + IsValidMetadataTestCase{.name = "large_rbds_pty", + .metadata = Metadata::make(256), + .valid = false}, + IsValidMetadataTestCase{ + .name = "valid_dab_ensemble_name_short", + .metadata = Metadata::make("name"), + .valid = true}, + IsValidMetadataTestCase{ + .name = "too_long_dab_ensemble_name_short", + .metadata = Metadata::make("name_long"), + .valid = false}, + IsValidMetadataTestCase{ + .name = "valid_dab_service_name_short", + .metadata = Metadata::make("name"), + .valid = true}, + IsValidMetadataTestCase{ + .name = "too_long_dab_service_name_short", + .metadata = Metadata::make("name_long"), + .valid = false}, + IsValidMetadataTestCase{ + .name = "valid_dab_component_name_short", + .metadata = Metadata::make("name"), + .valid = true}, + IsValidMetadataTestCase{ + .name = "too_long_dab_component_name_short", + .metadata = Metadata::make("name_long"), + .valid = false}, + }); +} +} // namespace + +class GetBandTest : public testing::TestWithParam {}; + +INSTANTIATE_TEST_SUITE_P(GetBandTests, GetBandTest, testing::ValuesIn(getBandTestCases()), + [](const testing::TestParamInfo& info) { + return info.param.name; + }); + +TEST_P(GetBandTest, GetBand) { + GetBandTestCase testcase = GetParam(); + + ASSERT_EQ(utils::getBand(testcase.frequency), testcase.bandResult); +} + +class IsValidMetadataTest : public testing::TestWithParam {}; + +INSTANTIATE_TEST_SUITE_P(IsValidMetadataTests, IsValidMetadataTest, + testing::ValuesIn(getIsValidMetadataTestCases()), + [](const testing::TestParamInfo& info) { + return info.param.name; + }); + +TEST_P(IsValidMetadataTest, IsValidMetadata) { + IsValidMetadataTestCase testParam = GetParam(); + + ASSERT_EQ(utils::isValidMetadata(testParam.metadata), testParam.valid); +} + +class IsValidIdentifierTest : public testing::TestWithParam {}; + +INSTANTIATE_TEST_SUITE_P(IsValidIdentifierTests, IsValidIdentifierTest, + testing::ValuesIn(getIsValidIdentifierTestCases()), + [](const testing::TestParamInfo& info) { + return info.param.name; + }); + +TEST_P(IsValidIdentifierTest, IsValid) { + IsValidIdentifierTestCase testcase = GetParam(); + + ASSERT_EQ(utils::isValid(testcase.id), testcase.valid); +} + +class IsValidSelectorTest : public testing::TestWithParam {}; + +INSTANTIATE_TEST_SUITE_P(IsValidSelectorTests, IsValidSelectorTest, + testing::ValuesIn(getIsValidSelectorTestCases()), + [](const testing::TestParamInfo& info) { + return info.param.name; + }); + +TEST_P(IsValidSelectorTest, IsValid) { + IsValidSelectorTestCase testcase = GetParam(); + + ASSERT_EQ(utils::isValid(testcase.sel), testcase.valid); +} + +TEST(BroadcastRadioUtilsTest, IdentifierIteratorBegin) { + ProgramSelector sel = { + .primaryId = utils::makeIdentifier(IdentifierType::RDS_PI, kRdsValue), + .secondaryIds = { + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, kFmFrequencyKHz), + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, + kFmFrequencyKHz + 200)}}; + + utils::IdentifierIterator it = begin(sel); + + utils::IdentifierIterator selEnd = end(sel); + ASSERT_NE(selEnd, it); + EXPECT_EQ(sel.primaryId, *it); +} + +TEST(BroadcastRadioUtilsTest, IdentifierIteratorIncrement) { + ProgramSelector sel = { + .primaryId = utils::makeIdentifier(IdentifierType::RDS_PI, kRdsValue), + .secondaryIds = { + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, kFmFrequencyKHz), + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, + kFmFrequencyKHz + 200)}}; + utils::IdentifierIterator it = begin(sel); + utils::IdentifierIterator selEnd = end(sel); + + ASSERT_NE(selEnd, ++it); + EXPECT_EQ(sel.secondaryIds[0], *it); + ASSERT_NE(selEnd, ++it); + EXPECT_EQ(sel.secondaryIds[1], *it); + ASSERT_EQ(selEnd, ++it); +} + +TEST(BroadcastRadioUtilsTest, IdentifierIteratorIncrementWithValue) { + ProgramSelector sel = { + .primaryId = utils::makeIdentifier(IdentifierType::RDS_PI, kRdsValue), + .secondaryIds = { + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, kFmFrequencyKHz), + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, + kFmFrequencyKHz + 200)}}; + utils::IdentifierIterator it1 = begin(sel); + utils::IdentifierIterator it2 = it1; + it2++; + it2++; + + ASSERT_EQ(it1 + 2, it2); +} + +TEST(BroadcastRadioUtilsTest, IdentifierIteratorBeginEndWithoutSecondaryIds) { + ProgramSelector sel = {.primaryId = utils::makeIdentifier(IdentifierType::RDS_PI, kRdsValue)}; + + utils::IdentifierIterator it = begin(sel); + utils::IdentifierIterator selEnd = end(sel); + + ASSERT_EQ(selEnd, ++it); +} + +TEST(BroadcastRadioUtilsTest, IdentifierIteratorBeginEndWithDifferentObjects) { + ProgramSelector sel1 = utils::makeSelectorAmfm(kFmFrequencyKHz); + ProgramSelector sel2 = utils::makeSelectorAmfm(kFmFrequencyKHz); + + utils::IdentifierIterator it1 = begin(sel1); + utils::IdentifierIterator it2 = begin(sel2); + utils::IdentifierIterator end1 = end(sel1); + utils::IdentifierIterator end2 = end(sel2); + + ASSERT_NE(it1, it2); + ASSERT_NE(end1, end2); +} + +TEST(BroadcastRadioUtilsTest, IdentifierIteratorBeginEndWithTheSameObject) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + + utils::IdentifierIterator it1 = begin(sel); + utils::IdentifierIterator it2 = begin(sel); + utils::IdentifierIterator end1 = end(sel); + utils::IdentifierIterator end2 = end(sel); + + ASSERT_EQ(it1, it2); + ASSERT_EQ(end1, end2); +} + +TEST(BroadcastRadioUtilsTest, IsSupportedWithSupportedSelector) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + + ASSERT_TRUE(utils::isSupported(kAmFmTunerProp, sel)); +} + +TEST(BroadcastRadioUtilsTest, IsSupportedWithUnsupportedSelector) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_FALSE(utils::isSupported(kAmFmTunerProp, sel)); +} + +TEST(BroadcastRadioUtilsTest, GetBandWithFmFrequency) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + + ASSERT_TRUE(utils::hasId(sel, IdentifierType::AMFM_FREQUENCY_KHZ)); +} + +TEST(BroadcastRadioUtilsTest, HasIdWithPrimaryIdType) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + + ASSERT_TRUE(utils::hasId(sel, IdentifierType::AMFM_FREQUENCY_KHZ)); +} + +TEST(BroadcastRadioUtilsTest, HasIdWithSecondaryIdType) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_TRUE(utils::hasId(sel, IdentifierType::DAB_FREQUENCY_KHZ)); +} + +TEST(BroadcastRadioUtilsTest, HasIdWithIdNotInSelector) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_FALSE(utils::hasId(sel, IdentifierType::AMFM_FREQUENCY_KHZ)); +} + +TEST(BroadcastRadioUtilsTest, GetIdWithPrimaryIdType) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getId(sel, IdentifierType::DAB_SID_EXT), static_cast(kDabSidExt)); +} + +TEST(BroadcastRadioUtilsTest, GetIdWithSecondaryIdType) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getId(sel, IdentifierType::DAB_ENSEMBLE), static_cast(kDabEnsemble)); +} + +TEST(BroadcastRadioUtilsTest, GetIdWithIdNotFound) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getId(sel, IdentifierType::AMFM_FREQUENCY_KHZ), 0); +} + +TEST(BroadcastRadioUtilsTest, GetIdWithIdFoundAndDefaultValue) { + int64_t defaultValue = 0x0E10000C222u; + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getId(sel, IdentifierType::DAB_SID_EXT, defaultValue), + static_cast(kDabSidExt)); +} + +TEST(BroadcastRadioUtilsTest, GetIdWithIdNotFoundAndDefaultValue) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getId(sel, IdentifierType::AMFM_FREQUENCY_KHZ, kFmFrequencyKHz), + static_cast(kFmFrequencyKHz)); +} + +TEST(BroadcastRadioUtilsTest, GetAllIdsWithAvailableIds) { + int64_t secondaryFrequencyKHz = kFmFrequencyKHz + 200; + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + sel.secondaryIds.push_back( + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, secondaryFrequencyKHz)); + + std::vector allIds = utils::getAllIds(sel, IdentifierType::AMFM_FREQUENCY_KHZ); + + ASSERT_EQ(allIds.size(), 2u); + EXPECT_NE(std::find(allIds.begin(), allIds.end(), kFmFrequencyKHz), allIds.end()); + EXPECT_NE(std::find(allIds.begin(), allIds.end(), secondaryFrequencyKHz), allIds.end()); +} + +TEST(BroadcastRadioUtilsTest, GetAllIdsWithIdNotFound) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_TRUE(utils::getAllIds(sel, IdentifierType::AMFM_FREQUENCY_KHZ).empty()); +} + +TEST(BroadcastRadioUtilsTest, MakeIdentifier) { + ProgramIdentifier id = + utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, kFmFrequencyKHz); + + EXPECT_EQ(id.type, IdentifierType::AMFM_FREQUENCY_KHZ); + EXPECT_EQ(id.value, kFmFrequencyKHz); +} + +TEST(BroadcastRadioUtilsTest, MakeSelectorAmfm) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + + EXPECT_EQ(sel.primaryId.type, IdentifierType::AMFM_FREQUENCY_KHZ); + EXPECT_EQ(sel.primaryId.value, kFmFrequencyKHz); + EXPECT_TRUE(sel.secondaryIds.empty()); +} + +TEST(BroadcastRadioUtilsTest, MakeSelectorHd) { + ProgramSelector sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); + + EXPECT_EQ(sel.primaryId.type, IdentifierType::HD_STATION_ID_EXT); + EXPECT_TRUE(sel.secondaryIds.empty()); + EXPECT_EQ(utils::getHdSubchannel(sel), static_cast(kHdSubChannel)); + EXPECT_EQ(utils::getHdFrequency(sel), static_cast(kHdFrequency)); +} + +TEST(BroadcastRadioUtilsTest, MakeHdRadioStationName) { + std::string stationName = "aB1-FM"; + int64_t expectedIdValue = 0x4D46314241; + + ProgramIdentifier stationNameId = utils::makeHdRadioStationName(stationName); + + EXPECT_EQ(stationNameId.type, IdentifierType::HD_STATION_NAME); + EXPECT_EQ(stationNameId.value, expectedIdValue); +} + +TEST(BroadcastRadioUtilsTest, GetHdFrequencyWithoutHdId) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getHdFrequency(sel), 0u); +} + +TEST(BroadcastRadioUtilsTest, HasAmFmFrequencyWithAmFmSelector) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + + ASSERT_TRUE(utils::hasAmFmFrequency(sel)); +} + +TEST(BroadcastRadioUtilsTest, HasAmFmFrequencyWithHdSelector) { + ProgramSelector sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); + + ASSERT_TRUE(utils::hasAmFmFrequency(sel)); +} + +TEST(BroadcastRadioUtilsTest, HasAmFmFrequencyWithNonAmFmHdSelector) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_FALSE(utils::hasAmFmFrequency(sel)); +} + +TEST(BroadcastRadioUtilsTest, GetAmFmFrequencyWithAmFmSelector) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + + ASSERT_EQ(utils::getAmFmFrequency(sel), static_cast(kFmFrequencyKHz)); +} + +TEST(BroadcastRadioUtilsTest, GetAmFmFrequencyWithHdSelector) { + ProgramSelector sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); + + ASSERT_EQ(utils::getAmFmFrequency(sel), static_cast(kHdFrequency)); +} + +TEST(BroadcastRadioUtilsTest, GetAmFmFrequencyWithNonAmFmHdSelector) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getAmFmFrequency(sel), 0u); +} + +TEST(BroadcastRadioUtilsTest, MakeSelectorDabWithOnlySidExt) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt); + + EXPECT_EQ(sel.primaryId.type, IdentifierType::DAB_SID_EXT); + EXPECT_EQ(sel.primaryId.value, static_cast(kDabSidExt)); + EXPECT_TRUE(sel.secondaryIds.empty()); +} + +TEST(BroadcastRadioUtilsTest, MakeSelectorDab) { + ProgramIdentifier ensembleIdExpected = + utils::makeIdentifier(IdentifierType::DAB_ENSEMBLE, kDabEnsemble); + ProgramIdentifier frequencyIdExpected = + utils::makeIdentifier(IdentifierType::DAB_FREQUENCY_KHZ, kDabFrequencyKhz); + + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + EXPECT_EQ(sel.primaryId.type, IdentifierType::DAB_SID_EXT); + EXPECT_EQ(sel.primaryId.value, static_cast(kDabSidExt)); + EXPECT_EQ(sel.secondaryIds.size(), 2u); + EXPECT_NE(std::find(sel.secondaryIds.begin(), sel.secondaryIds.end(), ensembleIdExpected), + sel.secondaryIds.end()); + EXPECT_NE(std::find(sel.secondaryIds.begin(), sel.secondaryIds.end(), frequencyIdExpected), + sel.secondaryIds.end()); +} + +TEST(BroadcastRadioUtilsTest, GetDabSId) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getDabSId(sel), kDabSid); +} + +TEST(BroadcastRadioUtilsTest, GetDabEccCode) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getDabEccCode(sel), kDabEccCode); +} + +TEST(BroadcastRadioUtilsTest, GetDabSCIdS) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_EQ(utils::getDabSCIdS(sel), kDabSCIdS); +} + +TEST(BroadcastRadioUtilsTest, TunesToWithTheSameHdSelector) { + ProgramSelector sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); + ProgramSelector selTarget = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); + + ASSERT_TRUE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToAmFmSelectorWithDifferentSubChannels) { + ProgramSelector sel = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); + ProgramSelector selTarget = utils::makeSelectorAmfm(kHdFrequency); + + ASSERT_FALSE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToMainHdChannelWithDifferentSubChannels) { + ProgramSelector sel = utils::makeSelectorAmfm(kHdFrequency); + ProgramSelector selTarget = + utils::makeSelectorHd(kHdStationId, /* subChannel= */ 0, kHdFrequency); + + ASSERT_TRUE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToWithTheSameAmFmSelector) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + ProgramSelector selTarget = utils::makeSelectorAmfm(kFmFrequencyKHz); + + ASSERT_TRUE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToWithDifferentFrequencies) { + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + ProgramSelector selTarget = utils::makeSelectorAmfm(kFmFrequencyKHz + 200); + + ASSERT_FALSE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToWithTheSameDabSelector) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector selTarget = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_TRUE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToWithDabSelectorOfDifferentPrimaryIds) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt + 1, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector selTarget = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_FALSE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToWithDabSelectorOfDifferentSecondayIds) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble + 100, kDabFrequencyKhz); + ProgramSelector selTarget = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_FALSE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, TunesToWithDabSelectorWithoutSecondaryIds) { + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt); + ProgramSelector selTarget = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_TRUE(utils::tunesTo(sel, selTarget)); +} + +TEST(BroadcastRadioUtilsTest, SatisfiesWithSatisfiedIdTypesFilter) { + ProgramFilter filter = ProgramFilter{.identifierTypes = {IdentifierType::DAB_FREQUENCY_KHZ}}; + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_TRUE(utils::satisfies(filter, sel)); +} + +TEST(BroadcastRadioUtilsTest, SatisfiesWithUnsatisfiedIdTypesFilter) { + ProgramFilter filter = ProgramFilter{.identifierTypes = {IdentifierType::DAB_FREQUENCY_KHZ}}; + ProgramSelector sel = utils::makeSelectorAmfm(kFmFrequencyKHz); + + ASSERT_FALSE(utils::satisfies(filter, sel)); +} + +TEST(BroadcastRadioUtilsTest, SatisfiesWithSatisfiedIdsFilter) { + ProgramFilter filter = + ProgramFilter{.identifiers = {utils::makeIdentifier(IdentifierType::DAB_FREQUENCY_KHZ, + kDabFrequencyKhz)}}; + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + + ASSERT_TRUE(utils::satisfies(filter, sel)); +} + +TEST(BroadcastRadioUtilsTest, SatisfiesWithUnsatisfiedIdsFilter) { + ProgramFilter filter = + ProgramFilter{.identifiers = {utils::makeIdentifier(IdentifierType::DAB_FREQUENCY_KHZ, + kDabFrequencyKhz)}}; + ProgramSelector sel = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz + 100); + + ASSERT_FALSE(utils::satisfies(filter, sel)); +} + +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentAmFmFrequencies) { + ProgramSelector sel1 = utils::makeSelectorAmfm(kHdFrequency - 200); + ProgramSelector sel2 = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentAmFmSubChannels) { + ProgramSelector sel1 = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency); + ProgramSelector sel2 = utils::makeSelectorHd(kHdStationId, kHdSubChannel + 1, kHdFrequency); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabFrequencies) { + ProgramSelector sel1 = utils::makeSelectorDab(kDabSidExt + 100, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector sel2 = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz + 100); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabEccCode) { + ProgramSelector sel1 = + utils::makeSelectorDab(/* stationId= */ 0x0E10000C221u, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector sel2 = + utils::makeSelectorDab(/* stationId= */ 0x0E20000C221u, kDabEnsemble, kDabFrequencyKhz); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabEnsembles) { + ProgramSelector sel1 = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector sel2 = utils::makeSelectorDab(kDabSidExt, kDabEnsemble + 1, kDabFrequencyKhz); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabSid) { + ProgramSelector sel1 = + utils::makeSelectorDab(/* stationId= */ 0x0E10000C221u, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector sel2 = + utils::makeSelectorDab(/* stationId= */ 0x0E10000C222u, kDabEnsemble, kDabFrequencyKhz); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabSCIdS) { + ProgramSelector sel1 = + utils::makeSelectorDab(/* stationId= */ 0x0E10000C221u, kDabEnsemble, kDabFrequencyKhz); + ProgramSelector sel2 = + utils::makeSelectorDab(/* stationId= */ 0x1E10000C221u, kDabEnsemble, kDabFrequencyKhz); + + EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2)); + EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1)); +} + +TEST(BroadcastRadioUtilsTest, ProgramInfoComparator) { + ProgramSelector sel1 = utils::makeSelectorAmfm(kFmFrequencyKHz); + ProgramSelector sel2 = utils::makeSelectorAmfm(kFmFrequencyKHz + 200); + ProgramInfo info1 = {.selector = sel1, + .logicallyTunedTo = sel1.primaryId, + .physicallyTunedTo = sel1.primaryId}; + ProgramInfo info2 = {.selector = sel2, + .logicallyTunedTo = sel2.primaryId, + .physicallyTunedTo = sel2.primaryId}; + + EXPECT_TRUE(utils::ProgramInfoComparator()(info1, info2)); + EXPECT_FALSE(utils::ProgramInfoComparator()(info2, info1)); +} + +} // namespace aidl::android::hardware::broadcastradio diff --git a/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsV2Test.cpp b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsV2Test.cpp new file mode 100644 index 0000000000000000000000000000000000000000..cf9f9e965b122eb60fe75ceb2c3b336e17e8f2ea --- /dev/null +++ b/broadcastradio/common/utilsaidl/test/BroadcastRadioUtilsV2Test.cpp @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +namespace aidl::android::hardware::broadcastradio { + +namespace { +struct IsValidMetadataV2TestCase { + std::string name; + Metadata metadata; + bool valid; +}; + +std::vector getIsValidMetadataV2TestCases() { + return std::vector({ + IsValidMetadataV2TestCase{.name = "valid_rds_pty", + .metadata = Metadata::make(1), + .valid = true}, + IsValidMetadataV2TestCase{.name = "negative_rds_pty", + .metadata = Metadata::make(-1), + .valid = false}, + IsValidMetadataV2TestCase{ + .name = "valid_hd_station_name_short", + .metadata = Metadata::make("name_short"), + .valid = true}, + IsValidMetadataV2TestCase{ + .name = "too_long_hd_station_name_short", + .metadata = Metadata::make("name_too_long"), + .valid = false}, + IsValidMetadataV2TestCase{ + .name = "valid_hd_subchannel_available", + .metadata = Metadata::make(1), + .valid = true}, + IsValidMetadataV2TestCase{ + .name = "negative_subchannel_available", + .metadata = Metadata::make(-1), + .valid = false}, + IsValidMetadataV2TestCase{ + .name = "large_subchannel_available", + .metadata = Metadata::make(256), + .valid = false}, + }); +} +} // namespace + +class IsValidMetadataV2Test : public testing::TestWithParam {}; + +INSTANTIATE_TEST_SUITE_P(IsValidMetadataV2Tests, IsValidMetadataV2Test, + testing::ValuesIn(getIsValidMetadataV2TestCases()), + [](const testing::TestParamInfo& info) { + return info.param.name; + }); + +TEST_P(IsValidMetadataV2Test, IsValidMetadataV2) { + IsValidMetadataV2TestCase testParam = GetParam(); + + ASSERT_EQ(utils::isValidMetadataV2(testParam.metadata), testParam.valid); +} + +} // namespace aidl::android::hardware::broadcastradio diff --git a/camera/common/1.0/Android.bp b/camera/common/1.0/Android.bp index 3eb12b92ff733d09806ace5d31f5002ddd9ce606..5952ac857373ef672bee764f0c2839481899cd95 100644 --- a/camera/common/1.0/Android.bp +++ b/camera/common/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/common/aidl/Android.bp b/camera/common/aidl/Android.bp index 4ffcfd97f317bf2455bf065e7b3345d3f55725ca..8f7d19dc462bcd02ab0c2e0b4ef300aac78adc47 100644 --- a/camera/common/aidl/Android.bp +++ b/camera/common/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -22,7 +23,7 @@ aidl_interface { }, rust: { enabled: true, - } + }, }, versions_with_info: [ { diff --git a/camera/common/default/Android.bp b/camera/common/default/Android.bp index b5d3095cff0b0cdaef87368015f380535f419a71..ad2c139517c57a7bbc1695edddb7fbec35d227cd 100644 --- a/camera/common/default/Android.bp +++ b/camera/common/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/1.0/Android.bp b/camera/device/1.0/Android.bp index 6947779e6b670398abf92ca9eedc11ef83d8fb6a..e3a85e0d394fe75e89fe9ceffbc57b0b5cea65ed 100644 --- a/camera/device/1.0/Android.bp +++ b/camera/device/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/1.0/default/Android.bp b/camera/device/1.0/default/Android.bp index 6992ff0294b9f999783b6729ab35737f522c4b5f..65891df35a65ce04fd617564ff84c5fa0f812051 100644 --- a/camera/device/1.0/default/Android.bp +++ b/camera/device/1.0/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.2/Android.bp b/camera/device/3.2/Android.bp index c80538c53195864a505bee9e35269a5aab005e8f..afeba172fad6e63665286f1460ef689e4629ec59 100644 --- a/camera/device/3.2/Android.bp +++ b/camera/device/3.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.2/default/Android.bp b/camera/device/3.2/default/Android.bp index 04a7760d84556541bc09be959b0eb22dc8df6910..7af517f56eb628fe1f8711e0b6c57ca1c7592ee4 100644 --- a/camera/device/3.2/default/Android.bp +++ b/camera/device/3.2/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.3/Android.bp b/camera/device/3.3/Android.bp index f5e51d6b21b6ea61be271d386cc1c492b011a144..becc67e520538f130f9a71e40a4787cdad484f90 100644 --- a/camera/device/3.3/Android.bp +++ b/camera/device/3.3/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.3/default/Android.bp b/camera/device/3.3/default/Android.bp index 5620102d7e3543e46d8126f2bd0c52c01deeb9ee..32bbdf62c7212f27d30bf67bbb3f29d49edbbc66 100644 --- a/camera/device/3.3/default/Android.bp +++ b/camera/device/3.3/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.4/Android.bp b/camera/device/3.4/Android.bp index 2a6faabc3fb1478eff14ebb77cdeae6d8a355129..bde7c9f56ba7d31221a27d9f04b543a2223313bc 100644 --- a/camera/device/3.4/Android.bp +++ b/camera/device/3.4/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.4/default/Android.bp b/camera/device/3.4/default/Android.bp index 100106e437323b1a81df1b2121858398c77dabb3..95bc3234080a4c884175238a580c7b875bf621b9 100644 --- a/camera/device/3.4/default/Android.bp +++ b/camera/device/3.4/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.5/Android.bp b/camera/device/3.5/Android.bp index f29f9364fbce9f4c6c742506ddb9009ff330f9d5..6e23ee04ea5c5134c5376042b76c836617eec645 100644 --- a/camera/device/3.5/Android.bp +++ b/camera/device/3.5/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.5/default/Android.bp b/camera/device/3.5/default/Android.bp index bc15629da003b6b09d01f19184abda466100bf00..b6dee794fdc6fda763db35cdc8ea1c64f8c19a3f 100644 --- a/camera/device/3.5/default/Android.bp +++ b/camera/device/3.5/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.6/Android.bp b/camera/device/3.6/Android.bp index ff37ca3695091368f9165ebc34d2ef9f949450d6..4fb56cf9abe1ab60774f3bf83b1337eed0b33f82 100644 --- a/camera/device/3.6/Android.bp +++ b/camera/device/3.6/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.6/default/Android.bp b/camera/device/3.6/default/Android.bp index b4a486ff267f0eff2a45f2ad73213105269235e3..5c5f9117fc3b1b2bc1940e933990e635e8450cff 100644 --- a/camera/device/3.6/default/Android.bp +++ b/camera/device/3.6/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/3.7/Android.bp b/camera/device/3.7/Android.bp index be08e91aed375e5da073543620f3ffeae3529f3a..4312c04bf3998115124afc6736e1e393401b4826 100644 --- a/camera/device/3.7/Android.bp +++ b/camera/device/3.7/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/aidl/Android.bp b/camera/device/aidl/Android.bp index 4115c651d8c03bcee04a532e3a77e876b1a47e68..78aefac997456cd42e893e0d50fe2ea3c014289a 100644 --- a/camera/device/aidl/Android.bp +++ b/camera/device/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -11,13 +12,13 @@ aidl_interface { name: "android.hardware.camera.device", vendor_available: true, srcs: ["android/hardware/camera/device/*.aidl"], - frozen: false, + frozen: true, stability: "vintf", imports: [ "android.hardware.common-V2", "android.hardware.common.fmq-V1", "android.hardware.camera.common-V1", - "android.hardware.camera.metadata-V2", + "android.hardware.camera.metadata-V3", "android.hardware.graphics.common-V5", ], backend: { @@ -50,6 +51,16 @@ aidl_interface { "android.hardware.graphics.common-V5", ], }, + { + version: "3", + imports: [ + "android.hardware.common-V2", + "android.hardware.common.fmq-V1", + "android.hardware.camera.common-V1", + "android.hardware.camera.metadata-V3", + "android.hardware.graphics.common-V5", + ], + }, ], diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/.hash b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..9760601073752c77f0061273ece8c6cbe2fe1fef --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/.hash @@ -0,0 +1 @@ +ac7c7f74993871015f73daff1ea0c7f4d4f85ca7 diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferCache.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferCache.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9439172d6b02b44080432cd5893e63edef4eb70d --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferCache.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable BufferCache { + int streamId; + long bufferId; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequest.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c40a24aa79a3473cff4249dd80bc52b769f93e6e --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequest.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable BufferRequest { + int streamId; + int numBuffersRequested; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequestStatus.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequestStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..72fb61ba29ee632bdc0e8f7e3e4481b87e67d2ff --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferRequestStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum BufferRequestStatus { + OK = 0, + FAILED_PARTIAL = 1, + FAILED_CONFIGURING = 2, + FAILED_ILLEGAL_ARGUMENTS = 3, + FAILED_UNKNOWN = 4, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferStatus.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..43a2b35e74a38664fcf80b1a6fbc79fbc6b9ad22 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/BufferStatus.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum BufferStatus { + OK = 0, + ERROR = 1, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlob.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlob.aidl new file mode 100644 index 0000000000000000000000000000000000000000..520181c87fc6add1341aba22240ace48f1e13299 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlob.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable CameraBlob { + android.hardware.camera.device.CameraBlobId blobId; + int blobSizeBytes; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlobId.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlobId.aidl new file mode 100644 index 0000000000000000000000000000000000000000..24083ad51244b86f66b1a5bb15ff9603e7f603db --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraBlobId.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum CameraBlobId { + JPEG = 0x00FF, + JPEG_APP_SEGMENTS = 0x100, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraMetadata.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraMetadata.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b96d69e1b8a1b29d8585d290fe35e1c5816ee9d4 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraMetadata.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable CameraMetadata { + byte[] metadata; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraOfflineSessionInfo.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraOfflineSessionInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1ad8e115c80c788bfdc93025e48dd7bd94bf02a4 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CameraOfflineSessionInfo.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable CameraOfflineSessionInfo { + android.hardware.camera.device.OfflineStream[] offlineStreams; + android.hardware.camera.device.OfflineRequest[] offlineRequests; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureRequest.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6b5b256571e8f080b6beeee150b868110c3fb902 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureRequest.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable CaptureRequest { + int frameNumber; + long fmqSettingsSize; + android.hardware.camera.device.CameraMetadata settings; + android.hardware.camera.device.StreamBuffer inputBuffer; + int inputWidth; + int inputHeight; + android.hardware.camera.device.StreamBuffer[] outputBuffers; + android.hardware.camera.device.PhysicalCameraSetting[] physicalCameraSettings; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureResult.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a820e2c4633d7a16ab8450925346a76c11fa47cb --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/CaptureResult.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable CaptureResult { + int frameNumber; + long fmqResultSize; + android.hardware.camera.device.CameraMetadata result; + android.hardware.camera.device.StreamBuffer[] outputBuffers; + android.hardware.camera.device.StreamBuffer inputBuffer; + int partialResult; + android.hardware.camera.device.PhysicalCameraMetadata[] physicalCameraMetadata; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ConfigureStreamsRet.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ConfigureStreamsRet.aidl new file mode 100644 index 0000000000000000000000000000000000000000..670f7d272b4140eb6fb5ad098274276f9c423aec --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ConfigureStreamsRet.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable ConfigureStreamsRet { + android.hardware.camera.device.HalStream[] halStreams; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorCode.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2f9887a7a521636a81e7b5ba9869b1c66fb4091e --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorCode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum ErrorCode { + ERROR_DEVICE = 1, + ERROR_REQUEST = 2, + ERROR_RESULT = 3, + ERROR_BUFFER = 4, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorMsg.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorMsg.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b2e9512bbfd10e8a971caf3a8b92428f1661b000 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ErrorMsg.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable ErrorMsg { + int frameNumber; + int errorStreamId; + android.hardware.camera.device.ErrorCode errorCode; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/HalStream.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/HalStream.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3ae261d4d2e794e03c7e67996f048c7d79ab5580 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/HalStream.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable HalStream { + int id; + android.hardware.graphics.common.PixelFormat overrideFormat; + android.hardware.graphics.common.BufferUsage producerUsage; + android.hardware.graphics.common.BufferUsage consumerUsage; + int maxBuffers; + android.hardware.graphics.common.Dataspace overrideDataSpace; + String physicalCameraId; + boolean supportOffline; + boolean enableHalBufferManager; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDevice.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDevice.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f73483a4b3b2833a5e880d9b93fce7b41f7a675d --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDevice.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +interface ICameraDevice { + android.hardware.camera.device.CameraMetadata getCameraCharacteristics(); + android.hardware.camera.device.CameraMetadata getPhysicalCameraCharacteristics(in String physicalCameraId); + android.hardware.camera.common.CameraResourceCost getResourceCost(); + boolean isStreamCombinationSupported(in android.hardware.camera.device.StreamConfiguration streams); + android.hardware.camera.device.ICameraDeviceSession open(in android.hardware.camera.device.ICameraDeviceCallback callback); + android.hardware.camera.device.ICameraInjectionSession openInjectionSession(in android.hardware.camera.device.ICameraDeviceCallback callback); + void setTorchMode(boolean on); + void turnOnTorchWithStrengthLevel(int torchStrength); + int getTorchStrengthLevel(); + android.hardware.camera.device.CameraMetadata constructDefaultRequestSettings(in android.hardware.camera.device.RequestTemplate type); + boolean isStreamCombinationWithSettingsSupported(in android.hardware.camera.device.StreamConfiguration streams); + android.hardware.camera.device.CameraMetadata getSessionCharacteristics(in android.hardware.camera.device.StreamConfiguration sessionConfig); +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceCallback.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7b79c6c87ae1aeef9a44db990a74e65d2fe11e96 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceCallback.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +interface ICameraDeviceCallback { + void notify(in android.hardware.camera.device.NotifyMsg[] msgs); + void processCaptureResult(in android.hardware.camera.device.CaptureResult[] results); + android.hardware.camera.device.BufferRequestStatus requestStreamBuffers(in android.hardware.camera.device.BufferRequest[] bufReqs, out android.hardware.camera.device.StreamBufferRet[] buffers); + void returnStreamBuffers(in android.hardware.camera.device.StreamBuffer[] buffers); +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceSession.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceSession.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b6ae734392db1d51507ae1e6fbf1e4cfb693f4b4 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraDeviceSession.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +interface ICameraDeviceSession { + void close(); + android.hardware.camera.device.HalStream[] configureStreams(in android.hardware.camera.device.StreamConfiguration requestedConfiguration); + android.hardware.camera.device.CameraMetadata constructDefaultRequestSettings(in android.hardware.camera.device.RequestTemplate type); + void flush(); + android.hardware.common.fmq.MQDescriptor getCaptureRequestMetadataQueue(); + android.hardware.common.fmq.MQDescriptor getCaptureResultMetadataQueue(); + boolean isReconfigurationRequired(in android.hardware.camera.device.CameraMetadata oldSessionParams, in android.hardware.camera.device.CameraMetadata newSessionParams); + int processCaptureRequest(in android.hardware.camera.device.CaptureRequest[] requests, in android.hardware.camera.device.BufferCache[] cachesToRemove); + oneway void signalStreamFlush(in int[] streamIds, in int streamConfigCounter); + android.hardware.camera.device.ICameraOfflineSession switchToOffline(in int[] streamsToKeep, out android.hardware.camera.device.CameraOfflineSessionInfo offlineSessionInfo); + void repeatingRequestEnd(in int frameNumber, in int[] streamIds); + android.hardware.camera.device.ConfigureStreamsRet configureStreamsV2(in android.hardware.camera.device.StreamConfiguration requestedConfiguration); +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraInjectionSession.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraInjectionSession.aidl new file mode 100644 index 0000000000000000000000000000000000000000..80f74f331cec4b9b697f769edfd94c634f025a5a --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraInjectionSession.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +interface ICameraInjectionSession { + void configureInjectionStreams(in android.hardware.camera.device.StreamConfiguration requestedConfiguration, in android.hardware.camera.device.CameraMetadata characteristics); + android.hardware.camera.device.ICameraDeviceSession getCameraDeviceSession(); +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraOfflineSession.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraOfflineSession.aidl new file mode 100644 index 0000000000000000000000000000000000000000..727d856fc8c25e9e6c362bbf6e8dde028e032a6b --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ICameraOfflineSession.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +interface ICameraOfflineSession { + void close(); + android.hardware.common.fmq.MQDescriptor getCaptureResultMetadataQueue(); + void setCallback(in android.hardware.camera.device.ICameraDeviceCallback cb); +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/NotifyMsg.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/NotifyMsg.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3ad7e52e6395896c9676c9ed765e36b648abf90b --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/NotifyMsg.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +union NotifyMsg { + android.hardware.camera.device.ErrorMsg error; + android.hardware.camera.device.ShutterMsg shutter; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineRequest.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6e6f29d6fc3771e31334aa8e9da55c865eb46d51 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineRequest.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable OfflineRequest { + int frameNumber; + int[] pendingStreams; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineStream.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineStream.aidl new file mode 100644 index 0000000000000000000000000000000000000000..54cb1fed0ebee855a6f94223ff58b87e03061e78 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/OfflineStream.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable OfflineStream { + int id; + int numOutstandingBuffers; + long[] circulatingBufferIds; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraMetadata.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraMetadata.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3d66ab87138f0189982ee4fd8658feabc9acc3b6 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraMetadata.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable PhysicalCameraMetadata { + long fmqMetadataSize; + String physicalCameraId; + android.hardware.camera.device.CameraMetadata metadata; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraSetting.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraSetting.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a6c241d453df681bc42d9ae52aa55160c0f530f0 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/PhysicalCameraSetting.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable PhysicalCameraSetting { + long fmqSettingsSize; + String physicalCameraId; + android.hardware.camera.device.CameraMetadata settings; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/RequestTemplate.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/RequestTemplate.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1f87aa338d2082dc3ed93493370d3891686fd39d --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/RequestTemplate.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum RequestTemplate { + PREVIEW = 1, + STILL_CAPTURE = 2, + VIDEO_RECORD = 3, + VIDEO_SNAPSHOT = 4, + ZERO_SHUTTER_LAG = 5, + MANUAL = 6, + VENDOR_TEMPLATE_START = 0x40000000, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ShutterMsg.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ShutterMsg.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ce059ac0db4d71bcb08dbd39071da939623aeddb --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/ShutterMsg.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable ShutterMsg { + int frameNumber; + long timestamp; + long readoutTimestamp; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/Stream.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/Stream.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5057663e6523ca53b9a9f01b906d9f7c77c0d9be --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/Stream.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable Stream { + int id; + android.hardware.camera.device.StreamType streamType; + int width; + int height; + android.hardware.graphics.common.PixelFormat format; + android.hardware.graphics.common.BufferUsage usage; + android.hardware.graphics.common.Dataspace dataSpace; + android.hardware.camera.device.StreamRotation rotation; + String physicalCameraId; + int bufferSize; + int groupId; + android.hardware.camera.metadata.SensorPixelMode[] sensorPixelModesUsed; + android.hardware.camera.metadata.RequestAvailableDynamicRangeProfilesMap dynamicRangeProfile; + android.hardware.camera.metadata.ScalerAvailableStreamUseCases useCase; + int colorSpace; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffer.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffer.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8fabf032db469ae6181d9fc0a88c16ff869a3c1e --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffer.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable StreamBuffer { + int streamId; + long bufferId; + android.hardware.common.NativeHandle buffer; + android.hardware.camera.device.BufferStatus status; + android.hardware.common.NativeHandle acquireFence; + android.hardware.common.NativeHandle releaseFence; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRequestError.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRequestError.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f4501496359dbb852077a6daea8994805e669053 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRequestError.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum StreamBufferRequestError { + NO_BUFFER_AVAILABLE = 1, + MAX_BUFFER_EXCEEDED = 2, + STREAM_DISCONNECTED = 3, + UNKNOWN_ERROR = 4, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRet.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRet.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3998cc34fad78f095abf6f1e1efc87a591fc84d8 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBufferRet.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable StreamBufferRet { + int streamId; + android.hardware.camera.device.StreamBuffersVal val; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffersVal.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffersVal.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bebc9fcced11219fe675ba2d87a662382f1acb4d --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamBuffersVal.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +union StreamBuffersVal { + android.hardware.camera.device.StreamBufferRequestError error = android.hardware.camera.device.StreamBufferRequestError.UNKNOWN_ERROR; + android.hardware.camera.device.StreamBuffer[] buffers; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfiguration.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..97fd067b8dd85176e5bd5ea9063eca487cadcdcd --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfiguration.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@VintfStability +parcelable StreamConfiguration { + android.hardware.camera.device.Stream[] streams; + android.hardware.camera.device.StreamConfigurationMode operationMode; + android.hardware.camera.device.CameraMetadata sessionParams; + int streamConfigCounter; + boolean multiResolutionInputImage; + long logId = 0; +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfigurationMode.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfigurationMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ef7ec25d07bef3b790a7f367f29367a22e1b8a76 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamConfigurationMode.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum StreamConfigurationMode { + NORMAL_MODE = 0, + CONSTRAINED_HIGH_SPEED_MODE = 1, + VENDOR_MODE_0 = 0x8000, + VENDOR_MODE_1, + VENDOR_MODE_2, + VENDOR_MODE_3, + VENDOR_MODE_4, + VENDOR_MODE_5, + VENDOR_MODE_6, + VENDOR_MODE_7, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamRotation.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamRotation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2ef4274f88b287624e516d583b3392f968016559 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamRotation.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum StreamRotation { + ROTATION_0 = 0, + ROTATION_90 = 1, + ROTATION_180 = 2, + ROTATION_270 = 3, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamType.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0f13fe8be708112dc6819c2134576ecb07769b57 --- /dev/null +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/3/android/hardware/camera/device/StreamType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.device; +@Backing(type="int") @VintfStability +enum StreamType { + OUTPUT = 0, + INPUT = 1, +} diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/ConfigureStreamsRet.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/ConfigureStreamsRet.aidl index 5535a30e2aefbe52276809faf891e3d523524657..670f7d272b4140eb6fb5ad098274276f9c423aec 100644 --- a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/ConfigureStreamsRet.aidl +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/ConfigureStreamsRet.aidl @@ -35,5 +35,4 @@ package android.hardware.camera.device; @VintfStability parcelable ConfigureStreamsRet { android.hardware.camera.device.HalStream[] halStreams; - boolean enableHalBufferManager = false; } diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/HalStream.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/HalStream.aidl index a5784bcf32eab4592abe0b8669cb1aa2472ef563..3ae261d4d2e794e03c7e67996f048c7d79ab5580 100644 --- a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/HalStream.aidl +++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/HalStream.aidl @@ -42,4 +42,5 @@ parcelable HalStream { android.hardware.graphics.common.Dataspace overrideDataSpace; String physicalCameraId; boolean supportOffline; + boolean enableHalBufferManager; } diff --git a/camera/device/aidl/android/hardware/camera/device/ConfigureStreamsRet.aidl b/camera/device/aidl/android/hardware/camera/device/ConfigureStreamsRet.aidl index 8f462ecb5fa88face7b8a6df84439c60a4d03cbb..702901f699c926ae96161aca8e950e536be41adf 100644 --- a/camera/device/aidl/android/hardware/camera/device/ConfigureStreamsRet.aidl +++ b/camera/device/aidl/android/hardware/camera/device/ConfigureStreamsRet.aidl @@ -34,9 +34,4 @@ parcelable ConfigureStreamsRet { * overridden format, maximum buffers etc. */ HalStream[] halStreams; - /** - * A boolean informing the camera framework whether the HAL buffer manager - * must be used for the session configured. - */ - boolean enableHalBufferManager = false; } diff --git a/camera/device/aidl/android/hardware/camera/device/HalStream.aidl b/camera/device/aidl/android/hardware/camera/device/HalStream.aidl index 25a80bc16c4e88d53dfce8c4bf340d587c06c66e..fac89e63059567cd9e00893e4cfc2ac6def1fc04 100644 --- a/camera/device/aidl/android/hardware/camera/device/HalStream.aidl +++ b/camera/device/aidl/android/hardware/camera/device/HalStream.aidl @@ -127,4 +127,24 @@ parcelable HalStream { * */ boolean supportOffline; + + /** + * Whether the buffers for this stream are HAL buffer managed. + * + * If ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION is + * ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE, this field + * must be set by the HAL to inform the camera framework, whether output buffers for this + * stream will be HAL buffer managed - i.e. requested through the + * ICameraDeviceCallback.requestStreamsBuffers() API. Only the output buffers for the streams + * that have this field set to 'true' will be HAL buffer managed. The output buffers for other + * streams will be managed by the camera framework. + * + * If the value of ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION is + * ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_AIDL_DEVICE, the camera framework + * will ignore this field and assume that all output streams are hal buffer managed. + * + * If ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION is not set at all, the camera framework + * will ignore this field and assume output buffers are managed by the camera framework. + */ + boolean enableHalBufferManager; } diff --git a/camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl b/camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl index 3a1d7625d599d14fba2915d79be5cdab0ca039b7..440c2b372855612a66ca42619030e3c8afc8e03c 100644 --- a/camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl +++ b/camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl @@ -365,16 +365,20 @@ interface ICameraDevice { * isStreamCombinationWithSettingsSupported: * * This is the same as isStreamCombinationSupported with below exceptions: - * * 1. The input StreamConfiguration parameter may contain session parameters - * supported by this camera device. When checking if the particular StreamConfiguration - * is supported, the camera HAL must take the session parameters into consideration. + * as well as additional CaptureRequest keys. See the comment + * sections below on what additional capture request keys are passed in + * StreamConfiguration::sessionParameters for each interface version. When checking if + * the particular StreamConfiguration is supported, the camera HAL must take all + * the keys in sessionParameters into consideration. * * 2. For version 3 of this interface, the camera compliance test will verify that * isStreamCombinationWithSettingsSupported behaves properly for all combinations of * below features. This function must return true for all supported combinations, * and return false for non-supported feature combinations. The list of features - * required may grow in future versions. + * required may grow in future versions. The additional metadata entries in + * StreamConfiguration::sessionParameters are {CONTROL_AE_TARGET_FPS_RANGE, + * CONTROL_VIDEO_STABILIZATION_MODE}. * * - Stream Combinations (a subset of LEGACY device mandatory stream combinations): * { @@ -429,7 +433,7 @@ interface ICameraDevice { * 4032 x 3024, the camera compliance test will verify both * {PRIV, 1920 x 1440, JPEG, 4032 x 3024} and {PRIV, 2560 x 1440, JPEG, 4032 x 2268}. * - * @param streams The StreamConfiguration to be tested, with optional session parameters. + * @param streams The StreamConfiguration to be tested, with optional CaptureRequest parameters. * * @return true in case the stream combination is supported, false otherwise. * @@ -444,6 +448,10 @@ interface ICameraDevice { * * For Android 15, the characteristics which need to be set are: * - ANDROID_CONTROL_ZOOM_RATIO_RANGE + * - SCALER_AVAILABLE_MAX_DIGITAL_ZOOM + * + * No other tags (other than vendor tags) should be set in the characteristics returned from + * the HAL. * * A service specific error will be returned on the following conditions * INTERNAL_ERROR: diff --git a/camera/device/aidl/android/hardware/camera/device/ICameraDeviceSession.aidl b/camera/device/aidl/android/hardware/camera/device/ICameraDeviceSession.aidl index ffc1a11e5b1a769314506f0a601e626b61e69b05..62a19cff93b93265814e49d9fdad770b9598fb66 100644 --- a/camera/device/aidl/android/hardware/camera/device/ICameraDeviceSession.aidl +++ b/camera/device/aidl/android/hardware/camera/device/ICameraDeviceSession.aidl @@ -89,12 +89,12 @@ interface ICameraDeviceSession { * with processCaptureResult (and its respective releaseFence has been * signaled) the framework may free or reuse it at any time. * - * This method wil only be called by the framework if + * This method must only be called by the framework if * ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION is either not advertised or is * ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_AIDL. If the value of * ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION is * ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE, configureStreamsV2 - * will be called instead. + * must be called instead. * * ------------------------------------------------------------------------ * diff --git a/camera/device/aidl/android/hardware/camera/device/StreamConfiguration.aidl b/camera/device/aidl/android/hardware/camera/device/StreamConfiguration.aidl index 197d9af5880500f02b614321e2bb9c8b4a41edcd..0f5bad932a4573bc9f902684d392e7bcbdb8edae 100644 --- a/camera/device/aidl/android/hardware/camera/device/StreamConfiguration.aidl +++ b/camera/device/aidl/android/hardware/camera/device/StreamConfiguration.aidl @@ -59,6 +59,14 @@ parcelable StreamConfiguration { * pipeline updates. The field is optional, clients can choose to ignore it and avoid * including any initial settings. If parameters are present, then hal must examine * their values and configure the internal camera pipeline accordingly. + * + * A null pointer is equivalent to a valid CameraMetadata object with zero entries. + * + * For a StreamConfiguration passed to ICameraDevice.isStreamCombinationWithSettingsSupported + * or ICameraDevice.getSessionCharacteristics, this variable may also contain keys + * that are not session parameters, but are used to specify certain features for a + * session. For example, CONTROL_VIDEO_STABILIZATION_MODE may be included even if it's not a + * session parameter. */ CameraMetadata sessionParams; diff --git a/camera/device/default/Android.bp b/camera/device/default/Android.bp index 5fbcb5d89a60c1bd47828611413d5662139ffeb7..10cee12cd1fd4849f8edff5927830acf3f030bf7 100644 --- a/camera/device/default/Android.bp +++ b/camera/device/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/device/default/ExternalCameraDevice.cpp b/camera/device/default/ExternalCameraDevice.cpp index 677fb429ef59a3a5717d539c8f26741e494ff4d2..8e8474800f0a0529f794fcbccc78c8350ca07345 100644 --- a/camera/device/default/ExternalCameraDevice.cpp +++ b/camera/device/default/ExternalCameraDevice.cpp @@ -399,6 +399,10 @@ status_t ExternalCameraDevice::initDefaultCharsKeys( const uint8_t hotPixelMode = ANDROID_HOT_PIXEL_MODE_OFF; UPDATE(ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES, &hotPixelMode, 1); + // android.info + const uint8_t bufMgrVer = ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5; + UPDATE(ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION, &bufMgrVer, 1); + // android.jpeg const int32_t jpegAvailableThumbnailSizes[] = {0, 0, 176, 144, 240, 144, 256, 144, 240, 160, 256, 154, 240, 180}; @@ -493,6 +497,9 @@ status_t ExternalCameraDevice::initDefaultCharsKeys( const int32_t maxLatency = ANDROID_SYNC_MAX_LATENCY_UNKNOWN; UPDATE(ANDROID_SYNC_MAX_LATENCY, &maxLatency, 1); + const uint8_t sensorReadoutTimestamp = ANDROID_SENSOR_READOUT_TIMESTAMP_NOT_SUPPORTED; + UPDATE(ANDROID_SENSOR_READOUT_TIMESTAMP, &sensorReadoutTimestamp, 1); + /* Other sensor/RAW related keys: * android.sensor.info.colorFilterArrangement -> no need if we don't do RAW * android.sensor.info.physicalSize -> not available @@ -998,4 +1005,4 @@ binder_status_t ExternalCameraDevice::dump(int fd, const char** args, uint32_t n } // namespace device } // namespace camera } // namespace hardware -} // namespace android \ No newline at end of file +} // namespace android diff --git a/camera/device/default/ExternalCameraDeviceSession.cpp b/camera/device/default/ExternalCameraDeviceSession.cpp index a6ec4c783e7ec90ca22dfc8400fe24b8f8d68d39..91196d42283dd80acd5f8d4f430b5cda0dfe955f 100644 --- a/camera/device/default/ExternalCameraDeviceSession.cpp +++ b/camera/device/default/ExternalCameraDeviceSession.cpp @@ -538,6 +538,19 @@ Status ExternalCameraDeviceSession::processOneCaptureRequest(const CaptureReques return Status::INTERNAL_ERROR; } + if (request.outputBuffers.empty()) { + ALOGE("%s: No output buffers provided.", __FUNCTION__); + return Status::ILLEGAL_ARGUMENT; + } + + for (auto& outputBuf : request.outputBuffers) { + if (outputBuf.streamId == -1 || mStreamMap.find(outputBuf.streamId) == mStreamMap.end()) { + ALOGE("%s: Invalid streamId in CaptureRequest.outputBuffers: %d", __FUNCTION__, + outputBuf.streamId); + return Status::ILLEGAL_ARGUMENT; + } + } + const camera_metadata_t* rawSettings = nullptr; bool converted; CameraMetadata settingsFmq; // settings from FMQ @@ -572,8 +585,6 @@ Status ExternalCameraDeviceSession::processOneCaptureRequest(const CaptureReques return Status::ILLEGAL_ARGUMENT; } - std::vector allBufPtrs; - std::vector allFences; size_t numOutputBufs = request.outputBuffers.size(); if (numOutputBufs == 0) { @@ -629,11 +640,6 @@ Status ExternalCameraDeviceSession::processOneCaptureRequest(const CaptureReques } } - status = importRequestLocked(request, allBufPtrs, allFences); - if (status != Status::OK) { - return status; - } - nsecs_t shutterTs = 0; std::unique_ptr frameIn = dequeueV4l2FrameLocked(&shutterTs); if (frameIn == nullptr) { @@ -656,8 +662,8 @@ Status ExternalCameraDeviceSession::processOneCaptureRequest(const CaptureReques halBuf.height = stream.height; halBuf.format = stream.format; halBuf.usage = stream.usage; - halBuf.bufPtr = allBufPtrs[i]; - halBuf.acquireFence = allFences[i]; + halBuf.bufPtr = nullptr; // threadloop will request buffer from cameraservice + halBuf.acquireFence = 0; // threadloop will request fence from cameraservice halBuf.fenceTimeout = false; } { @@ -789,8 +795,10 @@ Status ExternalCameraDeviceSession::switchToOffline( outputBuffer.bufferId = buffer.bufferId; outputBuffer.status = BufferStatus::ERROR; if (buffer.acquireFence >= 0) { - outputBuffer.releaseFence.fds.resize(1); - outputBuffer.releaseFence.fds.at(0).set(buffer.acquireFence); + native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); + handle->data[0] = buffer.acquireFence; + outputBuffer.releaseFence = android::dupToAidl(handle); + native_handle_delete(handle); } } else { offlineBuffers.push_back(buffer); @@ -1349,56 +1357,6 @@ bool ExternalCameraDeviceSession::isSupported( return false; } -Status ExternalCameraDeviceSession::importRequestLocked(const CaptureRequest& request, - std::vector& allBufPtrs, - std::vector& allFences) { - return importRequestLockedImpl(request, allBufPtrs, allFences); -} - -Status ExternalCameraDeviceSession::importRequestLockedImpl( - const CaptureRequest& request, std::vector& allBufPtrs, - std::vector& allFences) { - size_t numOutputBufs = request.outputBuffers.size(); - size_t numBufs = numOutputBufs; - // Validate all I/O buffers - std::vector allBufs; - std::vector allBufIds; - allBufs.resize(numBufs); - allBufIds.resize(numBufs); - allBufPtrs.resize(numBufs); - allFences.resize(numBufs); - std::vector streamIds(numBufs); - - for (size_t i = 0; i < numOutputBufs; i++) { - allBufs[i] = ::android::makeFromAidl(request.outputBuffers[i].buffer); - allBufIds[i] = request.outputBuffers[i].bufferId; - allBufPtrs[i] = &allBufs[i]; - streamIds[i] = request.outputBuffers[i].streamId; - } - - { - Mutex::Autolock _l(mCbsLock); - for (size_t i = 0; i < numBufs; i++) { - Status st = importBufferLocked(streamIds[i], allBufIds[i], allBufs[i], &allBufPtrs[i]); - if (st != Status::OK) { - // Detailed error logs printed in importBuffer - return st; - } - } - } - - // All buffers are imported. Now validate output buffer acquire fences - for (size_t i = 0; i < numOutputBufs; i++) { - if (!sHandleImporter.importFence( - ::android::makeFromAidl(request.outputBuffers[i].acquireFence), allFences[i])) { - ALOGE("%s: output buffer %zu acquire fence is invalid", __FUNCTION__, i); - cleanupInflightFences(allFences, i); - return Status::INTERNAL_ERROR; - } - } - return Status::OK; -} - Status ExternalCameraDeviceSession::importBuffer(int32_t streamId, uint64_t bufId, buffer_handle_t buf, /*out*/ buffer_handle_t** outBufPtr) { @@ -1768,8 +1726,10 @@ Status ExternalCameraDeviceSession::processCaptureRequestError( result.outputBuffers[i].bufferId = req->buffers[i].bufferId; result.outputBuffers[i].status = BufferStatus::ERROR; if (req->buffers[i].acquireFence >= 0) { - result.outputBuffers[i].releaseFence.fds.resize(1); - result.outputBuffers[i].releaseFence.fds.at(0).set(req->buffers[i].acquireFence); + // numFds = 0 for error + native_handle_t* handle = native_handle_create(/*numFds*/ 0, /*numInts*/ 0); + result.outputBuffers[i].releaseFence = android::dupToAidl(handle); + native_handle_delete(handle); } } @@ -1813,16 +1773,20 @@ Status ExternalCameraDeviceSession::processCaptureResult(std::shared_ptrbuffers[i].fenceTimeout) { result.outputBuffers[i].status = BufferStatus::ERROR; if (req->buffers[i].acquireFence >= 0) { - result.outputBuffers[i].releaseFence.fds.resize(1); - result.outputBuffers[i].releaseFence.fds.at(0).set(req->buffers[i].acquireFence); + native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); + handle->data[0] = req->buffers[i].acquireFence; + result.outputBuffers[i].releaseFence = android::dupToAidl(handle); + native_handle_delete(handle); } notifyError(req->frameNumber, req->buffers[i].streamId, ErrorCode::ERROR_BUFFER); } else { result.outputBuffers[i].status = BufferStatus::OK; // TODO: refactor if (req->buffers[i].acquireFence >= 0) { - result.outputBuffers[i].releaseFence.fds.resize(1); - result.outputBuffers[i].releaseFence.fds.at(0).set(req->buffers[i].acquireFence); + native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); + handle->data[0] = req->buffers[i].acquireFence; + result.outputBuffers[i].releaseFence = android::dupToAidl(handle); + native_handle_delete(handle); } } } @@ -1997,9 +1961,16 @@ int ExternalCameraDeviceSession::BufferRequestThread::waitForBufferRequestDone( std::chrono::milliseconds timeout = std::chrono::milliseconds(kReqProcTimeoutMs); auto st = mRequestDoneCond.wait_for(lk, timeout); if (st == std::cv_status::timeout) { + mRequestingBuffer = false; ALOGE("%s: wait for buffer request finish timeout!", __FUNCTION__); return -1; } + + if (mPendingReturnBufferReqs.empty()) { + mRequestingBuffer = false; + ALOGE("%s: cameraservice did not return any buffers!", __FUNCTION__); + return -1; + } } mRequestingBuffer = false; *outBufReqs = std::move(mPendingReturnBufferReqs); @@ -2049,6 +2020,8 @@ bool ExternalCameraDeviceSession::BufferRequestThread::threadLoop() { if (!ret.isOk()) { ALOGE("%s: Transaction error: %d:%d", __FUNCTION__, ret.getExceptionCode(), ret.getServiceSpecificError()); + mBufferReqs.clear(); + mRequestDoneCond.notify_one(); return false; } @@ -2057,17 +2030,24 @@ bool ExternalCameraDeviceSession::BufferRequestThread::threadLoop() { if (bufRets.size() != mHalBufferReqs.size()) { ALOGE("%s: expect %zu buffer requests returned, only got %zu", __FUNCTION__, mHalBufferReqs.size(), bufRets.size()); + mBufferReqs.clear(); + lk.unlock(); + mRequestDoneCond.notify_one(); return false; } auto parent = mParent.lock(); if (parent == nullptr) { ALOGE("%s: session has been disconnected!", __FUNCTION__); + mBufferReqs.clear(); + lk.unlock(); + mRequestDoneCond.notify_one(); return false; } std::vector importedFences; importedFences.resize(bufRets.size()); + bool hasError = false; for (size_t i = 0; i < bufRets.size(); i++) { int streamId = bufRets[i].streamId; switch (bufRets[i].val.getTag()) { @@ -2078,7 +2058,8 @@ bool ExternalCameraDeviceSession::BufferRequestThread::threadLoop() { bufRets[i].val.get(); if (hBufs.size() != 1) { ALOGE("%s: expect 1 buffer returned, got %zu!", __FUNCTION__, hBufs.size()); - return false; + hasError = true; + break; } const StreamBuffer& hBuf = hBufs[0]; @@ -2086,31 +2067,47 @@ bool ExternalCameraDeviceSession::BufferRequestThread::threadLoop() { // TODO: create a batch import API so we don't need to lock/unlock mCbsLock // repeatedly? lk.unlock(); - Status s = - parent->importBuffer(streamId, hBuf.bufferId, makeFromAidl(hBuf.buffer), - /*out*/ &mBufferReqs[i].bufPtr); + native_handle_t* h = makeFromAidl(hBuf.buffer); + Status s = parent->importBuffer(streamId, hBuf.bufferId, h, + /*out*/ &mBufferReqs[i].bufPtr); + native_handle_delete(h); lk.lock(); if (s != Status::OK) { ALOGE("%s: stream %d import buffer failed!", __FUNCTION__, streamId); cleanupInflightFences(importedFences, i - 1); - return false; + hasError = true; + break; } - if (!sHandleImporter.importFence(makeFromAidl(hBuf.acquireFence), - mBufferReqs[i].acquireFence)) { + h = makeFromAidl(hBuf.acquireFence); + if (!sHandleImporter.importFence(h, mBufferReqs[i].acquireFence)) { ALOGE("%s: stream %d import fence failed!", __FUNCTION__, streamId); cleanupInflightFences(importedFences, i - 1); - return false; + native_handle_delete(h); + hasError = true; + break; } + native_handle_delete(h); importedFences[i] = mBufferReqs[i].acquireFence; } break; default: ALOGE("%s: Unknown StreamBuffersVal!", __FUNCTION__); - return false; + hasError = true; + break; + } + if (hasError) { + mBufferReqs.clear(); + lk.unlock(); + mRequestDoneCond.notify_one(); + return true; } } } else { ALOGE("%s: requestStreamBuffers call failed!", __FUNCTION__); + mBufferReqs.clear(); + lk.unlock(); + mRequestDoneCond.notify_one(); + return true; } mPendingReturnBufferReqs = std::move(mBufferReqs); @@ -2815,6 +2812,11 @@ bool ExternalCameraDeviceSession::OutputThread::threadLoop() { if (res != 0) { // For some webcam, the first few V4L2 frames might be malformed... ALOGE("%s: Convert V4L2 frame to YU12 failed! res %d", __FUNCTION__, res); + + ATRACE_BEGIN("Wait for BufferRequest done"); + res = waitForBufferRequestDone(&req->buffers); + ATRACE_END(); + lk.unlock(); Status st = parent->processCaptureRequestError(req); if (st != Status::OK) { @@ -2830,9 +2832,15 @@ bool ExternalCameraDeviceSession::OutputThread::threadLoop() { ATRACE_END(); if (res != 0) { + // HAL buffer management buffer request can fail ALOGE("%s: wait for BufferRequest done failed! res %d", __FUNCTION__, res); lk.unlock(); - return onDeviceError("%s: failed to process buffer request error!", __FUNCTION__); + Status st = parent->processCaptureRequestError(req); + if (st != Status::OK) { + return onDeviceError("%s: failed to process capture request error!", __FUNCTION__); + } + signalRequestDone(); + return true; } ALOGV("%s processing new request", __FUNCTION__); diff --git a/camera/device/default/ExternalCameraDeviceSession.h b/camera/device/default/ExternalCameraDeviceSession.h index 736bfd152866344e313222a38bad033df64ed294..795b5899b687ff3ae1bf960d08f52272e7d5b3e2 100644 --- a/camera/device/default/ExternalCameraDeviceSession.h +++ b/camera/device/default/ExternalCameraDeviceSession.h @@ -266,15 +266,6 @@ class ExternalCameraDeviceSession : public BnCameraDeviceSession, public OutputT const std::vector& supportedFormats, const ExternalCameraConfig& cfg); - // Validate and import request's output buffers and acquire fence - Status importRequestLocked(const CaptureRequest& request, - std::vector& allBufPtrs, - std::vector& allFences); - - Status importRequestLockedImpl(const CaptureRequest& request, - std::vector& allBufPtrs, - std::vector& allFences); - Status importBufferLocked(int32_t streamId, uint64_t bufId, buffer_handle_t buf, /*out*/ buffer_handle_t** outBufPtr); static void cleanupInflightFences(std::vector& allFences, size_t numFences); diff --git a/camera/device/default/ExternalCameraOfflineSession.cpp b/camera/device/default/ExternalCameraOfflineSession.cpp index 53bd44f4faaaea7624ccafb1e8e173342dd9f44a..2d4e2e02344920f50a89e0dd528468d8f7aa0145 100644 --- a/camera/device/default/ExternalCameraOfflineSession.cpp +++ b/camera/device/default/ExternalCameraOfflineSession.cpp @@ -110,7 +110,8 @@ Status ExternalCameraOfflineSession::processCaptureResult(std::shared_ptrbuffers[i].acquireFence >= 0) { native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); handle->data[0] = req->buffers[i].acquireFence; - result.outputBuffers[i].releaseFence = android::makeToAidl(handle); + result.outputBuffers[i].releaseFence = android::dupToAidl(handle); + native_handle_delete(handle); } notifyError(req->frameNumber, req->buffers[i].streamId, ErrorCode::ERROR_BUFFER); } else { @@ -119,7 +120,8 @@ Status ExternalCameraOfflineSession::processCaptureResult(std::shared_ptrbuffers[i].acquireFence >= 0) { native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); handle->data[0] = req->buffers[i].acquireFence; - outputBuffer.releaseFence = android::makeToAidl(handle); + outputBuffer.releaseFence = android::dupToAidl(handle); + native_handle_delete(handle); } } } @@ -247,7 +249,8 @@ Status ExternalCameraOfflineSession::processCaptureRequestError( if (req->buffers[i].acquireFence >= 0) { native_handle_t* handle = native_handle_create(/*numFds*/ 1, /*numInts*/ 0); handle->data[0] = req->buffers[i].acquireFence; - outputBuffer.releaseFence = makeToAidl(handle); + outputBuffer.releaseFence = dupToAidl(handle); + native_handle_delete(handle); } } diff --git a/camera/device/default/ExternalCameraUtils.cpp b/camera/device/default/ExternalCameraUtils.cpp index 30c216f209365b4580f4bb5344df6dee73485576..2dc3c77ec871e7caf56a18dac705a09d11b0bb74 100644 --- a/camera/device/default/ExternalCameraUtils.cpp +++ b/camera/device/default/ExternalCameraUtils.cpp @@ -750,18 +750,12 @@ Size getMaxThumbnailResolution(const common::V1_0::helper::CameraMetadata& chars void freeReleaseFences(std::vector& results) { for (auto& result : results) { - native_handle_t* inputReleaseFence = - ::android::makeFromAidl(result.inputBuffer.releaseFence); - if (inputReleaseFence != nullptr) { - native_handle_close(inputReleaseFence); - native_handle_delete(inputReleaseFence); - } + // NativeHandles free fd's on desctruction. Simply delete the objects! + result.inputBuffer.releaseFence.fds.clear(); // Implicitly closes fds + result.inputBuffer.releaseFence.ints.clear(); for (auto& buf : result.outputBuffers) { - native_handle_t* outReleaseFence = ::android::makeFromAidl(buf.releaseFence); - if (outReleaseFence != nullptr) { - native_handle_close(outReleaseFence); - native_handle_delete(outReleaseFence); - } + buf.releaseFence.fds.clear(); // Implicitly closes fds + buf.releaseFence.ints.clear(); } } } diff --git a/camera/metadata/3.2/Android.bp b/camera/metadata/3.2/Android.bp index ec8107e9f7e97ef73222d367dcebe1f43cacb4e6..46029235850317f497bcbe529a70b20ec1ccf57e 100644 --- a/camera/metadata/3.2/Android.bp +++ b/camera/metadata/3.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/metadata/3.3/Android.bp b/camera/metadata/3.3/Android.bp index 4bed25b2f46df5249bcf76dd3753e50292fedf9a..ba0ec80d81337736ec373954284bf8ba102a9113 100644 --- a/camera/metadata/3.3/Android.bp +++ b/camera/metadata/3.3/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/metadata/3.4/Android.bp b/camera/metadata/3.4/Android.bp index fdddfdf07a07afa0daec91be2c773873c6da020b..893a6aa5e8ea994f81947534b3acf9f95e37eed2 100644 --- a/camera/metadata/3.4/Android.bp +++ b/camera/metadata/3.4/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/metadata/3.5/Android.bp b/camera/metadata/3.5/Android.bp index 9349d546c5788ff727c4babc15fde1fae6560580..df4dddd13112358263eeba81343ffc915e38d400 100644 --- a/camera/metadata/3.5/Android.bp +++ b/camera/metadata/3.5/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/metadata/3.6/Android.bp b/camera/metadata/3.6/Android.bp index 9e2b8a35e6af95096e10c4003dd0d8da8b1c545e..40f22fdf408d4239195e308d8820cc27a378acfa 100644 --- a/camera/metadata/3.6/Android.bp +++ b/camera/metadata/3.6/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/metadata/3.7/Android.bp b/camera/metadata/3.7/Android.bp index 14981b850fd1106b1123614bec383b5251f1eb7a..70a9d561b602d24bb6bf8acdea31bcfa7a1afab4 100644 --- a/camera/metadata/3.7/Android.bp +++ b/camera/metadata/3.7/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/metadata/aidl/Android.bp b/camera/metadata/aidl/Android.bp index 2b2be55914a9fd60b9ab9409acdcc75eaf67bb51..ae8ba14256b9a9776af539922a6f91f929c91344 100644 --- a/camera/metadata/aidl/Android.bp +++ b/camera/metadata/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -11,7 +12,7 @@ aidl_interface { name: "android.hardware.camera.metadata", vendor_available: true, srcs: ["android/hardware/camera/metadata/*.aidl"], - frozen: false, + frozen: true, stability: "vintf", backend: { cpp: { @@ -33,6 +34,10 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, ], diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/.hash b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..961b3dd108454d64fe73799335ee0c4e4c31e23b --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/.hash @@ -0,0 +1 @@ +c0c7370cf1dd22d0e7416ddb1cb942dd0035e59a diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLensFacing.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLensFacing.aidl new file mode 100644 index 0000000000000000000000000000000000000000..18917f7752844ee5521cf7c02d7bdef0373fda4b --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLensFacing.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum AutomotiveLensFacing { + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_OTHER, + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_FRONT, + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_REAR, + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_LEFT, + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_RIGHT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_OTHER, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_LEFT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_CENTER, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_RIGHT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_LEFT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_CENTER, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_RIGHT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_LEFT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_CENTER, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_RIGHT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLocation.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLocation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ad6003f3b15083020641907d035a0a738e654e97 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/AutomotiveLocation.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum AutomotiveLocation { + ANDROID_AUTOMOTIVE_LOCATION_INTERIOR, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_OTHER, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_FRONT, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_REAR, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_LEFT, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_RIGHT, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_OTHER, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_FRONT, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_REAR, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_LEFT, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_RIGHT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/BlackLevelLock.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/BlackLevelLock.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1f3e76f0b81e939caf9a85face2e74905dca7c81 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/BlackLevelLock.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum BlackLevelLock { + ANDROID_BLACK_LEVEL_LOCK_OFF, + ANDROID_BLACK_LEVEL_LOCK_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSection.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSection.aidl new file mode 100644 index 0000000000000000000000000000000000000000..138101b4cb2e437ca593385317995871d4d9bb16 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSection.aidl @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum CameraMetadataSection { + ANDROID_COLOR_CORRECTION, + ANDROID_CONTROL, + ANDROID_DEMOSAIC, + ANDROID_EDGE, + ANDROID_FLASH, + ANDROID_FLASH_INFO, + ANDROID_HOT_PIXEL, + ANDROID_JPEG, + ANDROID_LENS, + ANDROID_LENS_INFO, + ANDROID_NOISE_REDUCTION, + ANDROID_QUIRKS, + ANDROID_REQUEST, + ANDROID_SCALER, + ANDROID_SENSOR, + ANDROID_SENSOR_INFO, + ANDROID_SHADING, + ANDROID_STATISTICS, + ANDROID_STATISTICS_INFO, + ANDROID_TONEMAP, + ANDROID_LED, + ANDROID_INFO, + ANDROID_BLACK_LEVEL, + ANDROID_SYNC, + ANDROID_REPROCESS, + ANDROID_DEPTH, + ANDROID_LOGICAL_MULTI_CAMERA, + ANDROID_DISTORTION_CORRECTION, + ANDROID_HEIC, + ANDROID_HEIC_INFO, + ANDROID_AUTOMOTIVE, + ANDROID_AUTOMOTIVE_LENS, + ANDROID_EXTENSION, + ANDROID_JPEGR, + VENDOR_SECTION = 0x8000, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSectionStart.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSectionStart.aidl new file mode 100644 index 0000000000000000000000000000000000000000..85eee08a454aca382a02beecf663f039ba8013a0 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataSectionStart.aidl @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum CameraMetadataSectionStart { + ANDROID_COLOR_CORRECTION_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_COLOR_CORRECTION << 16) /* 0 */, + ANDROID_CONTROL_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_CONTROL << 16) /* 65536 */, + ANDROID_DEMOSAIC_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_DEMOSAIC << 16) /* 131072 */, + ANDROID_EDGE_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_EDGE << 16) /* 196608 */, + ANDROID_FLASH_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_FLASH << 16) /* 262144 */, + ANDROID_FLASH_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_FLASH_INFO << 16) /* 327680 */, + ANDROID_HOT_PIXEL_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_HOT_PIXEL << 16) /* 393216 */, + ANDROID_JPEG_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_JPEG << 16) /* 458752 */, + ANDROID_LENS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_LENS << 16) /* 524288 */, + ANDROID_LENS_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_LENS_INFO << 16) /* 589824 */, + ANDROID_NOISE_REDUCTION_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_NOISE_REDUCTION << 16) /* 655360 */, + ANDROID_QUIRKS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_QUIRKS << 16) /* 720896 */, + ANDROID_REQUEST_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_REQUEST << 16) /* 786432 */, + ANDROID_SCALER_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SCALER << 16) /* 851968 */, + ANDROID_SENSOR_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SENSOR << 16) /* 917504 */, + ANDROID_SENSOR_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SENSOR_INFO << 16) /* 983040 */, + ANDROID_SHADING_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SHADING << 16) /* 1048576 */, + ANDROID_STATISTICS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_STATISTICS << 16) /* 1114112 */, + ANDROID_STATISTICS_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_STATISTICS_INFO << 16) /* 1179648 */, + ANDROID_TONEMAP_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_TONEMAP << 16) /* 1245184 */, + ANDROID_LED_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_LED << 16) /* 1310720 */, + ANDROID_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_INFO << 16) /* 1376256 */, + ANDROID_BLACK_LEVEL_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_BLACK_LEVEL << 16) /* 1441792 */, + ANDROID_SYNC_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SYNC << 16) /* 1507328 */, + ANDROID_REPROCESS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_REPROCESS << 16) /* 1572864 */, + ANDROID_DEPTH_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_DEPTH << 16) /* 1638400 */, + ANDROID_LOGICAL_MULTI_CAMERA_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_LOGICAL_MULTI_CAMERA << 16) /* 1703936 */, + ANDROID_DISTORTION_CORRECTION_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_DISTORTION_CORRECTION << 16) /* 1769472 */, + ANDROID_HEIC_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_HEIC << 16) /* 1835008 */, + ANDROID_HEIC_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_HEIC_INFO << 16) /* 1900544 */, + ANDROID_AUTOMOTIVE_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_AUTOMOTIVE << 16) /* 1966080 */, + ANDROID_AUTOMOTIVE_LENS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_AUTOMOTIVE_LENS << 16) /* 2031616 */, + ANDROID_EXTENSION_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_EXTENSION << 16) /* 2097152 */, + ANDROID_JPEGR_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_JPEGR << 16) /* 2162688 */, + VENDOR_SECTION_START = (android.hardware.camera.metadata.CameraMetadataSection.VENDOR_SECTION << 16) /* -2147483648 */, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataTag.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataTag.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9321ec0e37c2fc2d783133da286477c5342edbbe --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/CameraMetadataTag.aidl @@ -0,0 +1,356 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum CameraMetadataTag { + ANDROID_COLOR_CORRECTION_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_COLOR_CORRECTION_START /* 0 */, + ANDROID_COLOR_CORRECTION_TRANSFORM, + ANDROID_COLOR_CORRECTION_GAINS, + ANDROID_COLOR_CORRECTION_ABERRATION_MODE, + ANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES, + ANDROID_CONTROL_AE_ANTIBANDING_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_CONTROL_START /* 65536 */, + ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION, + ANDROID_CONTROL_AE_LOCK, + ANDROID_CONTROL_AE_MODE, + ANDROID_CONTROL_AE_REGIONS, + ANDROID_CONTROL_AE_TARGET_FPS_RANGE, + ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, + ANDROID_CONTROL_AF_MODE, + ANDROID_CONTROL_AF_REGIONS, + ANDROID_CONTROL_AF_TRIGGER, + ANDROID_CONTROL_AWB_LOCK, + ANDROID_CONTROL_AWB_MODE, + ANDROID_CONTROL_AWB_REGIONS, + ANDROID_CONTROL_CAPTURE_INTENT, + ANDROID_CONTROL_EFFECT_MODE, + ANDROID_CONTROL_MODE, + ANDROID_CONTROL_SCENE_MODE, + ANDROID_CONTROL_VIDEO_STABILIZATION_MODE, + ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES, + ANDROID_CONTROL_AE_AVAILABLE_MODES, + ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, + ANDROID_CONTROL_AE_COMPENSATION_RANGE, + ANDROID_CONTROL_AE_COMPENSATION_STEP, + ANDROID_CONTROL_AF_AVAILABLE_MODES, + ANDROID_CONTROL_AVAILABLE_EFFECTS, + ANDROID_CONTROL_AVAILABLE_SCENE_MODES, + ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES, + ANDROID_CONTROL_AWB_AVAILABLE_MODES, + ANDROID_CONTROL_MAX_REGIONS, + ANDROID_CONTROL_SCENE_MODE_OVERRIDES, + ANDROID_CONTROL_AE_PRECAPTURE_ID, + ANDROID_CONTROL_AE_STATE, + ANDROID_CONTROL_AF_STATE, + ANDROID_CONTROL_AF_TRIGGER_ID, + ANDROID_CONTROL_AWB_STATE, + ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS, + ANDROID_CONTROL_AE_LOCK_AVAILABLE, + ANDROID_CONTROL_AWB_LOCK_AVAILABLE, + ANDROID_CONTROL_AVAILABLE_MODES, + ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE, + ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST, + ANDROID_CONTROL_ENABLE_ZSL, + ANDROID_CONTROL_AF_SCENE_CHANGE, + ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES, + ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES, + ANDROID_CONTROL_EXTENDED_SCENE_MODE, + ANDROID_CONTROL_ZOOM_RATIO_RANGE, + ANDROID_CONTROL_ZOOM_RATIO, + ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_CONTROL_SETTINGS_OVERRIDE = 65588, + ANDROID_CONTROL_AVAILABLE_SETTINGS_OVERRIDES, + ANDROID_CONTROL_SETTINGS_OVERRIDING_FRAME_NUMBER, + ANDROID_CONTROL_AUTOFRAMING, + ANDROID_CONTROL_AUTOFRAMING_AVAILABLE, + ANDROID_CONTROL_AUTOFRAMING_STATE, + ANDROID_CONTROL_LOW_LIGHT_BOOST_INFO_LUMINANCE_RANGE, + ANDROID_CONTROL_LOW_LIGHT_BOOST_STATE, + ANDROID_DEMOSAIC_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_DEMOSAIC_START /* 131072 */, + ANDROID_EDGE_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_EDGE_START /* 196608 */, + ANDROID_EDGE_STRENGTH, + ANDROID_EDGE_AVAILABLE_EDGE_MODES, + ANDROID_FLASH_FIRING_POWER = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_FLASH_START /* 262144 */, + ANDROID_FLASH_FIRING_TIME, + ANDROID_FLASH_MODE, + ANDROID_FLASH_COLOR_TEMPERATURE, + ANDROID_FLASH_MAX_ENERGY, + ANDROID_FLASH_STATE, + ANDROID_FLASH_STRENGTH_LEVEL, + ANDROID_FLASH_SINGLE_STRENGTH_MAX_LEVEL, + ANDROID_FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL, + ANDROID_FLASH_TORCH_STRENGTH_MAX_LEVEL, + ANDROID_FLASH_TORCH_STRENGTH_DEFAULT_LEVEL, + ANDROID_FLASH_INFO_AVAILABLE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_FLASH_INFO_START /* 327680 */, + ANDROID_FLASH_INFO_CHARGE_DURATION, + ANDROID_FLASH_INFO_STRENGTH_MAXIMUM_LEVEL, + ANDROID_FLASH_INFO_STRENGTH_DEFAULT_LEVEL, + ANDROID_HOT_PIXEL_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_HOT_PIXEL_START /* 393216 */, + ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES, + ANDROID_JPEG_GPS_COORDINATES = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_JPEG_START /* 458752 */, + ANDROID_JPEG_GPS_PROCESSING_METHOD, + ANDROID_JPEG_GPS_TIMESTAMP, + ANDROID_JPEG_ORIENTATION, + ANDROID_JPEG_QUALITY, + ANDROID_JPEG_THUMBNAIL_QUALITY, + ANDROID_JPEG_THUMBNAIL_SIZE, + ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES, + ANDROID_JPEG_MAX_SIZE, + ANDROID_JPEG_SIZE, + ANDROID_LENS_APERTURE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_LENS_START /* 524288 */, + ANDROID_LENS_FILTER_DENSITY, + ANDROID_LENS_FOCAL_LENGTH, + ANDROID_LENS_FOCUS_DISTANCE, + ANDROID_LENS_OPTICAL_STABILIZATION_MODE, + ANDROID_LENS_FACING, + ANDROID_LENS_POSE_ROTATION, + ANDROID_LENS_POSE_TRANSLATION, + ANDROID_LENS_FOCUS_RANGE, + ANDROID_LENS_STATE, + ANDROID_LENS_INTRINSIC_CALIBRATION, + ANDROID_LENS_RADIAL_DISTORTION, + ANDROID_LENS_POSE_REFERENCE, + ANDROID_LENS_DISTORTION, + ANDROID_LENS_DISTORTION_MAXIMUM_RESOLUTION, + ANDROID_LENS_INTRINSIC_CALIBRATION_MAXIMUM_RESOLUTION, + ANDROID_LENS_INFO_AVAILABLE_APERTURES = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_LENS_INFO_START /* 589824 */, + ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES, + ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS, + ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION, + ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE, + ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE, + ANDROID_LENS_INFO_SHADING_MAP_SIZE, + ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION, + ANDROID_NOISE_REDUCTION_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_NOISE_REDUCTION_START /* 655360 */, + ANDROID_NOISE_REDUCTION_STRENGTH, + ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES, + ANDROID_QUIRKS_METERING_CROP_REGION = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_QUIRKS_START /* 720896 */, + ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO, + ANDROID_QUIRKS_USE_ZSL_FORMAT, + ANDROID_QUIRKS_USE_PARTIAL_RESULT, + ANDROID_QUIRKS_PARTIAL_RESULT, + ANDROID_REQUEST_FRAME_COUNT = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_REQUEST_START /* 786432 */, + ANDROID_REQUEST_ID, + ANDROID_REQUEST_INPUT_STREAMS, + ANDROID_REQUEST_METADATA_MODE, + ANDROID_REQUEST_OUTPUT_STREAMS, + ANDROID_REQUEST_TYPE, + ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS, + ANDROID_REQUEST_MAX_NUM_REPROCESS_STREAMS, + ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS, + ANDROID_REQUEST_PIPELINE_DEPTH, + ANDROID_REQUEST_PIPELINE_MAX_DEPTH, + ANDROID_REQUEST_PARTIAL_RESULT_COUNT, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES, + ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS, + ANDROID_REQUEST_AVAILABLE_RESULT_KEYS, + ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS, + ANDROID_REQUEST_AVAILABLE_SESSION_KEYS, + ANDROID_REQUEST_AVAILABLE_PHYSICAL_CAMERA_REQUEST_KEYS, + ANDROID_REQUEST_CHARACTERISTIC_KEYS_NEEDING_PERMISSION, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP, + ANDROID_REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE, + ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP, + ANDROID_SCALER_CROP_REGION = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SCALER_START /* 851968 */, + ANDROID_SCALER_AVAILABLE_FORMATS, + ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS, + ANDROID_SCALER_AVAILABLE_JPEG_SIZES, + ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM, + ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS, + ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES, + ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS, + ANDROID_SCALER_AVAILABLE_RAW_SIZES, + ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP, + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS, + ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS, + ANDROID_SCALER_AVAILABLE_STALL_DURATIONS, + ANDROID_SCALER_CROPPING_TYPE, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_INPUT_OUTPUT_FORMATS_MAP, + ANDROID_SCALER_AVAILABLE_ROTATE_AND_CROP_MODES, + ANDROID_SCALER_ROTATE_AND_CROP, + ANDROID_SCALER_DEFAULT_SECURE_IMAGE_SIZE, + ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS, + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_SCALER_AVAILABLE_STALL_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP_MAXIMUM_RESOLUTION, + ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES = 851994, + ANDROID_SCALER_RAW_CROP_REGION, + ANDROID_SENSOR_EXPOSURE_TIME = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SENSOR_START /* 917504 */, + ANDROID_SENSOR_FRAME_DURATION, + ANDROID_SENSOR_SENSITIVITY, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1, + ANDROID_SENSOR_REFERENCE_ILLUMINANT2, + ANDROID_SENSOR_CALIBRATION_TRANSFORM1, + ANDROID_SENSOR_CALIBRATION_TRANSFORM2, + ANDROID_SENSOR_COLOR_TRANSFORM1, + ANDROID_SENSOR_COLOR_TRANSFORM2, + ANDROID_SENSOR_FORWARD_MATRIX1, + ANDROID_SENSOR_FORWARD_MATRIX2, + ANDROID_SENSOR_BASE_GAIN_FACTOR, + ANDROID_SENSOR_BLACK_LEVEL_PATTERN, + ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY, + ANDROID_SENSOR_ORIENTATION, + ANDROID_SENSOR_PROFILE_HUE_SAT_MAP_DIMENSIONS, + ANDROID_SENSOR_TIMESTAMP, + ANDROID_SENSOR_TEMPERATURE, + ANDROID_SENSOR_NEUTRAL_COLOR_POINT, + ANDROID_SENSOR_NOISE_PROFILE, + ANDROID_SENSOR_PROFILE_HUE_SAT_MAP, + ANDROID_SENSOR_PROFILE_TONE_CURVE, + ANDROID_SENSOR_GREEN_SPLIT, + ANDROID_SENSOR_TEST_PATTERN_DATA, + ANDROID_SENSOR_TEST_PATTERN_MODE, + ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES, + ANDROID_SENSOR_ROLLING_SHUTTER_SKEW, + ANDROID_SENSOR_OPTICAL_BLACK_REGIONS, + ANDROID_SENSOR_DYNAMIC_BLACK_LEVEL, + ANDROID_SENSOR_DYNAMIC_WHITE_LEVEL, + ANDROID_SENSOR_OPAQUE_RAW_SIZE, + ANDROID_SENSOR_OPAQUE_RAW_SIZE_MAXIMUM_RESOLUTION, + ANDROID_SENSOR_PIXEL_MODE, + ANDROID_SENSOR_RAW_BINNING_FACTOR_USED, + ANDROID_SENSOR_READOUT_TIMESTAMP, + ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SENSOR_INFO_START /* 983040 */, + ANDROID_SENSOR_INFO_SENSITIVITY_RANGE, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT, + ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE, + ANDROID_SENSOR_INFO_MAX_FRAME_DURATION, + ANDROID_SENSOR_INFO_PHYSICAL_SIZE, + ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE, + ANDROID_SENSOR_INFO_WHITE_LEVEL, + ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE, + ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED, + ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE, + ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION, + ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION, + ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION, + ANDROID_SENSOR_INFO_BINNING_FACTOR, + ANDROID_SHADING_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SHADING_START /* 1048576 */, + ANDROID_SHADING_STRENGTH, + ANDROID_SHADING_AVAILABLE_MODES, + ANDROID_STATISTICS_FACE_DETECT_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_STATISTICS_START /* 1114112 */, + ANDROID_STATISTICS_HISTOGRAM_MODE, + ANDROID_STATISTICS_SHARPNESS_MAP_MODE, + ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE, + ANDROID_STATISTICS_FACE_IDS, + ANDROID_STATISTICS_FACE_LANDMARKS, + ANDROID_STATISTICS_FACE_RECTANGLES, + ANDROID_STATISTICS_FACE_SCORES, + ANDROID_STATISTICS_HISTOGRAM, + ANDROID_STATISTICS_SHARPNESS_MAP, + ANDROID_STATISTICS_LENS_SHADING_CORRECTION_MAP, + ANDROID_STATISTICS_LENS_SHADING_MAP, + ANDROID_STATISTICS_PREDICTED_COLOR_GAINS, + ANDROID_STATISTICS_PREDICTED_COLOR_TRANSFORM, + ANDROID_STATISTICS_SCENE_FLICKER, + ANDROID_STATISTICS_HOT_PIXEL_MAP, + ANDROID_STATISTICS_LENS_SHADING_MAP_MODE, + ANDROID_STATISTICS_OIS_DATA_MODE, + ANDROID_STATISTICS_OIS_TIMESTAMPS, + ANDROID_STATISTICS_OIS_X_SHIFTS, + ANDROID_STATISTICS_OIS_Y_SHIFTS, + ANDROID_STATISTICS_LENS_INTRINSIC_TIMESTAMPS, + ANDROID_STATISTICS_LENS_INTRINSIC_SAMPLES, + ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_STATISTICS_INFO_START /* 1179648 */, + ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT, + ANDROID_STATISTICS_INFO_MAX_FACE_COUNT, + ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT, + ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE, + ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE, + ANDROID_STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES, + ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES, + ANDROID_STATISTICS_INFO_AVAILABLE_OIS_DATA_MODES, + ANDROID_TONEMAP_CURVE_BLUE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_TONEMAP_START /* 1245184 */, + ANDROID_TONEMAP_CURVE_GREEN, + ANDROID_TONEMAP_CURVE_RED, + ANDROID_TONEMAP_MODE, + ANDROID_TONEMAP_MAX_CURVE_POINTS, + ANDROID_TONEMAP_AVAILABLE_TONE_MAP_MODES, + ANDROID_TONEMAP_GAMMA, + ANDROID_TONEMAP_PRESET_CURVE, + ANDROID_LED_TRANSMIT = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_LED_START /* 1310720 */, + ANDROID_LED_AVAILABLE_LEDS, + ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_INFO_START /* 1376256 */, + ANDROID_INFO_VERSION, + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION, + ANDROID_INFO_DEVICE_STATE_ORIENTATIONS, + ANDROID_BLACK_LEVEL_LOCK = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_BLACK_LEVEL_START /* 1441792 */, + ANDROID_SYNC_FRAME_NUMBER = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SYNC_START /* 1507328 */, + ANDROID_SYNC_MAX_LATENCY, + ANDROID_REPROCESS_EFFECTIVE_EXPOSURE_FACTOR = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_REPROCESS_START /* 1572864 */, + ANDROID_REPROCESS_MAX_CAPTURE_STALL, + ANDROID_DEPTH_MAX_DEPTH_SAMPLES = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_DEPTH_START /* 1638400 */, + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS, + ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS, + ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS, + ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE, + ANDROID_DEPTH_AVAILABLE_RECOMMENDED_DEPTH_STREAM_CONFIGURATIONS, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS, + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_LOGICAL_MULTI_CAMERA_START /* 1703936 */, + ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE, + ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID, + ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_SENSOR_CROP_REGION, + ANDROID_DISTORTION_CORRECTION_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_DISTORTION_CORRECTION_START /* 1769472 */, + ANDROID_DISTORTION_CORRECTION_AVAILABLE_MODES, + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_HEIC_START /* 1835008 */, + ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS, + ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS, + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_HEIC_INFO_SUPPORTED = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_HEIC_INFO_START /* 1900544 */, + ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT, + ANDROID_AUTOMOTIVE_LOCATION = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_AUTOMOTIVE_START /* 1966080 */, + ANDROID_AUTOMOTIVE_LENS_FACING = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_AUTOMOTIVE_LENS_START /* 2031616 */, + ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_JPEGR_START /* 2162688 */, + ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS, + ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS, + ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS_MAXIMUM_RESOLUTION, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0b976f3d8b94c4cb9e0c89fabf734f3dee9284de --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ColorCorrectionAberrationMode { + ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF, + ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST, + ANDROID_COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..23816057195e172e7586304db5f1dca7408750d3 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ColorCorrectionMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ColorCorrectionMode { + ANDROID_COLOR_CORRECTION_MODE_TRANSFORM_MATRIX, + ANDROID_COLOR_CORRECTION_MODE_FAST, + ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0d5aad9a92e387011a2ed5daa1426e95ef2d49a0 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAeAntibandingMode { + ANDROID_CONTROL_AE_ANTIBANDING_MODE_OFF, + ANDROID_CONTROL_AE_ANTIBANDING_MODE_50HZ, + ANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ, + ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLock.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLock.aidl new file mode 100644 index 0000000000000000000000000000000000000000..766b835dc1f012ad07c1015420e5b01e3d5cab57 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLock.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAeLock { + ANDROID_CONTROL_AE_LOCK_OFF, + ANDROID_CONTROL_AE_LOCK_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLockAvailable.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLockAvailable.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a22c93e379200be65ea8b2783fecfdee83d5b610 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeLockAvailable.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAeLockAvailable { + ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE, + ANDROID_CONTROL_AE_LOCK_AVAILABLE_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c1423aa87e5e64080a1283de48976a7763eb6737 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeMode.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAeMode { + ANDROID_CONTROL_AE_MODE_OFF, + ANDROID_CONTROL_AE_MODE_ON, + ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH, + ANDROID_CONTROL_AE_MODE_ON_ALWAYS_FLASH, + ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE, + ANDROID_CONTROL_AE_MODE_ON_EXTERNAL_FLASH, + ANDROID_CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl new file mode 100644 index 0000000000000000000000000000000000000000..20382c0b3cf0260a4c9bd790ac7855a7166bb445 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAePrecaptureTrigger { + ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE, + ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_START, + ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e52eafe0d79dacf21a187524ec1d127e15198632 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAeState.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAeState { + ANDROID_CONTROL_AE_STATE_INACTIVE, + ANDROID_CONTROL_AE_STATE_SEARCHING, + ANDROID_CONTROL_AE_STATE_CONVERGED, + ANDROID_CONTROL_AE_STATE_LOCKED, + ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED, + ANDROID_CONTROL_AE_STATE_PRECAPTURE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6cd46c68dbcc8f7d4256180631e423afa90560b0 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfMode.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAfMode { + ANDROID_CONTROL_AF_MODE_OFF, + ANDROID_CONTROL_AF_MODE_AUTO, + ANDROID_CONTROL_AF_MODE_MACRO, + ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO, + ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE, + ANDROID_CONTROL_AF_MODE_EDOF, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfSceneChange.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfSceneChange.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ba853a127024eee07f00d82ad56ce32dd02782a9 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfSceneChange.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAfSceneChange { + ANDROID_CONTROL_AF_SCENE_CHANGE_NOT_DETECTED, + ANDROID_CONTROL_AF_SCENE_CHANGE_DETECTED, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..25b6a1c01e46af17f2d25436d2ea187d080ce68b --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfState.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAfState { + ANDROID_CONTROL_AF_STATE_INACTIVE, + ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN, + ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED, + ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN, + ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED, + ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED, + ANDROID_CONTROL_AF_STATE_PASSIVE_UNFOCUSED, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfTrigger.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfTrigger.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9d61b2d4dceeec724f85f52298ccdf2e89744911 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAfTrigger.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAfTrigger { + ANDROID_CONTROL_AF_TRIGGER_IDLE, + ANDROID_CONTROL_AF_TRIGGER_START, + ANDROID_CONTROL_AF_TRIGGER_CANCEL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframing.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframing.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2daf00b5866e8e8052b716ceb00bf700273fb60d --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframing.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAutoframing { + ANDROID_CONTROL_AUTOFRAMING_OFF, + ANDROID_CONTROL_AUTOFRAMING_ON, + ANDROID_CONTROL_AUTOFRAMING_AUTO, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ab91bb444b038cbd07227d131a7729e014148bfb --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAutoframingAvailable { + ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_FALSE, + ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..db0d288fc4553cc3ba6e885d3ea98914345084dc --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAutoframingState.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAutoframingState { + ANDROID_CONTROL_AUTOFRAMING_STATE_INACTIVE, + ANDROID_CONTROL_AUTOFRAMING_STATE_FRAMING, + ANDROID_CONTROL_AUTOFRAMING_STATE_CONVERGED, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLock.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLock.aidl new file mode 100644 index 0000000000000000000000000000000000000000..949b5e89f25655dbb4b6ae707a56724358f0c1f3 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLock.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAwbLock { + ANDROID_CONTROL_AWB_LOCK_OFF, + ANDROID_CONTROL_AWB_LOCK_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl new file mode 100644 index 0000000000000000000000000000000000000000..80c4c3175f8753d48d60aaab4f10af32664d681a --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAwbLockAvailable { + ANDROID_CONTROL_AWB_LOCK_AVAILABLE_FALSE, + ANDROID_CONTROL_AWB_LOCK_AVAILABLE_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6ed9ece7aabb43757e5e5f0e11daab105b581616 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbMode.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAwbMode { + ANDROID_CONTROL_AWB_MODE_OFF, + ANDROID_CONTROL_AWB_MODE_AUTO, + ANDROID_CONTROL_AWB_MODE_INCANDESCENT, + ANDROID_CONTROL_AWB_MODE_FLUORESCENT, + ANDROID_CONTROL_AWB_MODE_WARM_FLUORESCENT, + ANDROID_CONTROL_AWB_MODE_DAYLIGHT, + ANDROID_CONTROL_AWB_MODE_CLOUDY_DAYLIGHT, + ANDROID_CONTROL_AWB_MODE_TWILIGHT, + ANDROID_CONTROL_AWB_MODE_SHADE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c5b02d5ed6731c6386621951f39c7e008731301d --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlAwbState.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlAwbState { + ANDROID_CONTROL_AWB_STATE_INACTIVE, + ANDROID_CONTROL_AWB_STATE_SEARCHING, + ANDROID_CONTROL_AWB_STATE_CONVERGED, + ANDROID_CONTROL_AWB_STATE_LOCKED, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlCaptureIntent.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlCaptureIntent.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fa1c0a98ec1a2cf066d1c395b49ab27d78a44634 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlCaptureIntent.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlCaptureIntent { + ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM, + ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW, + ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE, + ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_RECORD, + ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT, + ANDROID_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG, + ANDROID_CONTROL_CAPTURE_INTENT_MANUAL, + ANDROID_CONTROL_CAPTURE_INTENT_MOTION_TRACKING, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEffectMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEffectMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..471deed753d02df28414537c54270cb6760f0cdc --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEffectMode.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlEffectMode { + ANDROID_CONTROL_EFFECT_MODE_OFF, + ANDROID_CONTROL_EFFECT_MODE_MONO, + ANDROID_CONTROL_EFFECT_MODE_NEGATIVE, + ANDROID_CONTROL_EFFECT_MODE_SOLARIZE, + ANDROID_CONTROL_EFFECT_MODE_SEPIA, + ANDROID_CONTROL_EFFECT_MODE_POSTERIZE, + ANDROID_CONTROL_EFFECT_MODE_WHITEBOARD, + ANDROID_CONTROL_EFFECT_MODE_BLACKBOARD, + ANDROID_CONTROL_EFFECT_MODE_AQUA, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEnableZsl.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEnableZsl.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3f2d4a32d14e5e70e25dac0d2a6219f9e5f830cf --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlEnableZsl.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlEnableZsl { + ANDROID_CONTROL_ENABLE_ZSL_FALSE, + ANDROID_CONTROL_ENABLE_ZSL_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7838288884b25e855e374bde718f110c22a4eaaa --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlExtendedSceneMode { + ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED = 0, + ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE, + ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS, + ANDROID_CONTROL_EXTENDED_SCENE_MODE_VENDOR_START = 0x40, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlLowLightBoostState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlLowLightBoostState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f8ae0130def36c0bd2880c050dde5597e9efc5a7 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlLowLightBoostState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlLowLightBoostState { + ANDROID_CONTROL_LOW_LIGHT_BOOST_STATE_INACTIVE, + ANDROID_CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c5a8172a07b78692747469ac74376eecef1ebabe --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlMode.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlMode { + ANDROID_CONTROL_MODE_OFF, + ANDROID_CONTROL_MODE_AUTO, + ANDROID_CONTROL_MODE_USE_SCENE_MODE, + ANDROID_CONTROL_MODE_OFF_KEEP_STATE, + ANDROID_CONTROL_MODE_USE_EXTENDED_SCENE_MODE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSceneMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSceneMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..62c67e3f3dffaa27f5ebf455c2dadeee96824148 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSceneMode.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlSceneMode { + ANDROID_CONTROL_SCENE_MODE_DISABLED = 0, + ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY, + ANDROID_CONTROL_SCENE_MODE_ACTION, + ANDROID_CONTROL_SCENE_MODE_PORTRAIT, + ANDROID_CONTROL_SCENE_MODE_LANDSCAPE, + ANDROID_CONTROL_SCENE_MODE_NIGHT, + ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT, + ANDROID_CONTROL_SCENE_MODE_THEATRE, + ANDROID_CONTROL_SCENE_MODE_BEACH, + ANDROID_CONTROL_SCENE_MODE_SNOW, + ANDROID_CONTROL_SCENE_MODE_SUNSET, + ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO, + ANDROID_CONTROL_SCENE_MODE_FIREWORKS, + ANDROID_CONTROL_SCENE_MODE_SPORTS, + ANDROID_CONTROL_SCENE_MODE_PARTY, + ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT, + ANDROID_CONTROL_SCENE_MODE_BARCODE, + ANDROID_CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO, + ANDROID_CONTROL_SCENE_MODE_HDR, + ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY_LOW_LIGHT, + ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_START = 100, + ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_END = 127, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSettingsOverride.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSettingsOverride.aidl new file mode 100644 index 0000000000000000000000000000000000000000..404bbfa50c61408211f9a3e68ebe82c0805028f5 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlSettingsOverride.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlSettingsOverride { + ANDROID_CONTROL_SETTINGS_OVERRIDE_OFF, + ANDROID_CONTROL_SETTINGS_OVERRIDE_ZOOM, + ANDROID_CONTROL_SETTINGS_OVERRIDE_VENDOR_START = 0x4000, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2b199eff0eff13e1dd4db1a5296d1813e31006d6 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ControlVideoStabilizationMode { + ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF, + ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_ON, + ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DemosaicMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DemosaicMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..577000933bef6340f3a3ec14b830cbc7e1fde076 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DemosaicMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DemosaicMode { + ANDROID_DEMOSAIC_MODE_FAST, + ANDROID_DEMOSAIC_MODE_HIGH_QUALITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0cce2da7a55625489a7fd98f2e95df158c8e1538 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DepthAvailableDepthStreamConfigurations { + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_OUTPUT, + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9be06db77a0f53046b5decf028af879a3f76a50a --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DepthAvailableDepthStreamConfigurationsMaximumResolution { + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c6aebaad0a8df126d0de0a247703015025b29af2 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DepthAvailableDynamicDepthStreamConfigurations { + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_OUTPUT, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4d5161d80055883c8e16729e329c733ba78c3361 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution { + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f7b69cd289807e95a56434dbb2552b3242a61a79 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DepthDepthIsExclusive { + ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_FALSE, + ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DistortionCorrectionMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DistortionCorrectionMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6e965f64f05e12d50e739054851b550234438585 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/DistortionCorrectionMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum DistortionCorrectionMode { + ANDROID_DISTORTION_CORRECTION_MODE_OFF, + ANDROID_DISTORTION_CORRECTION_MODE_FAST, + ANDROID_DISTORTION_CORRECTION_MODE_HIGH_QUALITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/EdgeMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/EdgeMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fdd32f429afcb5c301e19c6302b2728f559c1d47 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/EdgeMode.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum EdgeMode { + ANDROID_EDGE_MODE_OFF, + ANDROID_EDGE_MODE_FAST, + ANDROID_EDGE_MODE_HIGH_QUALITY, + ANDROID_EDGE_MODE_ZERO_SHUTTER_LAG, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashInfoAvailable.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashInfoAvailable.aidl new file mode 100644 index 0000000000000000000000000000000000000000..83292fee4c09ff6e757c773df58845ea069ede58 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashInfoAvailable.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum FlashInfoAvailable { + ANDROID_FLASH_INFO_AVAILABLE_FALSE, + ANDROID_FLASH_INFO_AVAILABLE_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e18ea3c076331d6ca6ea63bc2e3124013c9406f8 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum FlashMode { + ANDROID_FLASH_MODE_OFF, + ANDROID_FLASH_MODE_SINGLE, + ANDROID_FLASH_MODE_TORCH, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4343d4f1d64343e1d27614a6bf2a6b0933fc4588 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/FlashState.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum FlashState { + ANDROID_FLASH_STATE_UNAVAILABLE, + ANDROID_FLASH_STATE_CHARGING, + ANDROID_FLASH_STATE_READY, + ANDROID_FLASH_STATE_FIRED, + ANDROID_FLASH_STATE_PARTIAL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3957267612f972968d65e06d05f51b39bc5c6e03 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum HeicAvailableHeicStreamConfigurations { + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_OUTPUT, + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4eda5386d8ce3db55499e50d65ce24b3c6b8d552 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum HeicAvailableHeicStreamConfigurationsMaximumResolution { + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicInfoSupported.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicInfoSupported.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7079bbf82bd29da025cfac6b64c8e0432c7c0f7e --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HeicInfoSupported.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum HeicInfoSupported { + ANDROID_HEIC_INFO_SUPPORTED_FALSE, + ANDROID_HEIC_INFO_SUPPORTED_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HotPixelMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HotPixelMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..50b344620891cc3663e9cdaa30187f1dafee4eea --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/HotPixelMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum HotPixelMode { + ANDROID_HOT_PIXEL_MODE_OFF, + ANDROID_HOT_PIXEL_MODE_FAST, + ANDROID_HOT_PIXEL_MODE_HIGH_QUALITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2c31cff5a750a03877665787eaa7b99239006f8a --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum InfoSupportedBufferManagementVersion { + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_AIDL_DEVICE, + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3b5064757b719d03c6de15b4651ccf42637f1d41 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum InfoSupportedHardwareLevel { + ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED, + ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_FULL, + ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY, + ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_3, + ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cf9dbb72b9c119087366e9afb731048e5353ff41 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum JpegrAvailableJpegRStreamConfigurations { + ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_OUTPUT, + ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0a95e1f3a93c2874db2350c8d080bdd46cb5836a --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum JpegrAvailableJpegRStreamConfigurationsMaximumResolution { + ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedAvailableLeds.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedAvailableLeds.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b3beb2d144802f32ff33aed5418ec1e04a9befc7 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedAvailableLeds.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LedAvailableLeds { + ANDROID_LED_AVAILABLE_LEDS_TRANSMIT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedTransmit.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedTransmit.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0cbf239c94266bd8d1197f77e944b605b911cd6f --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LedTransmit.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LedTransmit { + ANDROID_LED_TRANSMIT_OFF, + ANDROID_LED_TRANSMIT_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensFacing.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensFacing.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d15674dc11e5bca76a1daf29bdbd4fad745eb141 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensFacing.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LensFacing { + ANDROID_LENS_FACING_FRONT, + ANDROID_LENS_FACING_BACK, + ANDROID_LENS_FACING_EXTERNAL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..937347b1fda550c255023a7f5934e62b76dc6770 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LensInfoFocusDistanceCalibration { + ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_UNCALIBRATED, + ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_APPROXIMATE, + ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_CALIBRATED, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..550d9f32098a710521b8e3b47efba21b016043b7 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LensOpticalStabilizationMode { + ANDROID_LENS_OPTICAL_STABILIZATION_MODE_OFF, + ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensPoseReference.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensPoseReference.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6a3799df39bafdeb89ab48b7f788845685fd827f --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensPoseReference.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LensPoseReference { + ANDROID_LENS_POSE_REFERENCE_PRIMARY_CAMERA, + ANDROID_LENS_POSE_REFERENCE_GYROSCOPE, + ANDROID_LENS_POSE_REFERENCE_UNDEFINED, + ANDROID_LENS_POSE_REFERENCE_AUTOMOTIVE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4f9895607d6702b9192cd3f3fdcde0b343aadd09 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LensState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LensState { + ANDROID_LENS_STATE_STATIONARY, + ANDROID_LENS_STATE_MOVING, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5eb5759b9e5303b78514eff9e4d6e384abe83114 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum LogicalMultiCameraSensorSyncType { + ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE, + ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/NoiseReductionMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/NoiseReductionMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8b589ce819bb632b250fbc017d643ca310b78729 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/NoiseReductionMode.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum NoiseReductionMode { + ANDROID_NOISE_REDUCTION_MODE_OFF, + ANDROID_NOISE_REDUCTION_MODE_FAST, + ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY, + ANDROID_NOISE_REDUCTION_MODE_MINIMAL, + ANDROID_NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/QuirksPartialResult.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/QuirksPartialResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8ab6a057006b0574c04cf0f30a02b80aa1bd9513 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/QuirksPartialResult.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum QuirksPartialResult { + ANDROID_QUIRKS_PARTIAL_RESULT_FINAL, + ANDROID_QUIRKS_PARTIAL_RESULT_PARTIAL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0564db8da9a0daea19e7b8cbd19b012afae407d5 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum RequestAvailableCapabilities { + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SECURE_IMAGE_DATA, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_OFFLINE_PROCESSING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_REMOSAIC_REPROCESSING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_COLOR_SPACE_PROFILES, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl new file mode 100644 index 0000000000000000000000000000000000000000..74606bf110adcdf86bdce29d1afebe97b68b049b --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="long") @VintfStability +enum RequestAvailableColorSpaceProfilesMap { + ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_UNSPECIFIED = (-1L) /* -1 */, + ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_SRGB = 0L, + ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_DISPLAY_P3 = 7L, + ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_BT2020_HLG = 16L, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl new file mode 100644 index 0000000000000000000000000000000000000000..45ffb1be1aa5b0b24438779d548504d8170fb942 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="long") @VintfStability +enum RequestAvailableDynamicRangeProfilesMap { + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD = 0x1L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HLG10 = 0x2L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10 = 0x4L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10_PLUS = 0x8L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF = 0x10L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF_PO = 0x20L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM = 0x40L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM_PO = 0x80L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF = 0x100L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF_PO = 0x200L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM = 0x400L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM_PO = 0x800L, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_MAX = 0x1000L, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestMetadataMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestMetadataMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cede79950ccad26f2be29545e08fe349a9edfb54 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestMetadataMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum RequestMetadataMode { + ANDROID_REQUEST_METADATA_MODE_NONE, + ANDROID_REQUEST_METADATA_MODE_FULL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestType.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6b4ae71862ac4229ed70190c2eff2772f713a22a --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/RequestType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum RequestType { + ANDROID_REQUEST_TYPE_CAPTURE, + ANDROID_REQUEST_TYPE_REPROCESS, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableFormats.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableFormats.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fdc2f60887e0773b41377f1323130b03ddc6e13e --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableFormats.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerAvailableFormats { + ANDROID_SCALER_AVAILABLE_FORMATS_RAW16 = 0x20, + ANDROID_SCALER_AVAILABLE_FORMATS_RAW_OPAQUE = 0x24, + ANDROID_SCALER_AVAILABLE_FORMATS_YV12 = 0x32315659, + ANDROID_SCALER_AVAILABLE_FORMATS_YCrCb_420_SP = 0x11, + ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED = 0x22, + ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888 = 0x23, + ANDROID_SCALER_AVAILABLE_FORMATS_BLOB = 0x21, + ANDROID_SCALER_AVAILABLE_FORMATS_RAW10 = 0x25, + ANDROID_SCALER_AVAILABLE_FORMATS_RAW12 = 0x26, + ANDROID_SCALER_AVAILABLE_FORMATS_Y8 = 0x20203859, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl new file mode 100644 index 0000000000000000000000000000000000000000..741a99d839b00ba6cbde1dcfab815f13a4281217 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerAvailableRecommendedStreamConfigurations { + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_PREVIEW = 0x0, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RECORD = 0x1, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VIDEO_SNAPSHOT = 0x2, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_SNAPSHOT = 0x3, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_ZSL = 0x4, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RAW = 0x5, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_LOW_LATENCY_SNAPSHOT = 0x6, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_10BIT_OUTPUT = 0x8, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VENDOR_START = 0x18, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4e2899d46ec99ce515ba0e3d2368977005f0f3a4 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerAvailableStreamConfigurations { + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fb15815dfea4bc6ecf41337854d3c726dcd83611 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerAvailableStreamConfigurationsMaximumResolution { + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ff92f9efd29e4d5ed42904ab9709adac987ba63c --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="long") @VintfStability +enum ScalerAvailableStreamUseCases { + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT = 0x0L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 0x1L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE = 0x2L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_RECORD = 0x3L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW_VIDEO_STILL = 0x4L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL = 0x5L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW = 0x6L, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VENDOR_START = 0x10000L, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerCroppingType.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerCroppingType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..60782e4650466d38d01b7c2838f541964b985d76 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerCroppingType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerCroppingType { + ANDROID_SCALER_CROPPING_TYPE_CENTER_ONLY, + ANDROID_SCALER_CROPPING_TYPE_FREEFORM, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e09d89c182b1a05e66125751983ab7ae4cee5434 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerMultiResolutionStreamSupported { + ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_FALSE, + ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl new file mode 100644 index 0000000000000000000000000000000000000000..64a022018bbe6ae7a46670a30feb45b43f12886a --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerPhysicalCameraMultiResolutionStreamConfigurations { + ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_OUTPUT, + ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_INPUT, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bf5380eea45d45d3e61f77394c90ae5fabc0297c --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ScalerRotateAndCrop { + ANDROID_SCALER_ROTATE_AND_CROP_NONE, + ANDROID_SCALER_ROTATE_AND_CROP_90, + ANDROID_SCALER_ROTATE_AND_CROP_180, + ANDROID_SCALER_ROTATE_AND_CROP_270, + ANDROID_SCALER_ROTATE_AND_CROP_AUTO, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c96f3c5e91f490968f36f1f5bf49642dbf372e44 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorInfoColorFilterArrangement { + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_MONO, + ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_NIR, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0153731bbc8dcb6ac2d7ddab7928707d5bb4cb9f --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorInfoLensShadingApplied { + ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_FALSE, + ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_TRUE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9a00cf155eba7304f9dd469da335bd9f00320b19 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorInfoTimestampSource { + ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_UNKNOWN, + ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorPixelMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorPixelMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5f055d6b23331493daf3a4f17f127b0ec9c0ef49 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorPixelMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorPixelMode { + ANDROID_SENSOR_PIXEL_MODE_DEFAULT, + ANDROID_SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl new file mode 100644 index 0000000000000000000000000000000000000000..851dae0f8e147750888bc0ba36b378ca68c93a0b --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorRawBinningFactorUsed { + ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_TRUE, + ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_FALSE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl new file mode 100644 index 0000000000000000000000000000000000000000..11be18ef063a724c8b67b8c6b95e4ac6e1b3317c --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorReadoutTimestamp { + ANDROID_SENSOR_READOUT_TIMESTAMP_NOT_SUPPORTED, + ANDROID_SENSOR_READOUT_TIMESTAMP_HARDWARE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cd22d2e35dadf728cfe857fadc4121c569791359 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorReferenceIlluminant1 { + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT = 1, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLUORESCENT = 2, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_TUNGSTEN = 3, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLASH = 4, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FINE_WEATHER = 9, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_CLOUDY_WEATHER = 10, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_SHADE = 11, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT_FLUORESCENT = 12, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAY_WHITE_FLUORESCENT = 13, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_COOL_WHITE_FLUORESCENT = 14, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_WHITE_FLUORESCENT = 15, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_A = 17, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_B = 18, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_C = 19, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D55 = 20, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D65 = 21, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D75 = 22, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D50 = 23, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1_ISO_STUDIO_TUNGSTEN = 24, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorTestPatternMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorTestPatternMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..98f0ebe855b6497519fbaf4e77662b8e193c25ca --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SensorTestPatternMode.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorTestPatternMode { + ANDROID_SENSOR_TEST_PATTERN_MODE_OFF, + ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR, + ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS, + ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY, + ANDROID_SENSOR_TEST_PATTERN_MODE_PN9, + ANDROID_SENSOR_TEST_PATTERN_MODE_BLACK, + ANDROID_SENSOR_TEST_PATTERN_MODE_CUSTOM1 = 256, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ShadingMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ShadingMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ffc6a560ad3db4b56355d10cf3447dcb271f1d98 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/ShadingMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum ShadingMode { + ANDROID_SHADING_MODE_OFF, + ANDROID_SHADING_MODE_FAST, + ANDROID_SHADING_MODE_HIGH_QUALITY, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..48c6797a021bac109cf092299a16f75db5ce16ea --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsFaceDetectMode { + ANDROID_STATISTICS_FACE_DETECT_MODE_OFF, + ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE, + ANDROID_STATISTICS_FACE_DETECT_MODE_FULL, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHistogramMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHistogramMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..354518b2cc594374308aa75e7b85e9cc6f71769e --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHistogramMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsHistogramMode { + ANDROID_STATISTICS_HISTOGRAM_MODE_OFF, + ANDROID_STATISTICS_HISTOGRAM_MODE_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b96e4be64560b007eb7ae6fcfe4462ba66855f1d --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsHotPixelMapMode { + ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_OFF, + ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7d0b0823e4bb77dfc3043271a2b95decbfb7f654 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsLensShadingMapMode { + ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_OFF, + ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsOisDataMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsOisDataMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b80889bdec67525ff5f5ca7d5ff19b1215bcc31e --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsOisDataMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsOisDataMode { + ANDROID_STATISTICS_OIS_DATA_MODE_OFF, + ANDROID_STATISTICS_OIS_DATA_MODE_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a9268c07b1effe0647fb285ff8debb7491efb06c --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsSceneFlicker { + ANDROID_STATISTICS_SCENE_FLICKER_NONE, + ANDROID_STATISTICS_SCENE_FLICKER_50HZ, + ANDROID_STATISTICS_SCENE_FLICKER_60HZ, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..09a20038873ecb9e6d9a79092cde24236555ef7d --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum StatisticsSharpnessMapMode { + ANDROID_STATISTICS_SHARPNESS_MAP_MODE_OFF, + ANDROID_STATISTICS_SHARPNESS_MAP_MODE_ON, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncFrameNumber.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncFrameNumber.aidl new file mode 100644 index 0000000000000000000000000000000000000000..230f57e67f940aa7f40e7d97ac5e5dea64690fff --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncFrameNumber.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SyncFrameNumber { + ANDROID_SYNC_FRAME_NUMBER_CONVERGING = (-1) /* -1 */, + ANDROID_SYNC_FRAME_NUMBER_UNKNOWN = (-2) /* -2 */, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncMaxLatency.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncMaxLatency.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d484f45e7795fbc13f3f8b9dafe8a7fb1b3729bf --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/SyncMaxLatency.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SyncMaxLatency { + ANDROID_SYNC_MAX_LATENCY_PER_FRAME_CONTROL = 0, + ANDROID_SYNC_MAX_LATENCY_UNKNOWN = (-1) /* -1 */, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e729166000ca66b77fa49ef91f65f2c3c50a5df3 --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapMode.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum TonemapMode { + ANDROID_TONEMAP_MODE_CONTRAST_CURVE, + ANDROID_TONEMAP_MODE_FAST, + ANDROID_TONEMAP_MODE_HIGH_QUALITY, + ANDROID_TONEMAP_MODE_GAMMA_VALUE, + ANDROID_TONEMAP_MODE_PRESET_CURVE, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapPresetCurve.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapPresetCurve.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2e5fbd3ad09dd3999e7348dfc0a118fe9635b77a --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/3/android/hardware/camera/metadata/TonemapPresetCurve.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum TonemapPresetCurve { + ANDROID_TONEMAP_PRESET_CURVE_SRGB, + ANDROID_TONEMAP_PRESET_CURVE_REC709, +} diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataTag.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataTag.aidl index 542b2962727432885dd640b87ca54f5e797fbd3b..9321ec0e37c2fc2d783133da286477c5342edbbe 100644 --- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataTag.aidl +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataTag.aidl @@ -246,6 +246,7 @@ enum CameraMetadataTag { ANDROID_SENSOR_OPAQUE_RAW_SIZE_MAXIMUM_RESOLUTION, ANDROID_SENSOR_PIXEL_MODE, ANDROID_SENSOR_RAW_BINNING_FACTOR_USED, + ANDROID_SENSOR_READOUT_TIMESTAMP, ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SENSOR_INFO_START /* 983040 */, ANDROID_SENSOR_INFO_SENSITIVITY_RANGE, ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT, diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl new file mode 100644 index 0000000000000000000000000000000000000000..35dc1a976f8460116da7b4a9f36e8036f45117cc --- /dev/null +++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.metadata; +@Backing(type="int") @VintfStability +enum SensorReadoutTimestamp { + ANDROID_SENSOR_READOUT_TIMESTAMP_NOT_SUPPORTED, + ANDROID_SENSOR_READOUT_TIMESTAMP_HARDWARE, +} diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLensFacing.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLensFacing.aidl index 8cd222948ce435f8daf111f931a92a5141045e33..19822fcf6e52c850c79eba4f9500654286e8e6a5 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLensFacing.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLensFacing.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.automotive.lens.facing enumeration values * @see ANDROID_AUTOMOTIVE_LENS_FACING + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLocation.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLocation.aidl index 0ef64b4c437c49a65cf4d820e37edea423dcfb9e..6c3edbe6774e6ddb838cae2816ef0cfc58a7a8a6 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLocation.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/AutomotiveLocation.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.automotive.location enumeration values * @see ANDROID_AUTOMOTIVE_LOCATION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/BlackLevelLock.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/BlackLevelLock.aidl index 4746cf3e4de17c5d13ecee0498eb1aed7b45f5a2..8d3443a9b40d92ab8295fc167b7140492b514762 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/BlackLevelLock.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/BlackLevelLock.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.blackLevel.lock enumeration values * @see ANDROID_BLACK_LEVEL_LOCK + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/CameraMetadataTag.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/CameraMetadataTag.aidl index 03cfba150a89cc6b58148d56d67bda4403d650fc..f1333728c257bd42f453872c717d36af08d35e94 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/CameraMetadataTag.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/CameraMetadataTag.aidl @@ -1590,6 +1590,13 @@ enum CameraMetadataTag { * @see ANDROID_SENSOR_INFO_BINNING_FACTOR */ ANDROID_SENSOR_RAW_BINNING_FACTOR_USED, + /** + * android.sensor.readoutTimestamp [static, enum, java_public] + * + *

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

+ */ + ANDROID_SENSOR_READOUT_TIMESTAMP, /** * android.sensor.info.activeArraySize [static, int32[], public] * diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl index 890ac0eac00acb6399a070948e1280bf8a9a4e87..a0f6c83bb1585a6edb0350a3af81e99fe37d36ed 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.colorCorrection.aberrationMode enumeration values * @see ANDROID_COLOR_CORRECTION_ABERRATION_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionMode.aidl index 080ca027f68fae1ce55de50bbfe3683f96450858..2a51bfcfc0acc70b615df4cf0c94318911ef7bca 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ColorCorrectionMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.colorCorrection.mode enumeration values * @see ANDROID_COLOR_CORRECTION_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl index 8a2f501d8160ebb7137c200fd9d99bd7576739eb..47f7ebf1f43847e3287822fcb62b7308ea565283 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.aeAntibandingMode enumeration values * @see ANDROID_CONTROL_AE_ANTIBANDING_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLock.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLock.aidl index ab56fdc5f2640cbfcc9e165db54a4439cf9bb48a..e226ac0a2c54f9429df575b69c8d44012647f146 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLock.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLock.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.aeLock enumeration values * @see ANDROID_CONTROL_AE_LOCK + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLockAvailable.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLockAvailable.aidl index b846fc182a10d14c1364a2dfff193a2fcf79ba56..a62cd27b65c03ef4d58ad19343aa00de5da5d126 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLockAvailable.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeLockAvailable.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.aeLockAvailable enumeration values * @see ANDROID_CONTROL_AE_LOCK_AVAILABLE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeMode.aidl index 70174bed277e4d9f3c9d8c7bc7286ef64d2d1a82..9f7aaaea99e739139090407e2ce4b90774e12ad1 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.aeMode enumeration values * @see ANDROID_CONTROL_AE_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl index 2229712d9a7056f162ed6284d92d93d22d9adfc1..5275cd1ca1b20e4711966199efaf08c3eac0c2f7 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.aePrecaptureTrigger enumeration values * @see ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeState.aidl index af8c2cf38d10d0f5e3ff599fa9700b909b3e83c4..ffdf7d403f2f4e8ce660b46e785141606df30021 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAeState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.aeState enumeration values * @see ANDROID_CONTROL_AE_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfMode.aidl index 344f2de3f949bf14d80d250293cb373cf3cc5b76..cff3a258e744f68280b34c01a34a51e3edfff1ce 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.afMode enumeration values * @see ANDROID_CONTROL_AF_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfSceneChange.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfSceneChange.aidl index 153611a0284ea840d6c2ea4ce5701075ad13c5a1..dce31dede09b399cf00b37575a8c3bab8cb75d6a 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfSceneChange.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfSceneChange.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.afSceneChange enumeration values * @see ANDROID_CONTROL_AF_SCENE_CHANGE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfState.aidl index 2c8d60201b7862ffa98d6e753510151fd38dc970..cbdc28f53ab7f7871103e599c20c649618618026 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.afState enumeration values * @see ANDROID_CONTROL_AF_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfTrigger.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfTrigger.aidl index b68d4c7528652689674066f2cd570b631d297453..0c82b25fb8e9c0b336ed51422c3a8d5a31a17d27 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfTrigger.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAfTrigger.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.afTrigger enumeration values * @see ANDROID_CONTROL_AF_TRIGGER + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframing.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframing.aidl index 0fef3735b18cdb671414ace4ad0104d65b1d08fc..ba184912e4b0a153dacaf9666ab3df14991161bc 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframing.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframing.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.autoframing enumeration values * @see ANDROID_CONTROL_AUTOFRAMING + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl index da0d34894d2051560be0fc1e37aaa7721aa6d094..fd45647be1d9c41e067ce9619635ffd89f2a9e5a 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.autoframingAvailable enumeration values * @see ANDROID_CONTROL_AUTOFRAMING_AVAILABLE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingState.aidl index 13183a53146d57a28c94e9e40aca04cc25268cec..9ac200ab3ab4d44e1d6a7941edcdb672d89af732 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAutoframingState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.autoframingState enumeration values * @see ANDROID_CONTROL_AUTOFRAMING_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLock.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLock.aidl index f7229f2034a99c75d6678b3670c4e9bb640e0f63..a1e6a79c2a832a19758b1c04ee9d5de81e8c8ba8 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLock.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLock.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.awbLock enumeration values * @see ANDROID_CONTROL_AWB_LOCK + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl index 0cb6ebed7f52525c445f4782f25f4944866f2e4a..4a69f87e79813659f77f6434b66df7d572186af8 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.awbLockAvailable enumeration values * @see ANDROID_CONTROL_AWB_LOCK_AVAILABLE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbMode.aidl index 2f9b801eec925c1f7e4b18de5e8a669a4fb95ddc..043841a1ae7c9a40c28e87fbac8a9a857de60171 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.awbMode enumeration values * @see ANDROID_CONTROL_AWB_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbState.aidl index 1a93191487a46a9293b413451d7a941dacdde0e3..835d299d21f6846d00f77c141122b463b60f4f5f 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlAwbState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.awbState enumeration values * @see ANDROID_CONTROL_AWB_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlCaptureIntent.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlCaptureIntent.aidl index 132d98c1d77cf6bd44b387adfa6201dab27ef986..1cd5467117a69b9ac151da17369510834337ebdd 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlCaptureIntent.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlCaptureIntent.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.captureIntent enumeration values * @see ANDROID_CONTROL_CAPTURE_INTENT + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlEffectMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlEffectMode.aidl index 1668cb390bfd29e8845493a00ab77b96ae346b5c..f4586c2d32644d6e5c70a6386742531e2c88034f 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlEffectMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlEffectMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.effectMode enumeration values * @see ANDROID_CONTROL_EFFECT_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlEnableZsl.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlEnableZsl.aidl index a83c05164c03aaf6df3716d5c4e4e5bd8f10c5c0..6fffa5e9d31f64fbbf7e3d2443996081271d7917 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlEnableZsl.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlEnableZsl.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.enableZsl enumeration values * @see ANDROID_CONTROL_ENABLE_ZSL + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl index 2fe66cffd715c5211a1a444ba1da9c889775a052..b95a4f59729b5a1a36e9b36b8c6892573bffa65e 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.extendedSceneMode enumeration values * @see ANDROID_CONTROL_EXTENDED_SCENE_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlLowLightBoostState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlLowLightBoostState.aidl index 67591c8067a06db8ffeda27bd78db04493746b51..19be8fcc29c8a8f3f7ef8b3e0ea8991b65a05f44 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlLowLightBoostState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlLowLightBoostState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.lowLightBoostState enumeration values * @see ANDROID_CONTROL_LOW_LIGHT_BOOST_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlMode.aidl index d9ab9ab10a03a4522924252db1aa02e7d91b936a..b964d45d47a297781530726a9ccce4aab5797338 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.mode enumeration values * @see ANDROID_CONTROL_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlSceneMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlSceneMode.aidl index 0f90aaad2b6a62b38796761cf5adb10e8b327ae5..f5c0a4afed8521a079932304ebb93d90b2bb95c3 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlSceneMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlSceneMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.sceneMode enumeration values * @see ANDROID_CONTROL_SCENE_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlSettingsOverride.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlSettingsOverride.aidl index d97f7c83ac8c089bcc94f1a291cdcabb6c724dfd..d0ee99271e7c2aac1fd53e21e06dba191a756110 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlSettingsOverride.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlSettingsOverride.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.settingsOverride enumeration values * @see ANDROID_CONTROL_SETTINGS_OVERRIDE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl index 497846c71f33c540d3de0087930405f40ca8f28b..94cc62650a0e4f8f387f1ac4895ffd7cbc27ad1e 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.control.videoStabilizationMode enumeration values * @see ANDROID_CONTROL_VIDEO_STABILIZATION_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DemosaicMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DemosaicMode.aidl index 7d8cdcf588985b0e75ab727178efa549f82a11c2..0c389aa0921a906cf02f435d113c635b3daf0fe7 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DemosaicMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DemosaicMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.demosaic.mode enumeration values * @see ANDROID_DEMOSAIC_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl index 7deb35004553b84a08018d4a609d82b1d0cdbda8..3cc882b3748af3b392bc619c47fcd0cc156a6452 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.depth.availableDepthStreamConfigurations enumeration values * @see ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl index 5d06be178261e1354d339d2dc53ebd76badcd422..658f3bb4281262c0be9284d0567d7ae4f0b1b4fd 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.depth.availableDepthStreamConfigurationsMaximumResolution enumeration values * @see ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl index 39a99b963e5360247ed4bf1ada5aad0801ee7e74..1ec3d115abb4705f76d55ec8ff4f33452ec0c138 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.depth.availableDynamicDepthStreamConfigurations enumeration values * @see ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl index 30ea9b71b57a2b87dcd6a89aaac649fa03b485e5..b0ad00e334a175d93a20f54facb5b0fa24ef1247 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.depth.availableDynamicDepthStreamConfigurationsMaximumResolution enumeration values * @see ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl index 4af81d9c89f701bd62c629ffe13d7cf0b8be7531..de31b41ad57cafc0196abf640a99eeba5467a9fb 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.depth.depthIsExclusive enumeration values * @see ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/DistortionCorrectionMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/DistortionCorrectionMode.aidl index 3456207757772bb7419d4939dceb4449af7050ab..fbf7abb9ce9ef05bc9a19e5bed4a275ab023cd40 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/DistortionCorrectionMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/DistortionCorrectionMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.distortionCorrection.mode enumeration values * @see ANDROID_DISTORTION_CORRECTION_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/EdgeMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/EdgeMode.aidl index 1e155233a3e67eee19c2c500bb5e52e6bae59081..81bd04c779b4976cf9bf842ea4ccada59cfb4933 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/EdgeMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/EdgeMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.edge.mode enumeration values * @see ANDROID_EDGE_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/FlashInfoAvailable.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/FlashInfoAvailable.aidl index 05280377c7f943eff523cafc942b2b42f03364d5..b938d82f69f25ac6a62881dee4c49378ac4b315a 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/FlashInfoAvailable.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/FlashInfoAvailable.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.flash.info.available enumeration values * @see ANDROID_FLASH_INFO_AVAILABLE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/FlashMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/FlashMode.aidl index e17559699d0dd266bbcaf03171d8595db4096bdd..b279c44448b2f91b19ed18378ceb13a049d56b21 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/FlashMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/FlashMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.flash.mode enumeration values * @see ANDROID_FLASH_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/FlashState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/FlashState.aidl index fc398f8f06b4692787d4a2918888d9d061d23300..b0295667607866fd40a00d35fddd3061371a32fc 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/FlashState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/FlashState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.flash.state enumeration values * @see ANDROID_FLASH_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl index fc9b6ecc4f029456dd8c0cad21dd03e08d275807..c31cfbaa26fe232d1c3ff012b6c6bbaf9e066680 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.heic.availableHeicStreamConfigurations enumeration values * @see ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl index 13b50ab5ad27196cb09c4f49c02d1f3544c3b445..bf5d92ede82f1821fd5ccc116c500e1ba7affcf8 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.heic.availableHeicStreamConfigurationsMaximumResolution enumeration values * @see ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/HeicInfoSupported.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/HeicInfoSupported.aidl index c4e04f1ac0cb0a368452600746b09ac421155ea0..88825e6e1539f7b2e6bc390d9440a5b99192bb70 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/HeicInfoSupported.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/HeicInfoSupported.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.heic.info.supported enumeration values * @see ANDROID_HEIC_INFO_SUPPORTED + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/HotPixelMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/HotPixelMode.aidl index 7b7aa215a9db7d99dbe3a78d4c2c029c9c6658dc..bd995690d9988b20de178856149a526282be08c4 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/HotPixelMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/HotPixelMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.hotPixel.mode enumeration values * @see ANDROID_HOT_PIXEL_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl index 964d07903c8edcf2c9c224326ffab199e0228ddd..a84f3cc11cfad3203aba6e1c62c075c4aa919f95 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.info.supportedBufferManagementVersion enumeration values * @see ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl index f2420099431e02d03704680fc073f55551047dd5..0ea628733f901a47aae89f6e1424ec926e45d6e9 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.info.supportedHardwareLevel enumeration values * @see ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl index 911a0623558217db7b71133b6cf2b5f615746e79..834ed5da46a15e88884398e2332f4bb321c5d2e0 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.jpegr.availableJpegRStreamConfigurations enumeration values * @see ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl index 9e78662b5b524c3da6999e091f461a29f35c039b..eb0d84780d0b91205c94bb6f7dbf5820eb4174db 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.jpegr.availableJpegRStreamConfigurationsMaximumResolution enumeration values * @see ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LedAvailableLeds.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LedAvailableLeds.aidl index f26fcde890d1056b958d225f0e28e090dd9dca1a..ba564c491f47bfbd5c31f06ea851f79ce40c3efa 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LedAvailableLeds.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LedAvailableLeds.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.led.availableLeds enumeration values * @see ANDROID_LED_AVAILABLE_LEDS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LedTransmit.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LedTransmit.aidl index 62c9bd787595afca467f90801f5f31270de0dc3b..f8b40cafb858d0f800a25b9a6b527a184203a526 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LedTransmit.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LedTransmit.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.led.transmit enumeration values * @see ANDROID_LED_TRANSMIT + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LensFacing.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LensFacing.aidl index 0677ea9372a620153d5393f06b5112436434f11a..fa9cb149f2ccb5d704df5019b900cd3980fdc546 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LensFacing.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LensFacing.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.lens.facing enumeration values * @see ANDROID_LENS_FACING + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl index 1c82bb03e4fc95122cc24079db8469e737e0646d..2060e9729df82147cfd62206a612fb388b25622c 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.lens.info.focusDistanceCalibration enumeration values * @see ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl index e350e1599d4ea21ff4caa3ce85405ec109308fbc..03f8711fc024fb906a93cb4bc03a0a2af1769334 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.lens.opticalStabilizationMode enumeration values * @see ANDROID_LENS_OPTICAL_STABILIZATION_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LensPoseReference.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LensPoseReference.aidl index 3e6034b0677edf87c3de74a808467744184af506..124c6700773298465bdc610dffd646d49ecc06da 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LensPoseReference.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LensPoseReference.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.lens.poseReference enumeration values * @see ANDROID_LENS_POSE_REFERENCE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LensState.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LensState.aidl index 0e5a04c45cf5808c1d662e8d60798a59a40690ff..216bfb174cdffcdd91867d1b6285b77e39ddaaeb 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LensState.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LensState.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.lens.state enumeration values * @see ANDROID_LENS_STATE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl index 623a15cc0f0dbc6f3c4cf180740a19899901d2b6..ee6a1a0e8ac5f44f8caf53d441b382bfde4fbe62 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.logicalMultiCamera.sensorSyncType enumeration values * @see ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/NoiseReductionMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/NoiseReductionMode.aidl index 947361d41c8304f0c6ab08c629e87595498331b2..7303512f3e280b1781afbb8989c91844a34dd47c 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/NoiseReductionMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/NoiseReductionMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.noiseReduction.mode enumeration values * @see ANDROID_NOISE_REDUCTION_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/QuirksPartialResult.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/QuirksPartialResult.aidl index 15a79b0969cc3943d24bc06cfb8c33a89a18a47e..3af9f858b1a5e27a35438c076afca02c29d2ebb6 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/QuirksPartialResult.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/QuirksPartialResult.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.quirks.partialResult enumeration values * @see ANDROID_QUIRKS_PARTIAL_RESULT + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl index ebe0b4c4a3765f7125c3b777222c0da28f77b7d6..a8e5fe0cb4124ec4fb9a8e7cc1d5160d5433c4f1 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.request.availableCapabilities enumeration values * @see ANDROID_REQUEST_AVAILABLE_CAPABILITIES + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl index b397dea8d2521cbc9931cbc942955d71a387137e..ee364803794ddb261aed9e9691f3c3748268f036 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.request.availableColorSpaceProfilesMap enumeration values * @see ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="long") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl index f04fae3e43ba5c6877414e9cdf85fd17838c8214..d7598d6387f5d58b6e22c9518918669966c91ad4 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.request.availableDynamicRangeProfilesMap enumeration values * @see ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="long") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/RequestMetadataMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/RequestMetadataMode.aidl index 37d40957e50cc659e5d9b36bb9b39eaa6f32becc..d526393105fafd38840f2f36b88767698165c655 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/RequestMetadataMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/RequestMetadataMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.request.metadataMode enumeration values * @see ANDROID_REQUEST_METADATA_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/RequestType.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/RequestType.aidl index 5010a37c9374a430e3c0c16114547db6525208cf..a8c97cb1b773c11da977045a3d65ef3c77e785a7 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/RequestType.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/RequestType.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.request.type enumeration values * @see ANDROID_REQUEST_TYPE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableFormats.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableFormats.aidl index a8e67bbab951e085bb23c1e38b4b57c5b868ccc5..fb42654d563f73c73ec93c400c04dc54c5539f5b 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableFormats.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableFormats.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.availableFormats enumeration values * @see ANDROID_SCALER_AVAILABLE_FORMATS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl index 57c398928a0ef5cb0e88b341258b188f917f428b..7498abf0b1c6372f77dbd19459c45101acfb187d 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.availableRecommendedStreamConfigurations enumeration values * @see ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl index 2b493ae6eb7309b5b819a67da8d8132707259bd0..66599ae521704ab445ad583390a789ac570763b6 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.availableStreamConfigurations enumeration values * @see ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl index 4f6cb5eedcfe51438a7df6b38e5d079a27f0f86f..ec9c5db454c8b0188f71ec65b7724db6b4b4b7c4 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.availableStreamConfigurationsMaximumResolution enumeration values * @see ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl index da27a48e32feff7e488df24ee518a62526674f92..eed16fa5568f6dc2f2f8fa521fd4360a6028c2d1 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.availableStreamUseCases enumeration values * @see ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="long") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerCroppingType.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerCroppingType.aidl index e44eff16e45583382c9148ea24efe3f11685f11c..bf3672dae8e9d5719b70b827065cb20ffbdb8f90 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerCroppingType.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerCroppingType.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.croppingType enumeration values * @see ANDROID_SCALER_CROPPING_TYPE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl index f7cbc0fe162ae77928b0ef2f12ad03b880239c92..d75aa7d04de92c9a3c07d1e1c64c5baef8ad81c5 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.multiResolutionStreamSupported enumeration values * @see ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl index 9427854a6311a3b87cd2315d8ae70be133f047d0..c725572e670f1c77d361e1fd7bc16b823fc2e48b 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.physicalCameraMultiResolutionStreamConfigurations enumeration values * @see ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl index 905015374c097d35dd6dc8d384a394dcf76e9311..b49dec0c4c580a4f1dbe865612adb06a58ed203d 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.scaler.rotateAndCrop enumeration values * @see ANDROID_SCALER_ROTATE_AND_CROP + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl index 59a4038ea084ac8f5a0aaba4e6e513741e12023c..1d8190c9e1571bd6190009b68c1a79b369896ba5 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.info.colorFilterArrangement enumeration values * @see ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl index 8892ad33d144ff1ad21b2dc802b2f1027491423f..c5169af328d75df263b18f6e07ee64197272ddab 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.info.lensShadingApplied enumeration values * @see ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl index 2a5860b023b5f2c1e44f50e756bb8a932053556e..de65ef754e597f34dcdd9fe93a424588c87a8c7c 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.info.timestampSource enumeration values * @see ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorPixelMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorPixelMode.aidl index 3dda07ba1eebac10e4fab2d94f47d13e444fa2ac..a76e479565507c5829e9a30ac7cc3a88817475c8 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorPixelMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorPixelMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.pixelMode enumeration values * @see ANDROID_SENSOR_PIXEL_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl index 20e92e4311f0adfa520eb6c4664f9b16b12b05a5..8b421bac6720268db9b00ad6e8ae5802b39ff19d 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.rawBinningFactorUsed enumeration values * @see ANDROID_SENSOR_RAW_BINNING_FACTOR_USED + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f5ab3691ba727673c6a638e4e653fee552176500 --- /dev/null +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorReadoutTimestamp.aidl @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Autogenerated from camera metadata definitions in + * /system/media/camera/docs/metadata_definitions.xml + * *** DO NOT EDIT BY HAND *** + */ + +package android.hardware.camera.metadata; + +/** + * android.sensor.readoutTimestamp enumeration values + * @see ANDROID_SENSOR_READOUT_TIMESTAMP + * See system/media/camera/docs/metadata_definitions.xml for details. + */ +@VintfStability +@Backing(type="int") +enum SensorReadoutTimestamp { + ANDROID_SENSOR_READOUT_TIMESTAMP_NOT_SUPPORTED, + ANDROID_SENSOR_READOUT_TIMESTAMP_HARDWARE, +} diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl index c8c92167d5c8d443ed2c64da575a94baaad5b637..a0a3a406649512edd861bd0c9253cce15266a4ab 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorReferenceIlluminant1.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.referenceIlluminant1 enumeration values * @see ANDROID_SENSOR_REFERENCE_ILLUMINANT1 + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SensorTestPatternMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SensorTestPatternMode.aidl index 29aede4bbc3a2f4dfb621b4fc600e00700bd768b..4ad05032e765e6ad5e2474ca1f05dc9d82a0e436 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SensorTestPatternMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SensorTestPatternMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sensor.testPatternMode enumeration values * @see ANDROID_SENSOR_TEST_PATTERN_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/ShadingMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/ShadingMode.aidl index 6939b72fdca0e739afb207b60e37648c2ca160fe..20801957a814f5e6c16fdfc8d06df03e42d589e4 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/ShadingMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/ShadingMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.shading.mode enumeration values * @see ANDROID_SHADING_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl index 0d177919d69d9cf40c707103e54660c8fa31539b..55d79cd400609275358b80d7a97784869334f35e 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.faceDetectMode enumeration values * @see ANDROID_STATISTICS_FACE_DETECT_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHistogramMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHistogramMode.aidl index a9b6f68dad16e47c869bf219844db9d702893e06..de1cfee9648d9f59f289237bc45c56b2cc52fcfa 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHistogramMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHistogramMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.histogramMode enumeration values * @see ANDROID_STATISTICS_HISTOGRAM_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl index 286291a851fc13de4241382ebe5e98e825eb3270..b81a7cde365560d2848d4d51cc6be8d35fb947d5 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.hotPixelMapMode enumeration values * @see ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl index d21b2227f9d18774b225303a378f40e821cff25f..3a91c71d218b0ce7488c415550a59a5b8e1ad3ae 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.lensShadingMapMode enumeration values * @see ANDROID_STATISTICS_LENS_SHADING_MAP_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsOisDataMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsOisDataMode.aidl index afb281f9097689a16b820f11ae57e55396b03be3..42801ed4c30d113a01ef4f2412ac003fbfebd371 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsOisDataMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsOisDataMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.oisDataMode enumeration values * @see ANDROID_STATISTICS_OIS_DATA_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl index da2402af070895dfe1f29e158cf7e30f62eb7e27..371e9fb03120b826bbfd0dc6e3350d6e728f4e88 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.sceneFlicker enumeration values * @see ANDROID_STATISTICS_SCENE_FLICKER + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl index ed6c65ccb3251f5f0336ba5f226b785891ac04d3..487e8ace3a9ee5ea641763b604c8c67b86fdeb33 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.statistics.sharpnessMapMode enumeration values * @see ANDROID_STATISTICS_SHARPNESS_MAP_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SyncFrameNumber.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SyncFrameNumber.aidl index e33319e3d01140fffc7c47ba40f4907a1a07976c..148718decdccb958237fac4e68d4243ce28a0219 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SyncFrameNumber.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SyncFrameNumber.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sync.frameNumber enumeration values * @see ANDROID_SYNC_FRAME_NUMBER + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/SyncMaxLatency.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/SyncMaxLatency.aidl index cb0668fcab5b7037f3f868006a0e4f7411049648..7df4ff0fd7b8344a20748ad86f150175b5fa32d6 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/SyncMaxLatency.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/SyncMaxLatency.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.sync.maxLatency enumeration values * @see ANDROID_SYNC_MAX_LATENCY + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/TonemapMode.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/TonemapMode.aidl index d4b7e0ebce22871060f2387705694d52b75f1de1..ed53060848a22ebd70833601fa2546535441d867 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/TonemapMode.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/TonemapMode.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.tonemap.mode enumeration values * @see ANDROID_TONEMAP_MODE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/TonemapPresetCurve.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/TonemapPresetCurve.aidl index 2da37043488798a1a95c42ad787b8874bb8e4b6e..c6fed00e6f6bbf500742b7783c290bd41ac23ef5 100644 --- a/camera/metadata/aidl/android/hardware/camera/metadata/TonemapPresetCurve.aidl +++ b/camera/metadata/aidl/android/hardware/camera/metadata/TonemapPresetCurve.aidl @@ -25,6 +25,7 @@ package android.hardware.camera.metadata; /** * android.tonemap.presetCurve enumeration values * @see ANDROID_TONEMAP_PRESET_CURVE + * See system/media/camera/docs/metadata_definitions.xml for details. */ @VintfStability @Backing(type="int") diff --git a/camera/provider/2.4/Android.bp b/camera/provider/2.4/Android.bp index a4c0dd2297ce343f6280d818d26136133e39d120..fbdc763985f6e15599e5893b756076776268cbfd 100644 --- a/camera/provider/2.4/Android.bp +++ b/camera/provider/2.4/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/2.4/default/Android.bp b/camera/provider/2.4/default/Android.bp index bccd6cb536886c32aa8e54960f08dca4165a7049..db4453d23e1363cc11aada6d1c8e862058a23d10 100644 --- a/camera/provider/2.4/default/Android.bp +++ b/camera/provider/2.4/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/2.4/vts/functional/Android.bp b/camera/provider/2.4/vts/functional/Android.bp index 85e69eb866a5ac8440f239b3503501c3005e331b..4e59d2824b439318018f579297da7947d5e40dac 100644 --- a/camera/provider/2.4/vts/functional/Android.bp +++ b/camera/provider/2.4/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/2.5/Android.bp b/camera/provider/2.5/Android.bp index e14c0a846d77ddff9edd54ac68f7d77faae9b1f5..e0824424ff2e5aabcd46d1a2c7aa82f92b07821b 100644 --- a/camera/provider/2.5/Android.bp +++ b/camera/provider/2.5/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/2.5/default/Android.bp b/camera/provider/2.5/default/Android.bp index 2fcb35ab003eee949daea7ad1bcdd648ff42b37d..ae0c2f955d98eff7a5d6ea1e65f6bc166e7fd4c1 100644 --- a/camera/provider/2.5/default/Android.bp +++ b/camera/provider/2.5/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -84,7 +85,7 @@ cc_library_shared { header_libs: [ "camera.device@3.4-external-impl_headers", "camera.device@3.5-external-impl_headers", - "camera.device@3.6-external-impl_headers" + "camera.device@3.6-external-impl_headers", ], export_include_dirs: ["."], } @@ -121,7 +122,7 @@ cc_defaults { ], header_libs: [ "camera.device@3.4-impl_headers", - "camera.device@3.5-impl_headers" + "camera.device@3.5-impl_headers", ], } diff --git a/camera/provider/2.6/Android.bp b/camera/provider/2.6/Android.bp index f402a560c9e3c24da07d577f7691cce7fb02cfe2..9e4a4d6533640727344504616f50ad90a3ce2835 100644 --- a/camera/provider/2.6/Android.bp +++ b/camera/provider/2.6/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/2.7/Android.bp b/camera/provider/2.7/Android.bp index ba59b380f52a0c340af063c4723ad0da875b37a8..d4369faf2a5948cca9f7bf0da733331b5f41fdd9 100644 --- a/camera/provider/2.7/Android.bp +++ b/camera/provider/2.7/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/2.7/default/Android.bp b/camera/provider/2.7/default/Android.bp index bd5da2dbfaf252aaaca01aac9bea0ca99f6fbf89..8d7cd7233dd5f8ca5fc1d02416d7294a93a28903 100644 --- a/camera/provider/2.7/default/Android.bp +++ b/camera/provider/2.7/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/camera/provider/aidl/Android.bp b/camera/provider/aidl/Android.bp index f6b00a1bef7ef545a809dec1613a768b302533c6..38a89360011f3317669b41b4e8ba378e602612c5 100644 --- a/camera/provider/aidl/Android.bp +++ b/camera/provider/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -17,7 +18,7 @@ aidl_interface { "android.hardware.camera.device-V3", "android.hardware.camera.common-V1", ], - frozen: false, + frozen: true, stability: "vintf", backend: { java: { @@ -42,6 +43,13 @@ aidl_interface { "android.hardware.camera.common-V1", ], }, + { + version: "3", + imports: [ + "android.hardware.camera.device-V3", + "android.hardware.camera.common-V1", + ], + }, ], diff --git a/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/.hash b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..01eca5d0e73b1af29a4f37e884250bb56b327ef0 --- /dev/null +++ b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/.hash @@ -0,0 +1 @@ +261437c3d7d6ad09d5560eee5196a28c0b27106e diff --git a/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/CameraIdAndStreamCombination.aidl b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/CameraIdAndStreamCombination.aidl new file mode 100644 index 0000000000000000000000000000000000000000..df77c40a289ba28773b8807e4ded163f99da0742 --- /dev/null +++ b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/CameraIdAndStreamCombination.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.provider; +@VintfStability +parcelable CameraIdAndStreamCombination { + String cameraId; + android.hardware.camera.device.StreamConfiguration streamConfiguration; +} diff --git a/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ConcurrentCameraIdCombination.aidl b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ConcurrentCameraIdCombination.aidl new file mode 100644 index 0000000000000000000000000000000000000000..334fb2c8270a12eae9d7771f30c541f9e6e9b426 --- /dev/null +++ b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ConcurrentCameraIdCombination.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.provider; +@VintfStability +parcelable ConcurrentCameraIdCombination { + List combination; +} diff --git a/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProvider.aidl b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProvider.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2f0184f639e111ec82d7fa903bbecfa62bb85e0b --- /dev/null +++ b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProvider.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.provider; +@VintfStability +interface ICameraProvider { + void setCallback(android.hardware.camera.provider.ICameraProviderCallback callback); + android.hardware.camera.common.VendorTagSection[] getVendorTags(); + String[] getCameraIdList(); + android.hardware.camera.device.ICameraDevice getCameraDeviceInterface(String cameraDeviceName); + void notifyDeviceStateChange(long deviceState); + android.hardware.camera.provider.ConcurrentCameraIdCombination[] getConcurrentCameraIds(); + boolean isConcurrentStreamCombinationSupported(in android.hardware.camera.provider.CameraIdAndStreamCombination[] configs); + const long DEVICE_STATE_NORMAL = 0; + const long DEVICE_STATE_BACK_COVERED = (1 << 0) /* 1 */; + const long DEVICE_STATE_FRONT_COVERED = (1 << 1) /* 2 */; + const long DEVICE_STATE_FOLDED = (1 << 2) /* 4 */; +} diff --git a/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProviderCallback.aidl b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProviderCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d3c53f5bc22934d807de7c9b77ed2414fa6f1f97 --- /dev/null +++ b/camera/provider/aidl/aidl_api/android.hardware.camera.provider/3/android/hardware/camera/provider/ICameraProviderCallback.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.camera.provider; +@VintfStability +interface ICameraProviderCallback { + void cameraDeviceStatusChange(String cameraDeviceName, android.hardware.camera.common.CameraDeviceStatus newStatus); + void torchModeStatusChange(String cameraDeviceName, android.hardware.camera.common.TorchModeStatus newStatus); + void physicalCameraDeviceStatusChange(String cameraDeviceName, String physicalCameraDeviceName, android.hardware.camera.common.CameraDeviceStatus newStatus); +} diff --git a/camera/provider/aidl/vts/Android.bp b/camera/provider/aidl/vts/Android.bp index f9305bbe1062dd6a41ba1a3beb6da774f9fa7a4f..6716b8e2f0d6ce364795c578ab7b2d76deecfd8e 100644 --- a/camera/provider/aidl/vts/Android.bp +++ b/camera/provider/aidl/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -61,7 +62,7 @@ cc_test { "android.hardware.camera.common@1.0-helper", "android.hardware.camera.common-V1-ndk", "android.hardware.camera.device-V3-ndk", - "android.hardware.camera.metadata-V2-ndk", + "android.hardware.camera.metadata-V3-ndk", "android.hardware.camera.provider-V3-ndk", "android.hidl.allocator@1.0", "libgrallocusage", diff --git a/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp b/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp index e335853c2883740167de5415910e2d5a37ba30d9..6e3ddc9094ea9fd97671a76bbda11f2cc676cbb2 100644 --- a/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp +++ b/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp @@ -283,6 +283,68 @@ TEST_P(CameraAidlTest, getCameraCharacteristics) { } } +TEST_P(CameraAidlTest, getSessionCharacteristics) { + if (flags::feature_combination_query()) { + std::vector cameraDeviceNames = getCameraDeviceNames(mProvider); + + for (const auto& name : cameraDeviceNames) { + std::shared_ptr device; + ALOGI("getSessionCharacteristics: Testing camera device %s", name.c_str()); + ndk::ScopedAStatus ret = mProvider->getCameraDeviceInterface(name, &device); + ALOGI("getCameraDeviceInterface returns: %d:%d", ret.getExceptionCode(), + ret.getServiceSpecificError()); + ASSERT_TRUE(ret.isOk()); + ASSERT_NE(device, nullptr); + + CameraMetadata meta; + openEmptyDeviceSession(name, mProvider, &mSession /*out*/, &meta /*out*/, + &device /*out*/); + + std::vector outputStreams; + camera_metadata_t* staticMeta = + reinterpret_cast(meta.metadata.data()); + outputStreams.clear(); + ASSERT_EQ(Status::OK, getAvailableOutputStreams(staticMeta, outputStreams)); + ASSERT_NE(0u, outputStreams.size()); + + AvailableStream sampleStream = outputStreams[0]; + + int32_t streamId = 0; + Stream stream = {streamId, + StreamType::OUTPUT, + sampleStream.width, + sampleStream.height, + static_cast(sampleStream.format), + static_cast( + GRALLOC1_CONSUMER_USAGE_VIDEO_ENCODER), + Dataspace::UNKNOWN, + StreamRotation::ROTATION_0, + std::string(), + /*bufferSize*/ 0, + /*groupId*/ -1, + {SensorPixelMode::ANDROID_SENSOR_PIXEL_MODE_DEFAULT}, + RequestAvailableDynamicRangeProfilesMap:: + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD}; + + std::vector streams = {stream}; + StreamConfiguration config; + createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config); + + CameraMetadata camera_chars; + ret = device->getCameraCharacteristics(&camera_chars); + ASSERT_TRUE(ret.isOk()); + + CameraMetadata session_chars; + ret = device->getSessionCharacteristics(config, &session_chars); + ASSERT_TRUE(ret.isOk()); + verifySessionCharacteristics(session_chars, camera_chars); + } + } else { + ALOGI("getSessionCharacteristics: Test skipped.\n"); + GTEST_SKIP(); + } +} + // Verify that the torch strength level can be set and retrieved successfully. TEST_P(CameraAidlTest, turnOnTorchWithStrengthLevel) { std::vector cameraDeviceNames = getCameraDeviceNames(mProvider); @@ -531,11 +593,7 @@ TEST_P(CameraAidlTest, constructDefaultRequestSettings) { } if (ret.isOk()) { - const camera_metadata_t* metadata = (camera_metadata_t*)rawMetadata.metadata.data(); - size_t expectedSize = rawMetadata.metadata.size(); - int result = validate_camera_metadata_structure(metadata, &expectedSize); - ASSERT_TRUE((result == 0) || (result == CAMERA_METADATA_VALIDATION_SHIFTED)); - verifyRequestTemplate(metadata, reqTemplate); + validateDefaultRequestMetadata(reqTemplate, rawMetadata); } else { ASSERT_EQ(0u, rawMetadata.metadata.size()); } @@ -546,24 +604,12 @@ TEST_P(CameraAidlTest, constructDefaultRequestSettings) { ndk::ScopedAStatus ret2 = device->constructDefaultRequestSettings(reqTemplate, &rawMetadata2); - // TODO: Do not allow OPERATION_NOT_SUPPORTED once HAL - // implementation is in place. - if (static_cast(ret2.getServiceSpecificError()) != - Status::OPERATION_NOT_SUPPORTED) { - ASSERT_EQ(ret.isOk(), ret2.isOk()); - ASSERT_EQ(ret.getStatus(), ret2.getStatus()); - - ASSERT_EQ(rawMetadata.metadata.size(), rawMetadata2.metadata.size()); - if (ret2.isOk()) { - const camera_metadata_t* metadata = - (camera_metadata_t*)rawMetadata2.metadata.data(); - size_t expectedSize = rawMetadata2.metadata.size(); - int result = - validate_camera_metadata_structure(metadata, &expectedSize); - ASSERT_TRUE((result == 0) || - (result == CAMERA_METADATA_VALIDATION_SHIFTED)); - verifyRequestTemplate(metadata, reqTemplate); - } + ASSERT_EQ(ret.isOk(), ret2.isOk()); + ASSERT_EQ(ret.getStatus(), ret2.getStatus()); + + ASSERT_EQ(rawMetadata.metadata.size(), rawMetadata2.metadata.size()); + if (ret2.isOk()) { + validateDefaultRequestMetadata(reqTemplate, rawMetadata2); } } } @@ -656,7 +702,6 @@ TEST_P(CameraAidlTest, configureConcurrentStreamsAvailableOutputs) { for (const auto& cameraDeviceIds : concurrentDeviceCombinations) { std::vector cameraIdsAndStreamCombinations; std::vector cameraTestInfos; - size_t i = 0; for (const auto& id : cameraDeviceIds.combination) { CameraTestInfo cti; auto it = idToNameMap.find(id); @@ -707,7 +752,6 @@ TEST_P(CameraAidlTest, configureConcurrentStreamsAvailableOutputs) { cameraIdAndStreamCombination.cameraId = id; cameraIdAndStreamCombination.streamConfiguration = cti.config; cameraIdsAndStreamCombinations.push_back(cameraIdAndStreamCombination); - i++; cameraTestInfos.push_back(cti); } // Now verify that concurrent streams are supported @@ -1572,7 +1616,7 @@ TEST_P(CameraAidlTest, processMultiCaptureRequestPreview) { std::vector halStreams; bool supportsPartialResults = false; - bool useHalBufManager = false; + std::set halBufManagedStreamIds; int32_t partialResultCount = 0; Stream previewStream; std::shared_ptr cb; @@ -1580,7 +1624,7 @@ TEST_P(CameraAidlTest, processMultiCaptureRequestPreview) { configurePreviewStreams( name, mProvider, &previewThreshold, physicalIds, &mSession, &previewStream, &halStreams /*out*/, &supportsPartialResults /*out*/, &partialResultCount /*out*/, - &useHalBufManager /*out*/, &cb /*out*/, 0 /*streamConfigCounter*/, true); + &halBufManagedStreamIds /*out*/, &cb /*out*/, 0 /*streamConfigCounter*/, true); if (mSession == nullptr) { // stream combination not supported by HAL, skip test for device continue; @@ -1617,7 +1661,9 @@ TEST_P(CameraAidlTest, processMultiCaptureRequestPreview) { size_t k = 0; for (const auto& halStream : halStreams) { buffer_handle_t buffer_handle; - if (useHalBufManager) { + bool useHalBufManagerForStream = + halBufManagedStreamIds.find(halStream.id) != halBufManagedStreamIds.end(); + if (useHalBufManagerForStream) { outputBuffers[k] = {halStream.id, /*bufferId*/ 0, NativeHandle(), BufferStatus::OK, NativeHandle(), NativeHandle()}; } else { @@ -1721,10 +1767,13 @@ TEST_P(CameraAidlTest, processMultiCaptureRequestPreview) { defaultPreviewSettings.unlock(settingsBuffer); filteredSettings.unlock(filteredSettingsBuffer); - if (useHalBufManager) { - std::vector streamIds(halStreams.size()); - for (size_t i = 0; i < streamIds.size(); i++) { - streamIds[i] = halStreams[i].id; + if (halBufManagedStreamIds.size() != 0) { + std::vector streamIds; + for (size_t i = 0; i < halStreams.size(); i++) { + int32_t streamId = halStreams[i].id; + if (halBufManagedStreamIds.find(streamId) != halBufManagedStreamIds.end()) { + streamIds.emplace_back(streamId); + } } verifyBuffersReturned(mSession, streamIds, cb); } @@ -1788,7 +1837,7 @@ TEST_P(CameraAidlTest, processUltraHighResolutionRequest) { std::vector halStreams; bool supportsPartialResults = false; - bool useHalBufManager = false; + std::set halBufManagedStreamIds; int32_t partialResultCount = 0; Stream previewStream; std::shared_ptr cb; @@ -1800,8 +1849,8 @@ TEST_P(CameraAidlTest, processUltraHighResolutionRequest) { GRALLOC1_CONSUMER_USAGE_CPU_READ); previewStream.dataSpace = Dataspace::UNKNOWN; configureStreams(name, mProvider, format, &mSession, &previewStream, &halStreams, - &supportsPartialResults, &partialResultCount, &useHalBufManager, &cb, - 0, /*maxResolution*/ true); + &supportsPartialResults, &partialResultCount, &halBufManagedStreamIds, + &cb, 0, /*maxResolution*/ true); ASSERT_NE(mSession, nullptr); ::aidl::android::hardware::common::fmq::MQDescriptor< @@ -1832,7 +1881,9 @@ TEST_P(CameraAidlTest, processUltraHighResolutionRequest) { size_t k = 0; for (const auto& halStream : halStreams) { buffer_handle_t buffer_handle; - if (useHalBufManager) { + bool halBufManagerUsed = + halBufManagedStreamIds.find(halStream.id) != halBufManagedStreamIds.end(); + if (halBufManagerUsed) { outputBuffers[k] = {halStream.id, 0, NativeHandle(), BufferStatus::OK, NativeHandle(), NativeHandle()}; @@ -1884,10 +1935,12 @@ TEST_P(CameraAidlTest, processUltraHighResolutionRequest) { ASSERT_FALSE(inflightReq->errorCodeValid); ASSERT_NE(inflightReq->resultOutputBuffers.size(), 0u); } - if (useHalBufManager) { - std::vector streamIds(halStreams.size()); - for (size_t i = 0; i < streamIds.size(); i++) { - streamIds[i] = halStreams[i].id; + if (halBufManagedStreamIds.size()) { + std::vector streamIds; + for (size_t i = 0; i < halStreams.size(); i++) { + if (contains(halBufManagedStreamIds, halStreams[i].id)) { + streamIds.emplace_back(halStreams[i].id); + } } verifyBuffersReturned(mSession, streamIds, cb); } @@ -1949,7 +2002,7 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { std::vector halStreams; bool supportsPartialResults = false; - bool useHalBufManager = false; + std::set halBufManagedStreamIds; int32_t partialResultCount = 0; Stream previewStream; std::shared_ptr cb; @@ -1960,7 +2013,7 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { previewStream.dataSpace = getDataspace(PixelFormat::IMPLEMENTATION_DEFINED); configureStreams(name, mProvider, PixelFormat::IMPLEMENTATION_DEFINED, &mSession, &previewStream, &halStreams, &supportsPartialResults, - &partialResultCount, &useHalBufManager, &cb, 0, + &partialResultCount, &halBufManagedStreamIds, &cb, 0, /*maxResolution*/ false, profile); ASSERT_NE(mSession, nullptr); @@ -1999,7 +2052,7 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { auto bufferId = requestId + 1; // Buffer id value 0 is not valid for (const auto& halStream : halStreams) { buffer_handle_t buffer_handle; - if (useHalBufManager) { + if (contains(halBufManagedStreamIds, halStream.id)) { outputBuffers[k] = {halStream.id, 0, NativeHandle(), BufferStatus::OK, NativeHandle(), NativeHandle()}; @@ -2065,10 +2118,12 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { verify10BitMetadata(mHandleImporter, *inflightReq, profile); } - if (useHalBufManager) { - std::vector streamIds(halStreams.size()); - for (size_t i = 0; i < streamIds.size(); i++) { - streamIds[i] = halStreams[i].id; + if (halBufManagedStreamIds.size() != 0) { + std::vector streamIds; + for (size_t i = 0; i < halStreams.size(); i++) { + if (contains(halBufManagedStreamIds, halStreams[i].id)) { + streamIds.emplace_back(halStreams[i].id); + } } mSession->signalStreamFlush(streamIds, /*streamConfigCounter*/ 0); cb->waitForBuffersReturned(); @@ -2400,11 +2455,11 @@ TEST_P(CameraAidlTest, switchToOffline) { std::vector halStreams; std::shared_ptr cb; int32_t jpegBufferSize; - bool useHalBufManager; + std::set halBufManagedStreamIds; configureOfflineStillStream(name, mProvider, &threshold, &mSession /*out*/, &stream /*out*/, &halStreams /*out*/, &supportsPartialResults /*out*/, &partialResultCount /*out*/, &cb /*out*/, - &jpegBufferSize /*out*/, &useHalBufManager /*out*/); + &jpegBufferSize /*out*/, &halBufManagedStreamIds /*out*/); auto ret = mSession->constructDefaultRequestSettings(RequestTemplate::STILL_CAPTURE, &settings); @@ -2440,7 +2495,7 @@ TEST_P(CameraAidlTest, switchToOffline) { StreamBuffer& outputBuffer = outputBuffers[0]; std::unique_lock l(mLock); - if (useHalBufManager) { + if (contains(halBufManagedStreamIds, halStream.id)) { outputBuffer = {halStream.id, 0, NativeHandle(), BufferStatus::OK, NativeHandle(), NativeHandle()}; } else { diff --git a/camera/provider/aidl/vts/camera_aidl_test.cpp b/camera/provider/aidl/vts/camera_aidl_test.cpp index 8e72b3f6056cffdf630da43001fc95c44b846f1c..aef50d46beb5c136a4708c1a6518a39ab2c358d1 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.cpp +++ b/camera/provider/aidl/vts/camera_aidl_test.cpp @@ -316,21 +316,11 @@ void CameraAidlTest::verifyMonochromeCameraResult( void CameraAidlTest::verifyStreamUseCaseCharacteristics(const camera_metadata_t* metadata) { camera_metadata_ro_entry entry; - // Check capabilities - int retcode = - find_camera_metadata_ro_entry(metadata, ANDROID_REQUEST_AVAILABLE_CAPABILITIES, &entry); - bool hasStreamUseCaseCap = false; - if ((0 == retcode) && (entry.count > 0)) { - if (std::find(entry.data.u8, entry.data.u8 + entry.count, - ANDROID_REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE) != - entry.data.u8 + entry.count) { - hasStreamUseCaseCap = true; - } - } + bool hasStreamUseCaseCap = supportsStreamUseCaseCap(metadata); bool supportMandatoryUseCases = false; - retcode = find_camera_metadata_ro_entry(metadata, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, - &entry); + int retcode = find_camera_metadata_ro_entry(metadata, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, + &entry); if ((0 == retcode) && (entry.count > 0)) { supportMandatoryUseCases = true; for (size_t i = 0; i < kMandatoryUseCases.size(); i++) { @@ -1919,18 +1909,93 @@ void CameraAidlTest::verifyStreamCombination(const std::shared_ptrisStreamCombinationWithSettingsSupported(config, &streamCombinationSupported); - // TODO: Do not allow OPERATION_NOT_SUPPORTED once HAL - // implementation is in place. - ASSERT_TRUE(ret.isOk() || static_cast(ret.getServiceSpecificError()) == - Status::OPERATION_NOT_SUPPORTED); - if (ret.isOk()) { - ASSERT_EQ(expectedStatus, streamCombinationSupported); - } + ASSERT_TRUE(ret.isOk()); + ASSERT_EQ(expectedStatus, streamCombinationSupported); } } } } +void CameraAidlTest::verifySessionCharacteristics(const CameraMetadata& session_chars, + const CameraMetadata& camera_chars) { + if (!flags::feature_combination_query()) { + return; + } + + const camera_metadata_t* session_metadata = + reinterpret_cast(session_chars.metadata.data()); + + const camera_metadata_t* camera_metadata = + reinterpret_cast(camera_chars.metadata.data()); + + size_t expectedSize = session_chars.metadata.size(); + int result = validate_camera_metadata_structure(session_metadata, &expectedSize); + ASSERT_TRUE((result == 0) || (result == CAMERA_METADATA_VALIDATION_SHIFTED)); + size_t entryCount = get_camera_metadata_entry_count(session_metadata); + // There should be at least 1 characteristic present: + // SCALER_MAX_DIGITAL_ZOOM must always be available. + // ZOOM_RATIO_RANGE must be available if ZOOM_RATIO is supported. + ASSERT_TRUE(entryCount >= 1); + + camera_metadata_ro_entry entry; + int retcode = 0; + float maxDigitalZoom = 1.0; + + for (size_t i = 0; i < entryCount; i++) { + retcode = get_camera_metadata_ro_entry(session_metadata, i, &entry); + ASSERT_TRUE(retcode == 0); + + std::set allowed_tags = {ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM, + ANDROID_CONTROL_ZOOM_RATIO_RANGE}; + + if (contains(allowed_tags, entry.tag)) { + continue; + } + + // Other than the ones above, no tags should be allowed apart from vendor tags. + ASSERT_TRUE(entry.tag >= VENDOR_SECTION_START); + } + + retcode = find_camera_metadata_ro_entry(session_metadata, + ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM, &entry); + if ((0 == retcode) && (entry.count == 1)) { + maxDigitalZoom = entry.data.f[0]; + } else { + ADD_FAILURE() << "Get camera scalerAvailableMaxDigitalZoom failed!"; + } + + retcode = find_camera_metadata_ro_entry(camera_metadata, ANDROID_CONTROL_ZOOM_RATIO_RANGE, + &entry); + bool hasZoomRatioRange = (0 == retcode && entry.count == 2); + if (!hasZoomRatioRange) { + ALOGI("Skipping the rest of the test as ZOOM_RATIO_RANGE is not in camera characteristics"); + return; + } + + // Session characteristics must contain zoom_ratio_range if camera characteristics has it. + retcode = find_camera_metadata_ro_entry(session_metadata, ANDROID_CONTROL_ZOOM_RATIO_RANGE, + &entry); + ASSERT_TRUE(0 == retcode && entry.count == 2); + + float minZoomRatio = entry.data.f[0]; + float maxZoomRatio = entry.data.f[1]; + constexpr float FLOATING_POINT_THRESHOLD = 0.00001f; + if (abs(maxDigitalZoom - maxZoomRatio) > FLOATING_POINT_THRESHOLD) { + ADD_FAILURE() << "Difference between maximum digital zoom " << maxDigitalZoom + << " and maximum zoom ratio " << maxZoomRatio + << " is greater than the threshold " << FLOATING_POINT_THRESHOLD << "!"; + } + if (minZoomRatio > maxZoomRatio) { + ADD_FAILURE() << "Maximum zoom ratio is less than minimum zoom ratio!"; + } + if (minZoomRatio > 1.0f) { + ADD_FAILURE() << "Minimum zoom ratio is more than 1.0!"; + } + if (maxZoomRatio < 1.0f) { + ADD_FAILURE() << "Maximum zoom ratio is less than 1.0!"; + } +} + std::vector CameraAidlTest::getConcurrentDeviceCombinations( std::shared_ptr& provider) { std::vector combinations; @@ -2209,7 +2274,6 @@ void CameraAidlTest::processCaptureRequestInternal(uint64_t bufferUsage, int64_t bufferId = 1; int32_t frameNumber = 1; CameraMetadata settings; - for (const auto& name : cameraDeviceNames) { Stream testStream; std::vector halStreams; @@ -2388,10 +2452,10 @@ void CameraAidlTest::configureStreamUseCaseInternal(const AvailableStream &thres &cameraDevice /*out*/); camera_metadata_t* staticMeta = reinterpret_cast(meta.metadata.data()); - // Check if camera support depth only - if (isDepthOnly(staticMeta) || - (threshold.format == static_cast(PixelFormat::RAW16) && - !supportsCroppedRawUseCase(staticMeta))) { + // Check if camera support depth only or doesn't support stream use case capability + if (isDepthOnly(staticMeta) || !supportsStreamUseCaseCap(staticMeta) || + (threshold.format == static_cast(PixelFormat::RAW16) && + !supportsCroppedRawUseCase(staticMeta))) { ndk::ScopedAStatus ret = mSession->close(); mSession = nullptr; ASSERT_TRUE(ret.isOk()); @@ -2405,18 +2469,20 @@ void CameraAidlTest::configureStreamUseCaseInternal(const AvailableStream &thres ASSERT_NE(0u, outputPreviewStreams.size()); // Combine valid and invalid stream use cases - std::vector useCases(kMandatoryUseCases); - useCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW + 1); + std::vector testedUseCases; + testedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW + 1); std::vector supportedUseCases; if (threshold.format == static_cast(PixelFormat::RAW16)) { // If the format is RAW16, supported use case is only CROPPED_RAW. // All others are unsupported for this format. - useCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW); + testedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW); supportedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW); supportedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT); } else { camera_metadata_ro_entry entry; + testedUseCases.insert(testedUseCases.end(), kMandatoryUseCases.begin(), + kMandatoryUseCases.end()); auto retcode = find_camera_metadata_ro_entry( staticMeta, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, &entry); if ((0 == retcode) && (entry.count > 0)) { @@ -2457,7 +2523,7 @@ void CameraAidlTest::configureStreamUseCaseInternal(const AvailableStream &thres ASSERT_TRUE(ret.isOk()); config.sessionParams = req; - for (int64_t useCase : useCases) { + for (int64_t useCase : testedUseCases) { bool useCaseSupported = std::find(supportedUseCases.begin(), supportedUseCases.end(), useCase) != supportedUseCases.end(); @@ -2499,12 +2565,19 @@ void CameraAidlTest::configureStreamUseCaseInternal(const AvailableStream &thres ndk::ScopedAStatus CameraAidlTest::configureStreams(std::shared_ptr& session, const StreamConfiguration& config, - bool sessionHalBufferManager, - bool* useHalBufManager, + BufferManagerType bufferManagerType, + std::set* halBufManagedStreamIds, std::vector* halStreams) { auto ret = ndk::ScopedAStatus::ok(); ConfigureStreamsRet aidl_return; - if (sessionHalBufferManager) { + int32_t interfaceVersion = -1; + ret = session->getInterfaceVersion(&interfaceVersion); + if (!ret.isOk()) { + return ret; + } + + if (flags::session_hal_buf_manager() && + (bufferManagerType == BufferManagerType::SESSION && interfaceVersion >= 3)) { ret = session->configureStreamsV2(config, &aidl_return); } else { ret = session->configureStreams(config, halStreams); @@ -2512,10 +2585,16 @@ ndk::ScopedAStatus CameraAidlTest::configureStreams(std::shared_ptrinsert(halStream.id); + } + } return ndk::ScopedAStatus::ok(); } @@ -2572,16 +2651,16 @@ void CameraAidlTest::configureSingleStream( ASSERT_TRUE(ret.isOk()); ASSERT_NE(*session, nullptr); - *useHalBufManager = false; - bool sessionHalBufferManager = false; + BufferManagerType bufferManagerType = BufferManagerType::FRAMEWORK; status = find_camera_metadata_ro_entry( staticMeta, ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION, &entry); if ((0 == status) && (entry.count == 1)) { - *useHalBufManager = (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5); - sessionHalBufferManager = - (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE); + if (entry.data.u8[0] == ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5) { + bufferManagerType = BufferManagerType::HAL; + } else if (entry.data.u8[0] == + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE) { + bufferManagerType = BufferManagerType::SESSION; + } } outputPreviewStreams.clear(); @@ -2640,7 +2719,8 @@ void CameraAidlTest::configureSingleStream( ASSERT_EQ(supported, true); std::vector halConfigs; - ret = configureStreams(*session, config, sessionHalBufferManager, useHalBufManager, + std::set halBufManagedStreamIds; + ret = configureStreams(*session, config, bufferManagerType, &halBufManagedStreamIds, &halConfigs); ALOGI("configureStreams returns status: %d:%d", ret.getExceptionCode(), ret.getServiceSpecificError()); @@ -2648,6 +2728,7 @@ void CameraAidlTest::configureSingleStream( ASSERT_EQ(1u, halConfigs.size()); halStreams->clear(); halStreams->push_back(halConfigs[0]); + *useHalBufManager = halBufManagedStreamIds.size() != 0; if (*useHalBufManager) { std::vector ss(1); std::vector hs(1); @@ -2774,6 +2855,7 @@ void CameraAidlTest::processPreviewStabilizationCaptureRequestInternal( overrideRotateAndCrop(&request.settings); request.outputBuffers = std::vector(1); StreamBuffer& outputBuffer = request.outputBuffers[0]; + if (useHalBufManager) { outputBuffer = {halStreams[0].id, /*bufferId*/ 0, NativeHandle(), BufferStatus::OK, @@ -2892,14 +2974,14 @@ void CameraAidlTest::configurePreviewStreams( const AvailableStream* previewThreshold, const std::unordered_set& physicalIds, std::shared_ptr* session, Stream* previewStream, std::vector* halStreams, bool* supportsPartialResults, - int32_t* partialResultCount, bool* useHalBufManager, std::shared_ptr* cb, - int32_t streamConfigCounter, bool allowUnsupport) { + int32_t* partialResultCount, std::set* halBufManagedStreamIds, + std::shared_ptr* cb, int32_t streamConfigCounter, bool allowUnsupport) { ASSERT_NE(nullptr, session); ASSERT_NE(nullptr, halStreams); ASSERT_NE(nullptr, previewStream); ASSERT_NE(nullptr, supportsPartialResults); ASSERT_NE(nullptr, partialResultCount); - ASSERT_NE(nullptr, useHalBufManager); + ASSERT_NE(nullptr, halBufManagedStreamIds); ASSERT_NE(nullptr, cb); ASSERT_FALSE(physicalIds.empty()); @@ -2936,16 +3018,16 @@ void CameraAidlTest::configurePreviewStreams( ASSERT_TRUE(ret.isOk()); ASSERT_NE(*session, nullptr); - *useHalBufManager = false; - bool sessionHalBufferManager = false; + BufferManagerType bufferManagerType = BufferManagerType::FRAMEWORK; status = find_camera_metadata_ro_entry( staticMeta, ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION, &entry); if ((0 == status) && (entry.count == 1)) { - *useHalBufManager = (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5); - sessionHalBufferManager = - (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE); + if (entry.data.u8[0] == ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5) { + bufferManagerType = BufferManagerType::HAL; + } else if (entry.data.u8[0] == + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE) { + bufferManagerType = BufferManagerType::SESSION; + } } outputPreviewStreams.clear(); @@ -3000,18 +3082,21 @@ void CameraAidlTest::configurePreviewStreams( config.streamConfigCounter = streamConfigCounter; std::vector halConfigs; - ret = configureStreams(*session, config, sessionHalBufferManager, useHalBufManager, + ret = configureStreams(*session, config, bufferManagerType, halBufManagedStreamIds, &halConfigs); ASSERT_TRUE(ret.isOk()); ASSERT_EQ(physicalIds.size(), halConfigs.size()); *halStreams = halConfigs; - if (*useHalBufManager) { - std::vector ss(physicalIds.size()); - std::vector hs(physicalIds.size()); + if (halBufManagedStreamIds->size() != 0) { + // Only include the streams that are HAL buffer managed + std::vector ss; + std::vector hs; for (size_t i = 0; i < physicalIds.size(); i++) { - ss[i] = streams[i]; - hs[i] = halConfigs[i]; + if (contains(*halBufManagedStreamIds, halConfigs[i].id)) { + ss.emplace_back(streams[i]); + hs.emplace_back(halConfigs[i]); + } } (*cb)->setCurrentStreamConfig(ss, hs); } @@ -3029,22 +3114,20 @@ void CameraAidlTest::verifyBuffersReturned(const std::shared_ptrwaitForBuffersReturned(); } -void CameraAidlTest::configureStreams(const std::string& name, - const std::shared_ptr& provider, - PixelFormat format, - std::shared_ptr* session, - Stream* previewStream, std::vector* halStreams, - bool* supportsPartialResults, int32_t* partialResultCount, - bool* useHalBufManager, std::shared_ptr* outCb, - uint32_t streamConfigCounter, bool maxResolution, - RequestAvailableDynamicRangeProfilesMap dynamicRangeProf, - RequestAvailableColorSpaceProfilesMap colorSpaceProf) { +void CameraAidlTest::configureStreams( + const std::string& name, const std::shared_ptr& provider, + PixelFormat format, std::shared_ptr* session, Stream* previewStream, + std::vector* halStreams, bool* supportsPartialResults, + int32_t* partialResultCount, std::set* halBufManagedStreamIds, + std::shared_ptr* outCb, uint32_t streamConfigCounter, bool maxResolution, + RequestAvailableDynamicRangeProfilesMap dynamicRangeProf, + RequestAvailableColorSpaceProfilesMap colorSpaceProf) { ASSERT_NE(nullptr, session); ASSERT_NE(nullptr, halStreams); ASSERT_NE(nullptr, previewStream); ASSERT_NE(nullptr, supportsPartialResults); ASSERT_NE(nullptr, partialResultCount); - ASSERT_NE(nullptr, useHalBufManager); + ASSERT_NE(nullptr, halBufManagedStreamIds); ASSERT_NE(nullptr, outCb); ALOGI("configureStreams: Testing camera device %s", name.c_str()); @@ -3081,16 +3164,16 @@ void CameraAidlTest::configureStreams(const std::string& name, ASSERT_TRUE(ret.isOk()); ASSERT_NE(*session, nullptr); - *useHalBufManager = false; - bool sessionHalBufferManager = false; + BufferManagerType bufferManagerType = BufferManagerType::FRAMEWORK; status = find_camera_metadata_ro_entry( staticMeta, ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION, &entry); if ((0 == status) && (entry.count == 1)) { - *useHalBufManager = (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5); - sessionHalBufferManager = - (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE); + if (entry.data.u8[0] == ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5) { + bufferManagerType = BufferManagerType::HAL; + } else if (entry.data.u8[0] == + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE) { + bufferManagerType = BufferManagerType::SESSION; + } } outputStreams.clear(); @@ -3144,11 +3227,11 @@ void CameraAidlTest::configureStreams(const std::string& name, ASSERT_TRUE(ret.isOk()); ASSERT_EQ(supported, true); - ret = configureStreams(*session, config, sessionHalBufferManager, useHalBufManager, halStreams); + ret = configureStreams(*session, config, bufferManagerType, halBufManagedStreamIds, halStreams); ASSERT_TRUE(ret.isOk()); - if (*useHalBufManager) { + if (halBufManagedStreamIds->size() != 0) { std::vector ss(1); std::vector hs(1); ss[0] = streams[0]; @@ -3443,6 +3526,21 @@ bool CameraAidlTest::supportsCroppedRawUseCase(const camera_metadata_t *staticMe return false; } +bool CameraAidlTest::supportsStreamUseCaseCap(const camera_metadata_t* staticMeta) { + camera_metadata_ro_entry entry; + int retcode = find_camera_metadata_ro_entry(staticMeta, ANDROID_REQUEST_AVAILABLE_CAPABILITIES, + &entry); + bool hasStreamUseCaseCap = false; + if ((0 == retcode) && (entry.count > 0)) { + if (std::find(entry.data.u8, entry.data.u8 + entry.count, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE) != + entry.data.u8 + entry.count) { + hasStreamUseCaseCap = true; + } + } + return hasStreamUseCaseCap; +} + bool CameraAidlTest::isPerFrameControl(const camera_metadata_t* staticMeta) { camera_metadata_ro_entry syncLatencyEntry; int rc = find_camera_metadata_ro_entry(staticMeta, ANDROID_SYNC_MAX_LATENCY, @@ -3493,7 +3591,7 @@ void CameraAidlTest::configureOfflineStillStream( const AvailableStream* threshold, std::shared_ptr* session, Stream* stream, std::vector* halStreams, bool* supportsPartialResults, int32_t* partialResultCount, std::shared_ptr* outCb, int32_t* jpegBufferSize, - bool* useHalBufManager) { + std::set* halBufManagedStreamIds) { ASSERT_NE(nullptr, session); ASSERT_NE(nullptr, halStreams); ASSERT_NE(nullptr, stream); @@ -3501,7 +3599,7 @@ void CameraAidlTest::configureOfflineStillStream( ASSERT_NE(nullptr, partialResultCount); ASSERT_NE(nullptr, outCb); ASSERT_NE(nullptr, jpegBufferSize); - ASSERT_NE(nullptr, useHalBufManager); + ASSERT_NE(nullptr, halBufManagedStreamIds); std::vector outputStreams; std::shared_ptr cameraDevice; @@ -3528,16 +3626,16 @@ void CameraAidlTest::configureOfflineStillStream( *supportsPartialResults = (*partialResultCount > 1); } - *useHalBufManager = false; - bool sessionHalBufferManager = false; + BufferManagerType bufferManagerType = BufferManagerType::FRAMEWORK; status = find_camera_metadata_ro_entry( staticMeta, ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION, &entry); if ((0 == status) && (entry.count == 1)) { - *useHalBufManager = (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5); - sessionHalBufferManager = - (entry.data.u8[0] == - ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE); + if (entry.data.u8[0] == ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_HIDL_DEVICE_3_5) { + bufferManagerType = BufferManagerType::HAL; + } else if (entry.data.u8[0] == + ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_SESSION_CONFIGURABLE) { + bufferManagerType = BufferManagerType::SESSION; + } } auto st = getJpegBufferSize(staticMeta, jpegBufferSize); @@ -3590,11 +3688,11 @@ void CameraAidlTest::configureOfflineStillStream( StreamConfiguration config = {streams, StreamConfigurationMode::NORMAL_MODE, CameraMetadata()}; - ret = configureStreams(*session, config, sessionHalBufferManager, useHalBufManager, halStreams); + ret = configureStreams(*session, config, bufferManagerType, halBufManagedStreamIds, halStreams); ASSERT_TRUE(ret.isOk()); - if (*useHalBufManager) { + if (halBufManagedStreamIds->size() != 0) { (*outCb)->setCurrentStreamConfig(streams, *halStreams); } @@ -3697,7 +3795,7 @@ void CameraAidlTest::processColorSpaceRequest( std::vector halStreams; bool supportsPartialResults = false; - bool useHalBufManager = false; + std::set halBufManagedStreamIds; int32_t partialResultCount = 0; Stream previewStream; std::shared_ptr cb; @@ -3706,7 +3804,7 @@ void CameraAidlTest::processColorSpaceRequest( GRALLOC1_CONSUMER_USAGE_HWCOMPOSER); configureStreams(name, mProvider, PixelFormat::IMPLEMENTATION_DEFINED, &mSession, &previewStream, &halStreams, &supportsPartialResults, &partialResultCount, - &useHalBufManager, &cb, 0, + &halBufManagedStreamIds, &cb, 0, /*maxResolution*/ false, dynamicRangeProfile, colorSpace); ASSERT_NE(mSession, nullptr); @@ -3745,7 +3843,7 @@ void CameraAidlTest::processColorSpaceRequest( auto bufferId = requestId + 1; // Buffer id value 0 is not valid for (const auto& halStream : halStreams) { buffer_handle_t buffer_handle; - if (useHalBufManager) { + if (contains(halBufManagedStreamIds, halStream.id)) { outputBuffers[k] = {halStream.id, 0, NativeHandle(), BufferStatus::OK, NativeHandle(), NativeHandle()}; @@ -3812,10 +3910,12 @@ void CameraAidlTest::processColorSpaceRequest( } } - if (useHalBufManager) { - std::vector streamIds(halStreams.size()); + if (halBufManagedStreamIds.size() != 0) { + std::vector streamIds; for (size_t i = 0; i < streamIds.size(); i++) { - streamIds[i] = halStreams[i].id; + if (contains(halBufManagedStreamIds, halStreams[i].id)) { + streamIds.emplace_back(halStreams[i].id); + } } mSession->signalStreamFlush(streamIds, /*streamConfigCounter*/ 0); cb->waitForBuffersReturned(); @@ -4026,3 +4126,12 @@ void CameraAidlTest::getSupportedDurations(const camera_metadata_t* ch, uint32_t } } } + +void CameraAidlTest::validateDefaultRequestMetadata(RequestTemplate reqTemplate, + const CameraMetadata& rawMetadata) { + const camera_metadata_t* metadata = (camera_metadata_t*)rawMetadata.metadata.data(); + size_t expectedSize = rawMetadata.metadata.size(); + int result = validate_camera_metadata_structure(metadata, &expectedSize); + ASSERT_TRUE((result == 0) || (result == CAMERA_METADATA_VALIDATION_SHIFTED)); + verifyRequestTemplate(metadata, reqTemplate); +} diff --git a/camera/provider/aidl/vts/camera_aidl_test.h b/camera/provider/aidl/vts/camera_aidl_test.h index b51544fb677cf14755ffbb323593f44e7539a505..782794b6aac85848a01f145185ce56d14f0ca8a2 100644 --- a/camera/provider/aidl/vts/camera_aidl_test.h +++ b/camera/provider/aidl/vts/camera_aidl_test.h @@ -99,6 +99,11 @@ using ::ndk::ScopedAStatus; class DeviceCb; // Forward declare to break circular header dependency +template +bool contains(const std::set& container, T value) { + return container.find(value) != container.end(); +} + class CameraAidlTest : public ::testing::TestWithParam { public: enum SystemCameraKind { @@ -121,6 +126,8 @@ class CameraAidlTest : public ::testing::TestWithParam { HIDDEN_SECURE_CAMERA }; + enum BufferManagerType { FRAMEWORK = 0, HAL, SESSION }; + struct AvailableStream { int32_t width; int32_t height; @@ -200,11 +207,12 @@ class CameraAidlTest : public ::testing::TestWithParam { std::shared_ptr* session /*out*/, Stream* stream /*out*/, std::vector* halStreams, bool* supportsPartialResults /*out*/, int32_t* partialResultCount /*out*/, std::shared_ptr* outCb /*out*/, - int32_t* jpegBufferSize /*out*/, bool* useHalBufManager /*out*/); + int32_t* jpegBufferSize /*out*/, std::set* halBufManagedStreamIds /*out*/); ndk::ScopedAStatus configureStreams(std::shared_ptr& session, const StreamConfiguration& config, - bool sessionHalBufferManager, bool* useHalBufManager, + BufferManagerType bufferManagerType, + std::set* halBufManagedStreamIds, std::vector* halStreams); void configureStreams( @@ -212,8 +220,9 @@ class CameraAidlTest : public ::testing::TestWithParam { PixelFormat format, std::shared_ptr* session /*out*/, Stream* previewStream /*out*/, std::vector* halStreams /*out*/, bool* supportsPartialResults /*out*/, int32_t* partialResultCount /*out*/, - bool* useHalBufManager /*out*/, std::shared_ptr* outCb /*out*/, - uint32_t streamConfigCounter, bool maxResolution, + std::set* halBufManagedStreamIds /*out*/, + std::shared_ptr* outCb /*out*/, uint32_t streamConfigCounter, + bool maxResolution, RequestAvailableDynamicRangeProfilesMap dynamicRangeProf = RequestAvailableDynamicRangeProfilesMap:: ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD, @@ -227,7 +236,7 @@ class CameraAidlTest : public ::testing::TestWithParam { const std::unordered_set& physicalIds, std::shared_ptr* session /*out*/, Stream* previewStream /*out*/, std::vector* halStreams /*out*/, bool* supportsPartialResults /*out*/, - int32_t* partialResultCount /*out*/, bool* useHalBufManager /*out*/, + int32_t* partialResultCount /*out*/, std::set* halBufManagedStreamIds /*out*/, std::shared_ptr* cb /*out*/, int32_t streamConfigCounter = 0, bool allowUnsupport = false); @@ -281,6 +290,9 @@ class CameraAidlTest : public ::testing::TestWithParam { static void verifyStreamCombination(const std::shared_ptr& device, const StreamConfiguration& config, bool expectedStatus); + static void verifySessionCharacteristics(const CameraMetadata& session_chars, + const CameraMetadata& camera_chars); + static void verifyLogicalCameraResult(const camera_metadata_t* staticMetadata, const std::vector& resultMetadata); @@ -428,7 +440,8 @@ class CameraAidlTest : public ::testing::TestWithParam { int32_t frameCount, const bool *overrideSequence, const bool *expectedResults); bool supportZoomSettingsOverride(const camera_metadata_t* staticMeta); - bool supportsCroppedRawUseCase(const camera_metadata_t *staticMeta); + static bool supportsStreamUseCaseCap(const camera_metadata_t* staticMeta); + static bool supportsCroppedRawUseCase(const camera_metadata_t* staticMeta); bool isPerFrameControl(const camera_metadata_t* staticMeta); void getSupportedSizes(const camera_metadata_t* ch, uint32_t tag, int32_t format, @@ -588,6 +601,9 @@ class CameraAidlTest : public ::testing::TestWithParam { static void waitForReleaseFence( std::vector& resultOutputBuffers); + static void validateDefaultRequestMetadata(RequestTemplate reqTemplate, + const CameraMetadata& rawMetadata); + // Map from frame number to the in-flight request state typedef std::unordered_map> InFlightMap; diff --git a/camera/provider/default/Android.bp b/camera/provider/default/Android.bp index ed45cbed9d933b9b7de601896bf26fd8fae6bf11..9d70c920510f6f3615c148f9bcc7f2b1c5758203 100644 --- a/camera/provider/default/Android.bp +++ b/camera/provider/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_camera_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/compatibility_matrices/Android.bp b/compatibility_matrices/Android.bp index c82eac47dd1e47c333b0f696bed4d01c4ec272f7..2b694427fbfe91465f0fc482318345c0acdb9edd 100644 --- a/compatibility_matrices/Android.bp +++ b/compatibility_matrices/Android.bp @@ -21,20 +21,6 @@ package { default_applicable_licenses: ["hardware_interfaces_license"], } -vintf_compatibility_matrix { - name: "framework_compatibility_matrix.4.xml", - stem: "compatibility_matrix.4.xml", - srcs: [ - "compatibility_matrix.4.xml", - ], - kernel_configs: [ - "kernel_config_p_4.4", - "kernel_config_q_4.9", - "kernel_config_q_4.14", - "kernel_config_q_4.19", - ], -} - vintf_compatibility_matrix { name: "framework_compatibility_matrix.5.xml", stem: "compatibility_matrix.5.xml", @@ -86,13 +72,24 @@ vintf_compatibility_matrix { } vintf_compatibility_matrix { - name: "framework_compatibility_matrix.9.xml", - stem: "compatibility_matrix.9.xml", + name: "framework_compatibility_matrix.202404.xml", + stem: "compatibility_matrix.202404.xml", srcs: [ - "compatibility_matrix.9.xml", + "compatibility_matrix.202404.xml", ], kernel_configs: [ "kernel_config_v_6.1", "kernel_config_v_6.6", ], } + +vintf_compatibility_matrix { + name: "framework_compatibility_matrix.202504.xml", + stem: "compatibility_matrix.202504.xml", + srcs: ["compatibility_matrix.202504.xml"], + kernel_configs: [ + "kernel_config_w_6.1", + "kernel_config_w_6.6", + ], + +} diff --git a/compatibility_matrices/Android.mk b/compatibility_matrices/Android.mk index c2ffb8413bab32e7c41f4f57bd808ba7aaae6f45..ab57b8c87568dc53497e60641c3d2dae92cdd357 100644 --- a/compatibility_matrices/Android.mk +++ b/compatibility_matrices/Android.mk @@ -101,18 +101,19 @@ include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) endif # DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE my_system_matrix_deps := \ - framework_compatibility_matrix.4.xml \ framework_compatibility_matrix.5.xml \ framework_compatibility_matrix.6.xml \ framework_compatibility_matrix.7.xml \ framework_compatibility_matrix.8.xml \ + framework_compatibility_matrix.202404.xml \ framework_compatibility_matrix.device.xml \ # Only allow the use of the unreleased compatibility matrix when we can use unfrozen # interfaces (in the `next` release configuration). ifeq ($(RELEASE_AIDL_USE_UNFROZEN),true) my_system_matrix_deps += \ - framework_compatibility_matrix.9.xml + framework_compatibility_matrix.202504.xml \ + endif my_framework_matrix_deps += \ diff --git a/compatibility_matrices/bump.py b/compatibility_matrices/bump.py index 88b7a42013a7bd5f3e31d9fd449972f33a8734b7..a5a453bdea4cc7301e6ac1d15dfd7d83651cf073 100755 --- a/compatibility_matrices/bump.py +++ b/compatibility_matrices/bump.py @@ -16,8 +16,6 @@ # """ Creates the next compatibility matrix. - -Requires libvintf Level.h to be updated before executing this script. """ import argparse @@ -44,44 +42,33 @@ class Bump(object): self.top = pathlib.Path(os.environ["ANDROID_BUILD_TOP"]) self.interfaces_dir = self.top / "hardware/interfaces" - self.current_level = cmdline_args.current + self.current_level = cmdline_args.current_level + self.current_letter = cmdline_args.current_letter self.current_module_name = f"framework_compatibility_matrix.{self.current_level}.xml" self.current_xml = self.interfaces_dir / f"compatibility_matrices/compatibility_matrix.{self.current_level}.xml" + self.device_module_name = "framework_compatibility_matrix.device.xml" - self.next_level = cmdline_args.next + self.next_level = cmdline_args.next_level + self.next_letter = cmdline_args.next_letter self.next_module_name = f"framework_compatibility_matrix.{self.next_level}.xml" self.next_xml = self.interfaces_dir / f"compatibility_matrices/compatibility_matrix.{self.next_level}.xml" - self.level_to_letter = self.get_level_to_letter_mapping() - print("Found level mapping in libvintf Level.h:", self.level_to_letter) - def run(self): self.bump_kernel_configs() self.copy_matrix() self.edit_android_bp() self.edit_android_mk() - def get_level_to_letter_mapping(self): - levels_file = self.top / "system/libvintf/include/vintf/Level.h" - with open(levels_file) as f: - lines = f.readlines() - pairs = [ - line.split("=", maxsplit=2) for line in lines if "=" in line - ] - return { - level.strip().removesuffix(","): letter.strip() - for letter, level in pairs - } - def bump_kernel_configs(self): check_call([ self.top / "kernel/configs/tools/bump.py", - self.level_to_letter[self.current_level].lower(), - self.level_to_letter[self.next_level].lower(), + self.current_letter, + self.next_letter, ]) def copy_matrix(self): - shutil.copyfile(self.current_xml, self.next_xml) + with open(self.current_xml) as f_current, open(self.next_xml, "w") as f_next: + f_next.write(f_current.read().replace(f"level=\"{self.current_level}\"", f"level=\"{self.next_level}\"")) def edit_android_bp(self): android_bp = self.interfaces_dir / "compatibility_matrices/Android.bp" @@ -100,7 +87,7 @@ class Bump(object): next_kernel_configs = check_output( """grep -rh name: | sed -E 's/^.*"(.*)".*/\\1/g'""", cwd=self.top / "kernel/configs" / - self.level_to_letter[self.next_level].lower(), + self.next_letter, text=True, shell=True, ).splitlines() @@ -124,31 +111,38 @@ class Bump(object): def edit_android_mk(self): android_mk = self.interfaces_dir / "compatibility_matrices/Android.mk" + lines = [] with open(android_mk) as f: if self.next_module_name in f.read(): return f.seek(0) - lines = f.readlines() - current_module_line_number = None - for line_number, line in enumerate(lines): - if self.current_module_name in line: - current_module_line_number = line_number - break - assert current_module_line_number is not None - lines.insert(current_module_line_number + 1, - f" {self.next_module_name} \\\n") + for line in f: + if f" {self.device_module_name} \\\n" in line: + lines.append(f" {self.current_module_name} \\\n") + + if self.current_module_name in line: + lines.append(f" {self.next_module_name} \\\n") + else: + lines.append(line) + with open(android_mk, "w") as f: f.write("".join(lines)) def main(): parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument("current", + parser.add_argument("current_level", type=str, help="VINTF level of the current version (e.g. 9)") - parser.add_argument("next", + parser.add_argument("next_level", type=str, help="VINTF level of the next version (e.g. 10)") + parser.add_argument("current_letter", + type=str, + help="Letter of the API level of the current version (e.g. v)") + parser.add_argument("next_letter", + type=str, + help="Letter of the API level of the next version (e.g. w)") cmdline_args = parser.parse_args() Bump(cmdline_args).run() diff --git a/compatibility_matrices/compatibility_matrix.9.xml b/compatibility_matrices/compatibility_matrix.202404.xml similarity index 79% rename from compatibility_matrices/compatibility_matrix.9.xml rename to compatibility_matrices/compatibility_matrix.202404.xml index 328f1c8ef96403444b6bcbeadfc929d91e766c31..cf7de220c87d92cf55de7c141762680b58d5aa2b 100644 --- a/compatibility_matrices/compatibility_matrix.9.xml +++ b/compatibility_matrices/compatibility_matrix.202404.xml @@ -1,23 +1,5 @@ - - - android.hardware.audio - 6.0 - 7.0-1 - - IDevicesFactory - default - - - - android.hardware.audio.effect - 6.0 - 7.0 - - IEffectsFactory - default - - - + + android.hardware.audio.core 1-2 @@ -36,7 +18,7 @@ default - + android.hardware.audio.effect 1-2 @@ -44,7 +26,7 @@ default - + android.hardware.audio.sounddose 1-2 @@ -52,7 +34,7 @@ default - + android.hardware.authsecret 1 @@ -60,7 +42,7 @@ default - + android.hardware.automotive.audiocontrol 2-4 @@ -68,7 +50,7 @@ default - + android.hardware.automotive.can 1 @@ -76,7 +58,7 @@ default - + android.hardware.automotive.evs 1-2 @@ -84,7 +66,7 @@ [a-z]+/[0-9]+ - + android.hardware.macsec 1 @@ -92,7 +74,7 @@ default - + android.hardware.automotive.occupant_awareness 1 @@ -100,7 +82,7 @@ default - + android.hardware.automotive.vehicle 1-3 @@ -108,7 +90,7 @@ default - + android.hardware.automotive.remoteaccess 1-2 @@ -116,14 +98,14 @@ default - + android.hardware.automotive.ivn IIvnAndroidDevice default - + android.hardware.biometrics.face 3-4 @@ -132,7 +114,7 @@ virtual - + android.hardware.biometrics.fingerprint 3-4 @@ -141,14 +123,14 @@ virtual - + android.hardware.bluetooth IBluetoothHci default - + android.hardware.bluetooth.audio 3-4 @@ -156,7 +138,7 @@ default - + android.hardware.bluetooth.ranging 1 @@ -164,7 +146,7 @@ default - + android.hardware.bluetooth.finder 1 @@ -172,14 +154,22 @@ default - + + android.hardware.bluetooth.lmp_event + 1 + + IBluetoothLmpEvent + default + + + android.hardware.boot IBootControl default - + android.hardware.broadcastradio 1-2 @@ -187,7 +177,7 @@ .* - + android.hardware.camera.provider 1-3 @@ -195,14 +185,14 @@ [^/]+/[0-9]+ - + android.hardware.cas IMediaCasService default - + android.hardware.confirmationui 1 @@ -210,7 +200,7 @@ default - + android.hardware.contexthub 3 @@ -218,7 +208,7 @@ default - + android.hardware.drm 1 @@ -226,14 +216,14 @@ .* - + android.hardware.dumpstate IDumpstateDevice default - + android.hardware.gatekeeper 1 @@ -241,7 +231,7 @@ default - + android.hardware.gnss 2-4 @@ -249,7 +239,7 @@ default - + android.hardware.graphics.allocator 1-2 @@ -257,7 +247,7 @@ default - + android.hardware.graphics.composer3 3 @@ -265,7 +255,7 @@ default - + android.hardware.health 3 @@ -273,7 +263,7 @@ default - + android.hardware.health.storage 1 @@ -281,7 +271,7 @@ default - + android.hardware.identity 1-5 @@ -289,14 +279,14 @@ default - + android.hardware.net.nlinterceptor IInterceptor default - + android.hardware.oemlock 1 @@ -304,7 +294,7 @@ default - + android.hardware.ir 1 @@ -312,7 +302,7 @@ default - + android.hardware.input.processor 1 @@ -320,15 +310,16 @@ default - + android.hardware.security.secretkeeper 1 ISecretkeeper + default nonsecure - + android.hardware.security.keymint 1-3 @@ -337,7 +328,7 @@ strongbox - + android.hardware.security.keymint 1-3 @@ -346,7 +337,7 @@ strongbox - + android.hardware.light 2 @@ -354,26 +345,7 @@ default - - android.hardware.media.c2 - 1.0-2 - - IComponentStore - software - default[0-9]* - vendor[0-9]*_software - - - - android.hardware.media.c2 - 1.0 - - IConfigurable - default - software - - - + android.hardware.media.c2 1 @@ -382,7 +354,7 @@ vendor[0-9]*_software - + android.hardware.memtrack 1 @@ -390,7 +362,7 @@ default - + android.hardware.neuralnetworks 1-4 @@ -398,14 +370,14 @@ .* - + android.hardware.nfc INfc default - + android.hardware.power 5 @@ -413,7 +385,7 @@ default - + android.hardware.power.stats 2 @@ -421,7 +393,7 @@ default - + android.hardware.radio.config 3 @@ -429,7 +401,7 @@ default - + android.hardware.radio.data 3 @@ -439,7 +411,7 @@ slot3 - + android.hardware.radio.messaging 3 @@ -449,7 +421,7 @@ slot3 - + android.hardware.radio.modem 3 @@ -459,7 +431,7 @@ slot3 - + android.hardware.radio.network 3 @@ -469,7 +441,7 @@ slot3 - + android.hardware.radio.sim 3 @@ -479,7 +451,7 @@ slot3 - + android.hardware.radio.sap 1 @@ -489,7 +461,7 @@ slot3 - + android.hardware.radio.voice 3 @@ -499,7 +471,7 @@ slot3 - + android.hardware.radio.ims 2 @@ -509,7 +481,7 @@ slot3 - + android.hardware.radio.ims.media 2 @@ -517,7 +489,7 @@ default - + android.hardware.rebootescrow 1 @@ -525,7 +497,7 @@ default - + android.hardware.secure_element 1 @@ -534,7 +506,7 @@ SIM[1-9][0-9]* - + android.hardware.security.authgraph 1 @@ -542,7 +514,7 @@ nonsecure - + android.hardware.security.secureclock 1 @@ -550,7 +522,7 @@ default - + android.hardware.security.sharedsecret 1 @@ -559,7 +531,7 @@ strongbox - + android.hardware.sensors 2 @@ -567,7 +539,7 @@ default - + android.hardware.soundtrigger3 1-2 @@ -575,7 +547,7 @@ default - + android.hardware.tetheroffload 1 @@ -583,7 +555,7 @@ default - + android.hardware.thermal 2 @@ -591,7 +563,7 @@ default - + android.hardware.threadnetwork 1 @@ -599,7 +571,7 @@ chip[0-9]+ - + android.hardware.tv.hdmi.cec 1 @@ -607,7 +579,7 @@ default - + android.hardware.tv.hdmi.earc 1 @@ -615,7 +587,7 @@ default - + android.hardware.tv.hdmi.connection 1 @@ -623,7 +595,7 @@ default - + android.hardware.tv.tuner 1-2 @@ -631,7 +603,7 @@ default - + android.hardware.tv.input 1-2 @@ -639,7 +611,7 @@ default - + android.hardware.usb 1-3 @@ -647,14 +619,14 @@ default - + android.hardware.usb.gadget IUsbGadget default - + android.hardware.vibrator 1-2 @@ -662,7 +634,7 @@ default - + android.hardware.vibrator 1-2 @@ -670,7 +642,7 @@ default - + android.hardware.weaver 2 @@ -678,7 +650,7 @@ default - + android.hardware.wifi 1-2 @@ -686,7 +658,7 @@ default - + android.hardware.uwb 1 @@ -694,7 +666,7 @@ default - + android.hardware.wifi.hostapd 1-2 @@ -702,7 +674,7 @@ default - + android.hardware.wifi.supplicant 2-3 @@ -711,7 +683,7 @@ - + mapper 5.0 diff --git a/compatibility_matrices/compatibility_matrix.202504.xml b/compatibility_matrices/compatibility_matrix.202504.xml new file mode 100644 index 0000000000000000000000000000000000000000..62756bdc318f86afea2bc97f532c6fec6f78f2de --- /dev/null +++ b/compatibility_matrices/compatibility_matrix.202504.xml @@ -0,0 +1,693 @@ + + + android.hardware.audio.core + 1-2 + + IModule + default + a2dp + bluetooth + hearing_aid + msd + r_submix + stub + usb + + + IConfig + default + + + + android.hardware.audio.effect + 1-2 + + IFactory + default + + + + android.hardware.audio.sounddose + 1-2 + + ISoundDoseFactory + default + + + + android.hardware.authsecret + 1 + + IAuthSecret + default + + + + android.hardware.automotive.audiocontrol + 2-4 + + IAudioControl + default + + + + android.hardware.automotive.can + 1 + + ICanController + default + + + + android.hardware.automotive.evs + 1-2 + + IEvsEnumerator + [a-z]+/[0-9]+ + + + + android.hardware.macsec + 1 + + IMacsecPskPlugin + default + + + + android.hardware.automotive.occupant_awareness + 1 + + IOccupantAwareness + default + + + + android.hardware.automotive.vehicle + 1-3 + + IVehicle + default + + + + android.hardware.automotive.remoteaccess + 1-2 + + IRemoteAccess + default + + + + android.hardware.automotive.ivn + + IIvnAndroidDevice + default + + + + android.hardware.biometrics.face + 3-4 + + IFace + default + virtual + + + + android.hardware.biometrics.fingerprint + 3-4 + + IFingerprint + default + virtual + + + + android.hardware.bluetooth + + IBluetoothHci + default + + + + android.hardware.bluetooth.audio + 3-4 + + IBluetoothAudioProviderFactory + default + + + + android.hardware.bluetooth.ranging + 1 + + IBluetoothChannelSounding + default + + + + android.hardware.bluetooth.finder + 1 + + IBluetoothFinder + default + + + + android.hardware.bluetooth.lmp_event + 1 + + IBluetoothLmpEvent + default + + + + android.hardware.boot + + IBootControl + default + + + + android.hardware.broadcastradio + 1-2 + + IBroadcastRadio + .* + + + + android.hardware.camera.provider + 1-3 + + ICameraProvider + [^/]+/[0-9]+ + + + + android.hardware.cas + + IMediaCasService + default + + + + android.hardware.confirmationui + 1 + + IConfirmationUI + default + + + + android.hardware.contexthub + 3 + + IContextHub + default + + + + android.hardware.drm + 1 + + IDrmFactory + .* + + + + android.hardware.dumpstate + + IDumpstateDevice + default + + + + android.hardware.gatekeeper + 1 + + IGatekeeper + default + + + + android.hardware.gnss + 2-4 + + IGnss + default + + + + android.hardware.graphics.allocator + 1-2 + + IAllocator + default + + + + android.hardware.graphics.composer3 + 3 + + IComposer + default + + + + android.hardware.health + 3 + + IHealth + default + + + + android.hardware.health.storage + 1 + + IStorage + default + + + + android.hardware.identity + 1-5 + + IIdentityCredentialStore + default + + + + android.hardware.net.nlinterceptor + + IInterceptor + default + + + + android.hardware.oemlock + 1 + + IOemLock + default + + + + android.hardware.ir + 1 + + IConsumerIr + default + + + + android.hardware.input.processor + 1 + + IInputProcessor + default + + + + android.hardware.security.secretkeeper + 1 + + ISecretkeeper + default + nonsecure + + + + android.hardware.security.keymint + 1-3 + + IKeyMintDevice + default + strongbox + + + + android.hardware.security.keymint + 1-3 + + IRemotelyProvisionedComponent + default + strongbox + + + + android.hardware.light + 2 + + ILights + default + + + + android.hardware.media.c2 + 1 + + IComponentStore + default[0-9]* + vendor[0-9]*_software + + + + android.hardware.memtrack + 1 + + IMemtrack + default + + + + android.hardware.neuralnetworks + 1-4 + + IDevice + .* + + + + android.hardware.nfc + + INfc + default + + + + android.hardware.power + 5 + + IPower + default + + + + android.hardware.power.stats + 2 + + IPowerStats + default + + + + android.hardware.radio.config + 3 + + IRadioConfig + default + + + + android.hardware.radio.data + 3 + + IRadioData + slot1 + slot2 + slot3 + + + + android.hardware.radio.messaging + 3 + + IRadioMessaging + slot1 + slot2 + slot3 + + + + android.hardware.radio.modem + 3 + + IRadioModem + slot1 + slot2 + slot3 + + + + android.hardware.radio.network + 3 + + IRadioNetwork + slot1 + slot2 + slot3 + + + + android.hardware.radio.sim + 3 + + IRadioSim + slot1 + slot2 + slot3 + + + + android.hardware.radio.sap + 1 + + ISap + slot1 + slot2 + slot3 + + + + android.hardware.radio.voice + 3 + + IRadioVoice + slot1 + slot2 + slot3 + + + + android.hardware.radio.ims + 2 + + IRadioIms + slot1 + slot2 + slot3 + + + + android.hardware.radio.ims.media + 2 + + IImsMedia + default + + + + android.hardware.rebootescrow + 1 + + IRebootEscrow + default + + + + android.hardware.secure_element + 1 + + ISecureElement + eSE[1-9][0-9]* + SIM[1-9][0-9]* + + + + android.hardware.security.authgraph + 1 + + IAuthGraphKeyExchange + nonsecure + + + + android.hardware.security.secureclock + 1 + + ISecureClock + default + + + + android.hardware.security.sharedsecret + 1 + + ISharedSecret + default + strongbox + + + + android.hardware.sensors + 2 + + ISensors + default + + + + android.hardware.soundtrigger3 + 1-2 + + ISoundTriggerHw + default + + + + android.hardware.tetheroffload + 1 + + IOffload + default + + + + android.hardware.thermal + 2 + + IThermal + default + + + + android.hardware.threadnetwork + 1 + + IThreadChip + chip[0-9]+ + + + + android.hardware.tv.hdmi.cec + 1 + + IHdmiCec + default + + + + android.hardware.tv.hdmi.earc + 1 + + IEArc + default + + + + android.hardware.tv.hdmi.connection + 1 + + IHdmiConnection + default + + + + android.hardware.tv.tuner + 1-2 + + ITuner + default + + + + android.hardware.tv.input + 1-2 + + ITvInput + default + + + + android.hardware.usb + 1-3 + + IUsb + default + + + + android.hardware.usb.gadget + + IUsbGadget + default + + + + android.hardware.vibrator + 1-2 + + IVibrator + default + + + + android.hardware.vibrator + 1-2 + + IVibratorManager + default + + + + android.hardware.weaver + 2 + + IWeaver + default + + + + android.hardware.wifi + 1-2 + + IWifi + default + + + + android.hardware.uwb + 1 + + IUwb + default + + + + android.hardware.wifi.hostapd + 1-2 + + IHostapd + default + + + + android.hardware.wifi.supplicant + 2-3 + + ISupplicant + default + + + + + mapper + 5.0 + + .* + + + diff --git a/compatibility_matrices/compatibility_matrix.4.xml b/compatibility_matrices/compatibility_matrix.4.xml deleted file mode 100644 index bb7637ae2bb8530f3bcd969c7d4cf074b697a4be..0000000000000000000000000000000000000000 --- a/compatibility_matrices/compatibility_matrix.4.xml +++ /dev/null @@ -1,525 +0,0 @@ - - - android.hardware.atrace - 1.0 - - IAtraceDevice - default - - - - android.hardware.audio - 5.0 - - IDevicesFactory - default - - - - android.hardware.audio.effect - 5.0 - - IEffectsFactory - default - - - - android.hardware.authsecret - 1.0 - - IAuthSecret - default - - - - android.hardware.automotive.audiocontrol - 1.0 - - IAudioControl - default - - - - android.hardware.automotive.evs - 1.0 - - IEvsEnumerator - default - - - - android.hardware.automotive.vehicle - 2.0 - - IVehicle - default - - - - android.hardware.biometrics.face - 1.0 - - IBiometricsFace - default - - - - android.hardware.biometrics.fingerprint - 2.1 - - IBiometricsFingerprint - default - - - - android.hardware.bluetooth - 1.0 - - IBluetoothHci - default - - - - android.hardware.bluetooth.audio - 2.0 - - IBluetoothAudioProvidersFactory - default - - - - android.hardware.boot - 1.0 - - IBootControl - default - - - - android.hardware.broadcastradio - 1.0-1 - - IBroadcastRadioFactory - default - - - - android.hardware.broadcastradio - 2.0 - - IBroadcastRadio - .* - - - - android.hardware.camera.provider - 2.4-5 - - ICameraProvider - [^/]+/[0-9]+ - - - - android.hardware.cas - 1.1 - - IMediaCasService - default - - - - android.hardware.configstore - 1.1 - - ISurfaceFlingerConfigs - default - - - - android.hardware.confirmationui - 1.0 - - IConfirmationUI - default - - - - android.hardware.contexthub - 1.0 - - IContexthub - default - - - - android.hardware.drm - 1.0-2 - - ICryptoFactory - .* - - - IDrmFactory - .* - - - - android.hardware.dumpstate - 1.0 - - IDumpstateDevice - default - - - - android.hardware.gatekeeper - 1.0 - - IGatekeeper - default - - - - android.hardware.gnss - 2.0 - - IGnss - default - - - - - android.hardware.graphics.allocator - 2.0 - 3.0 - - IAllocator - default - - - - android.hardware.graphics.composer - 2.1-3 - - IComposer - default - - - - android.hardware.graphics.mapper - 2.1 - 3.0 - - IMapper - default - - - - - android.hardware.health - 2.0 - - IHealth - default - - - - android.hardware.health.storage - 1.0 - - IStorage - default - - - - android.hardware.ir - 1.0 - - IConsumerIr - default - - - - android.hardware.input.classifier - 1.0 - - IInputClassifier - default - - - - android.hardware.keymaster - 3.0 - 4.0 - - IKeymasterDevice - default - - - - android.hardware.keymaster - 4.0 - - IKeymasterDevice - strongbox - - - - android.hardware.light - 2.0 - - ILight - default - - - - android.hardware.media.c2 - 1.0 - - IComponentStore - software - default[0-9]* - vendor[0-9]*_software - - - IConfigurable - default - software - - - - android.hardware.media.omx - 1.0 - - IOmx - default - - - IOmxStore - default - - - - android.hardware.memtrack - 1.0 - - IMemtrack - default - - - - android.hardware.neuralnetworks - 1.0-2 - - IDevice - .* - - - - android.hardware.nfc - 1.2 - - INfc - default - - - - android.hardware.oemlock - 1.0 - - IOemLock - default - - - - android.hardware.power - 1.0-3 - - IPower - default - - - - android.hardware.power.stats - 1.0 - - IPowerStats - default - - - - android.hardware.radio - 1.4 - - IRadio - slot1 - slot2 - slot3 - - - - android.hardware.radio - 1.2 - - ISap - slot1 - slot2 - - - - android.hardware.radio.config - - 1.1 - - IRadioConfig - default - - - - android.hardware.renderscript - 1.0 - - IDevice - default - - - - android.hardware.secure_element - 1.0 - - ISecureElement - eSE[1-9][0-9]* - SIM[1-9][0-9]* - - - - android.hardware.sensors - 1.0 - 2.0 - - ISensors - default - - - - android.hardware.soundtrigger - 2.0-2 - - ISoundTriggerHw - default - - - - android.hardware.tetheroffload.config - 1.0 - - IOffloadConfig - default - - - - android.hardware.tetheroffload.control - 1.0 - - IOffloadControl - default - - - - android.hardware.thermal - 2.0 - - IThermal - default - - - - android.hardware.tv.cec - 1.0 - - IHdmiCec - default - - - - android.hardware.tv.input - 1.0 - - ITvInput - default - - - - android.hardware.usb - 1.0-2 - - IUsb - default - - - - android.hardware.usb.gadget - 1.0 - - IUsbGadget - default - - - - android.hardware.vibrator - 1.0-3 - - IVibrator - default - - - - android.hardware.vr - 1.0 - - IVr - default - - - - android.hardware.weaver - 1.0 - - IWeaver - default - - - - android.hardware.wifi - 1.0-3 - - IWifi - default - - - - android.hardware.wifi.hostapd - 1.0-1 - - IHostapd - default - - - - android.hardware.wifi.supplicant - 1.0-2 - - ISupplicant - default - - - diff --git a/compatibility_matrices/compatibility_matrix.5.xml b/compatibility_matrices/compatibility_matrix.5.xml index dad15589fd2c950676b018f1baf980d96b27801f..1cf98b0f3ca9dbe6f394b2a310a215626d315eb4 100644 --- a/compatibility_matrices/compatibility_matrix.5.xml +++ b/compatibility_matrices/compatibility_matrix.5.xml @@ -1,5 +1,5 @@ - + android.hardware.atrace 1.0 @@ -7,7 +7,7 @@ default - + android.hardware.audio 6.0 @@ -15,7 +15,7 @@ default - + android.hardware.audio.effect 6.0 @@ -23,7 +23,7 @@ default - + android.hardware.authsecret 1.0 @@ -31,7 +31,7 @@ default - + android.hardware.automotive.audiocontrol 1.0 2.0 @@ -40,7 +40,7 @@ default - + android.hardware.automotive.can 1.0 @@ -52,7 +52,7 @@ .* - + android.hardware.automotive.evs 1.0-1 @@ -61,14 +61,14 @@ [a-z]+/[0-9]+ - + android.hardware.automotive.occupant_awareness IOccupantAwareness default - + android.hardware.automotive.sv 1.0 @@ -76,7 +76,7 @@ default - + android.hardware.automotive.vehicle 2.0 @@ -84,7 +84,7 @@ default - + android.hardware.biometrics.face 1.0 @@ -92,7 +92,7 @@ default - + android.hardware.biometrics.fingerprint 2.1-2 @@ -100,7 +100,7 @@ default - + android.hardware.bluetooth 1.0-1 @@ -108,7 +108,7 @@ default - + android.hardware.bluetooth.audio 2.0 @@ -116,7 +116,7 @@ default - + android.hardware.boot 1.1 @@ -124,7 +124,7 @@ default - + android.hardware.broadcastradio 1.0-1 @@ -132,7 +132,7 @@ default - + android.hardware.broadcastradio 2.0 @@ -140,7 +140,7 @@ .* - + android.hardware.camera.provider 2.4-6 @@ -148,7 +148,7 @@ [^/]+/[0-9]+ - + android.hardware.cas 1.1-2 @@ -156,7 +156,7 @@ default - + android.hardware.confirmationui 1.0 @@ -164,7 +164,7 @@ default - + android.hardware.contexthub 1.0-1 @@ -172,7 +172,7 @@ default - + android.hardware.drm 1.3 @@ -184,7 +184,7 @@ .* - + android.hardware.dumpstate 1.1 @@ -192,7 +192,7 @@ default - + android.hardware.gatekeeper 1.0 @@ -200,7 +200,7 @@ default - + android.hardware.gnss 2.0-1 @@ -211,7 +211,7 @@ - + android.hardware.graphics.allocator 2.0 @@ -222,7 +222,7 @@ default - + android.hardware.graphics.composer 2.1-4 @@ -230,7 +230,7 @@ default - + android.hardware.graphics.mapper 2.1 @@ -244,7 +244,7 @@ - + android.hardware.health 2.1 @@ -252,7 +252,7 @@ default - + android.hardware.health.storage 1.0 @@ -260,7 +260,7 @@ default - + android.hardware.identity - + android.hardware.graphics.allocator 2.0 @@ -252,7 +252,7 @@ default - + android.hardware.graphics.composer 2.1-4 @@ -260,7 +260,7 @@ default - + android.hardware.graphics.mapper 2.1 @@ -274,7 +274,7 @@ - + android.hardware.health 2.1 @@ -282,7 +282,7 @@ default - + android.hardware.health.storage 1 @@ -290,7 +290,7 @@ default - + android.hardware.identity 1-3 @@ -298,7 +298,7 @@ default - + android.hardware.oemlock 1 @@ -306,7 +306,7 @@ default - + android.hardware.ir 1.0 @@ -314,7 +314,7 @@ default - + android.hardware.input.classifier 1.0 @@ -322,7 +322,7 @@ default - + android.hardware.keymaster 3.0 4.0-1 @@ -331,7 +331,7 @@ default - + android.hardware.keymaster 4.0-1 @@ -339,7 +339,7 @@ strongbox - + android.hardware.security.keymint 1 @@ -348,14 +348,14 @@ strongbox - + android.hardware.security.keymint IRemotelyProvisionedComponent default - + android.hardware.light 1 @@ -363,7 +363,7 @@ default - + android.hardware.media.c2 1.0-2 @@ -373,7 +373,7 @@ vendor[0-9]*_software - + android.hardware.media.c2 1.0 @@ -382,7 +382,7 @@ software - + android.hardware.media.omx 1.0 @@ -394,7 +394,7 @@ default - + android.hardware.memtrack 1 @@ -402,7 +402,7 @@ default - + android.hardware.neuralnetworks 1.0-3 @@ -410,14 +410,14 @@ .* - + android.hardware.neuralnetworks IDevice .* - + android.hardware.nfc 1.2 @@ -425,7 +425,7 @@ default - + android.hardware.oemlock 1.0 @@ -433,7 +433,7 @@ default - + android.hardware.power 1-2 @@ -441,14 +441,14 @@ default - + android.hardware.power.stats IPowerStats default - + android.hardware.radio 1.6 @@ -458,7 +458,7 @@ slot3 - + android.hardware.radio 1.2 @@ -467,7 +467,7 @@ slot2 - + android.hardware.radio.config 2.0 @@ -274,7 +274,7 @@ default - + android.hardware.graphics.allocator 1 @@ -285,7 +285,7 @@ - + android.hardware.graphics.composer 2.1-4 @@ -293,7 +293,7 @@ default - + android.hardware.graphics.composer3 1 @@ -301,7 +301,7 @@ default - + android.hardware.graphics.mapper 2.1 @@ -312,7 +312,7 @@ default - + android.hardware.health 1 @@ -320,7 +320,7 @@ default - + android.hardware.health.storage 1 @@ -328,7 +328,7 @@ default - + android.hardware.identity 1-4 @@ -336,14 +336,14 @@ default - + android.hardware.net.nlinterceptor IInterceptor default - + android.hardware.oemlock 1 @@ -351,7 +351,7 @@ default - + android.hardware.ir 1 @@ -359,7 +359,7 @@ default - + android.hardware.input.processor 1 @@ -367,7 +367,7 @@ default - + android.hardware.keymaster 3.0 4.0-1 @@ -376,7 +376,7 @@ default - + android.hardware.keymaster 4.0-1 @@ -384,7 +384,7 @@ strongbox - + android.hardware.security.keymint 1-2 @@ -393,7 +393,7 @@ strongbox - + android.hardware.security.keymint 1-2 @@ -402,7 +402,7 @@ strongbox - + android.hardware.light 1-2 @@ -410,7 +410,7 @@ default - + android.hardware.media.c2 1.0-2 @@ -420,7 +420,7 @@ vendor[0-9]*_software - + android.hardware.media.c2 1.0 @@ -429,7 +429,7 @@ software - + android.hardware.media.omx 1.0 @@ -441,7 +441,7 @@ default - + android.hardware.memtrack 1 @@ -449,7 +449,7 @@ default - + android.hardware.neuralnetworks 1.0-3 @@ -457,7 +457,7 @@ .* - + android.hardware.neuralnetworks 1-4 @@ -465,7 +465,7 @@ .* - + android.hardware.nfc 1.2 @@ -473,14 +473,14 @@ default - + android.hardware.nfc INfc default - + android.hardware.oemlock 1.0 @@ -488,7 +488,7 @@ default - + android.hardware.power 2-3 @@ -496,14 +496,14 @@ default - + android.hardware.power.stats IPowerStats default - + android.hardware.radio.config 1 @@ -511,7 +511,7 @@ default - + android.hardware.radio.data 1 @@ -521,7 +521,7 @@ slot3 - + android.hardware.radio.messaging 1 @@ -531,7 +531,7 @@ slot3 - + android.hardware.radio.modem 1 @@ -541,7 +541,7 @@ slot3 - + android.hardware.radio.network 1 @@ -551,7 +551,7 @@ slot3 - + android.hardware.radio.sim 1 @@ -561,7 +561,7 @@ slot3 - + android.hardware.radio.voice 1 @@ -571,7 +571,7 @@ slot3 - + android.hardware.radio 1.2 @@ -580,7 +580,7 @@ slot2 - + android.hardware.renderscript 1.0 @@ -588,7 +588,7 @@ default - + android.hardware.rebootescrow 1 @@ -596,7 +596,7 @@ default - + android.hardware.secure_element 1.0-2 @@ -605,7 +605,7 @@ SIM[1-9][0-9]* - + android.hardware.security.secureclock 1 @@ -613,7 +613,7 @@ default - + android.hardware.security.sharedsecret 1 @@ -622,14 +622,14 @@ strongbox - + android.hardware.sensors ISensors default - + android.hardware.sensors 1.0 2.0-1 @@ -638,7 +638,7 @@ default - + android.hardware.soundtrigger 2.3 @@ -646,7 +646,7 @@ default - + android.hardware.soundtrigger3 1 @@ -654,7 +654,7 @@ default - + android.hardware.tetheroffload.config 1.0 @@ -662,7 +662,7 @@ default - + android.hardware.tetheroffload.control 1.1 @@ -670,7 +670,7 @@ default - + android.hardware.thermal 2.0 @@ -678,7 +678,7 @@ default - + android.hardware.tv.cec 1.0-1 @@ -686,7 +686,7 @@ default - + android.hardware.tv.input 1.0 @@ -694,7 +694,7 @@ default - + android.hardware.tv.tuner 1.0-1 @@ -702,7 +702,7 @@ default - + android.hardware.tv.tuner 1 @@ -710,7 +710,7 @@ default - + android.hardware.usb 1.0-3 @@ -718,14 +718,14 @@ default - + android.hardware.usb IUsb default - + android.hardware.usb.gadget 1.0-2 @@ -733,7 +733,7 @@ default - + android.hardware.vibrator 1-2 @@ -741,7 +741,7 @@ default - + android.hardware.vibrator 1-2 @@ -749,7 +749,7 @@ default - + android.hardware.weaver 1.0 @@ -757,7 +757,7 @@ default - + android.hardware.weaver 1 @@ -765,7 +765,7 @@ default - + android.hardware.wifi 1.3-6 @@ -773,7 +773,7 @@ default - + android.hardware.uwb 1 @@ -781,7 +781,7 @@ default - + android.hardware.wifi.hostapd 1 @@ -789,7 +789,7 @@ default - + android.hardware.wifi.supplicant ISupplicant diff --git a/compatibility_matrices/compatibility_matrix.8.xml b/compatibility_matrices/compatibility_matrix.8.xml index 777eb84e2cc52e61be3a3293c584b2043fd6eda4..7054bfa240198b49038415d53e9d6d2ac751ff69 100644 --- a/compatibility_matrices/compatibility_matrix.8.xml +++ b/compatibility_matrices/compatibility_matrix.8.xml @@ -1,5 +1,5 @@ - + android.hardware.audio 6.0 7.0-1 @@ -8,7 +8,7 @@ default - + android.hardware.audio.effect 6.0 7.0 @@ -17,7 +17,7 @@ default - + android.hardware.audio.core 1 @@ -36,7 +36,7 @@ default - + android.hardware.audio.effect 1 @@ -44,7 +44,7 @@ default - + android.hardware.audio.sounddose 1 @@ -52,7 +52,7 @@ default - + android.hardware.authsecret 1 @@ -60,7 +60,7 @@ default - + android.hardware.automotive.audiocontrol 2-3 @@ -68,7 +68,7 @@ default - + android.hardware.automotive.can 1 @@ -76,7 +76,7 @@ default - + android.hardware.automotive.evs 1-2 @@ -84,7 +84,7 @@ [a-z]+/[0-9]+ - + android.hardware.automotive.occupant_awareness 1 @@ -92,7 +92,7 @@ default - + android.hardware.automotive.vehicle 1-2 @@ -100,21 +100,21 @@ default - + android.hardware.automotive.remoteaccess IRemoteAccess default - + android.hardware.automotive.ivn IIvnAndroidDevice default - + android.hardware.biometrics.face 3-4 @@ -123,7 +123,7 @@ virtual - + android.hardware.biometrics.fingerprint 3 @@ -132,7 +132,7 @@ virtual - + android.hardware.bluetooth 1.0-1 @@ -140,14 +140,14 @@ default - + android.hardware.bluetooth IBluetoothHci default - + android.hardware.bluetooth.audio 3 @@ -155,21 +155,21 @@ default - + android.hardware.boot IBootControl default - + android.hardware.broadcastradio IBroadcastRadio .* - + android.hardware.camera.provider 1-2 @@ -177,14 +177,14 @@ [^/]+/[0-9]+ - + android.hardware.cas IMediaCasService default - + android.hardware.confirmationui 1 @@ -192,7 +192,7 @@ default - + android.hardware.contexthub 2 @@ -200,7 +200,7 @@ default - + android.hardware.drm 1 @@ -208,14 +208,14 @@ .* - + android.hardware.dumpstate IDumpstateDevice default - + android.hardware.gatekeeper 1 @@ -223,7 +223,7 @@ default - + android.hardware.gnss 2-3 @@ -231,7 +231,7 @@ default - + android.hardware.graphics.allocator 1-2 @@ -239,7 +239,7 @@ default - + android.hardware.graphics.composer3 2 @@ -248,7 +248,7 @@ - + android.hardware.graphics.mapper 2.1 @@ -259,7 +259,7 @@ default - + android.hardware.health 1-2 @@ -267,7 +267,7 @@ default - + android.hardware.health.storage 1 @@ -275,7 +275,7 @@ default - + android.hardware.identity 1-5 @@ -283,14 +283,14 @@ default - + android.hardware.net.nlinterceptor IInterceptor default - + android.hardware.oemlock 1 @@ -298,7 +298,7 @@ default - + android.hardware.ir 1 @@ -306,7 +306,7 @@ default - + android.hardware.input.processor 1 @@ -314,7 +314,7 @@ default - + android.hardware.security.keymint 1-3 @@ -323,7 +323,7 @@ strongbox - + android.hardware.security.keymint 1-3 @@ -333,7 +333,7 @@ widevine - + android.hardware.light 2 @@ -341,7 +341,7 @@ default - + android.hardware.media.c2 1.0-2 @@ -351,7 +351,7 @@ vendor[0-9]*_software - + android.hardware.media.c2 1.0 @@ -360,7 +360,7 @@ software - + android.hardware.media.omx 1.0 @@ -372,7 +372,7 @@ default - + android.hardware.memtrack 1 @@ -380,7 +380,7 @@ default - + android.hardware.neuralnetworks 1-4 @@ -388,14 +388,14 @@ .* - + android.hardware.nfc INfc default - + android.hardware.power 4 @@ -403,7 +403,7 @@ default - + android.hardware.power.stats 2 @@ -411,7 +411,7 @@ default - + android.hardware.radio.config 2 @@ -419,7 +419,7 @@ default - + android.hardware.radio.data 2 @@ -429,7 +429,7 @@ slot3 - + android.hardware.radio.messaging 2 @@ -439,7 +439,7 @@ slot3 - + android.hardware.radio.modem 2 @@ -449,7 +449,7 @@ slot3 - + android.hardware.radio.network 2 @@ -459,7 +459,7 @@ slot3 - + android.hardware.radio.sim 2 @@ -469,7 +469,7 @@ slot3 - + android.hardware.radio.sap 1 @@ -479,7 +479,7 @@ slot3 - + android.hardware.radio.voice 2 @@ -489,7 +489,7 @@ slot3 - + android.hardware.radio.ims 1 @@ -499,7 +499,7 @@ slot3 - + android.hardware.radio.ims.media 1 @@ -507,7 +507,7 @@ default - + android.hardware.renderscript 1.0 @@ -515,7 +515,7 @@ default - + android.hardware.rebootescrow 1 @@ -523,7 +523,7 @@ default - + android.hardware.secure_element 1 @@ -532,7 +532,7 @@ SIM[1-9][0-9]* - + android.hardware.security.secureclock 1 @@ -540,7 +540,7 @@ default - + android.hardware.security.sharedsecret 1 @@ -549,7 +549,7 @@ strongbox - + android.hardware.sensors 2 @@ -557,7 +557,7 @@ default - + android.hardware.soundtrigger 2.3 @@ -565,7 +565,7 @@ default - + android.hardware.soundtrigger3 1 @@ -573,7 +573,7 @@ default - + android.hardware.tetheroffload.config 1.0 @@ -581,7 +581,7 @@ default - + android.hardware.tetheroffload.control 1.1 @@ -589,7 +589,7 @@ default - + android.hardware.tetheroffload 1 @@ -597,7 +597,7 @@ default - + android.hardware.thermal 1 @@ -605,7 +605,7 @@ default - + android.hardware.tv.hdmi.cec 1 @@ -613,7 +613,7 @@ default - + android.hardware.tv.hdmi.earc 1 @@ -621,7 +621,7 @@ default - + android.hardware.tv.hdmi.connection 1 @@ -629,7 +629,7 @@ default - + android.hardware.tv.tuner 1-2 @@ -637,7 +637,7 @@ default - + android.hardware.tv.input 1 @@ -645,7 +645,7 @@ default - + android.hardware.usb 1-2 @@ -653,14 +653,14 @@ default - + android.hardware.usb.gadget IUsbGadget default - + android.hardware.vibrator 1-2 @@ -668,7 +668,7 @@ default - + android.hardware.vibrator 1-2 @@ -676,7 +676,7 @@ default - + android.hardware.weaver 2 @@ -684,7 +684,7 @@ default - + android.hardware.wifi 1 @@ -692,7 +692,7 @@ default - + android.hardware.uwb 1 @@ -700,7 +700,7 @@ default - + android.hardware.wifi.hostapd 1 @@ -708,7 +708,7 @@ default - + android.hardware.wifi.supplicant 2 @@ -717,7 +717,7 @@ - + mapper 5.0 diff --git a/compatibility_matrices/exclude/fcm_exclude.cpp b/compatibility_matrices/exclude/fcm_exclude.cpp index 46f0e03098ea86bb2a2eb69f8da87e008f7feb23..08ef49b4a9e1c7e9012e4b846d6f1abf188f11e2 100644 --- a/compatibility_matrices/exclude/fcm_exclude.cpp +++ b/compatibility_matrices/exclude/fcm_exclude.cpp @@ -84,6 +84,26 @@ bool ShouldCheckMissingHidlHalsInFcm(const std::string& packageAndVersion) { "android.hardware.thermal@1.0", "android.hardware.thermal@1.1", "android.hardware.wifi.offload@1.0", + + // b/279809679 for HALS deprecated in Q + "android.hardware.audio.effect@5.0", + "android.hardware.audio@5.0", + "android.hardware.boot@1.0", + "android.hardware.configstore@1.1", + "android.hardware.drm@1.0", + "android.hardware.drm@1.1", + "android.hardware.drm@1.2", + "android.hardware.dumpstate@1.0", + "android.hardware.health@2.0", + "android.hardware.light@2.0", + "android.hardware.power@1.0", + "android.hardware.power@1.1", + "android.hardware.power@1.2", + "android.hardware.power@1.3", + "android.hardware.vibrator@1.0", + "android.hardware.vibrator@1.1", + "android.hardware.vibrator@1.2", + "android.hardware.vibrator@1.3", }; auto package_has_prefix = [&](const std::string& prefix) { diff --git a/contexthub/OWNERS b/contexthub/OWNERS index d5cfc2edb6fa87685482a8fde11534b15cbda269..ee25833d93feca0dac1c71dfdd674c9b0c718957 100644 --- a/contexthub/OWNERS +++ b/contexthub/OWNERS @@ -1,4 +1,3 @@ # Bug component: 156070 arthuri@google.com bduddie@google.com -stange@google.com diff --git a/contexthub/aidl/Android.bp b/contexthub/aidl/Android.bp index cf10529ba1fa4abeb1db9dc5415b636ee19e1fde..202813c610fe055d8b3e91bc9249e646734d4e98 100644 --- a/contexthub/aidl/Android.bp +++ b/contexthub/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_context_hub", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -47,8 +48,12 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, ], - frozen: false, + frozen: true, } diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/.hash b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..bc4df3abd58eb3dbcb87e38bc9ded7d87c603642 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/.hash @@ -0,0 +1 @@ +03f1982c8e20e58494a4ff8c9736b1c257dfeb6c diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/AsyncEventType.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/AsyncEventType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8e0ff89c120ef82b4a00c7128ae1b395a96a6845 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/AsyncEventType.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@Backing(type="int") @VintfStability +enum AsyncEventType { + RESTARTED = 1, +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubInfo.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c99169eb6f24f5da6ed6004b5fb777990601e81d --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubInfo.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable ContextHubInfo { + String name; + String vendor; + String toolchain; + int id; + float peakMips; + int maxSupportedMessageLengthBytes; + long chrePlatformId; + byte chreApiMajorVersion; + byte chreApiMinorVersion; + char chrePatchVersion; + String[] supportedPermissions; + boolean supportsReliableMessages; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubMessage.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubMessage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a6951a8f16712e55470421672f2995afe22d4eef --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ContextHubMessage.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable ContextHubMessage { + long nanoappId; + char hostEndPoint; + int messageType; + byte[] messageBody; + String[] permissions; + boolean isReliable; + int messageSequenceNumber; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ErrorCode.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ErrorCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..892465835782fd74ce1462888ba643a455c3ec8e --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/ErrorCode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@Backing(type="byte") @VintfStability +enum ErrorCode { + OK = 0, + TRANSIENT_ERROR, + PERMANENT_ERROR, + PERMISSION_DENIED, + DESTINATION_NOT_FOUND, +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/HostEndpointInfo.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/HostEndpointInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dabdbb6648714197b47097c8bacfda7728f486ca --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/HostEndpointInfo.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable HostEndpointInfo { + char hostEndpointId; + android.hardware.contexthub.HostEndpointInfo.Type type; + @nullable String packageName; + @nullable String attributionTag; + @Backing(type="int") @VintfStability + enum Type { + FRAMEWORK = 1, + APP = 2, + NATIVE = 3, + } +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHub.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHub.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7341e0ec75b3198729919531e3c2d439cdf8dfac --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHub.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +interface IContextHub { + List getContextHubs(); + void loadNanoapp(in int contextHubId, in android.hardware.contexthub.NanoappBinary appBinary, in int transactionId); + void unloadNanoapp(in int contextHubId, in long appId, in int transactionId); + void disableNanoapp(in int contextHubId, in long appId, in int transactionId); + void enableNanoapp(in int contextHubId, in long appId, in int transactionId); + void onSettingChanged(in android.hardware.contexthub.Setting setting, in boolean enabled); + void queryNanoapps(in int contextHubId); + void registerCallback(in int contextHubId, in android.hardware.contexthub.IContextHubCallback cb); + void sendMessageToHub(in int contextHubId, in android.hardware.contexthub.ContextHubMessage message); + void onHostEndpointConnected(in android.hardware.contexthub.HostEndpointInfo hostEndpointInfo); + void onHostEndpointDisconnected(char hostEndpointId); + long[] getPreloadedNanoappIds(in int contextHubId); + void onNanSessionStateChanged(in android.hardware.contexthub.NanSessionStateUpdate update); + void setTestMode(in boolean enable); + void sendMessageDeliveryStatusToHub(in int contextHubId, in android.hardware.contexthub.MessageDeliveryStatus messageDeliveryStatus); + const int EX_CONTEXT_HUB_UNSPECIFIED = (-1) /* -1 */; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHubCallback.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHubCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..70f69c608bf33f7a016f8825a640f998c1a01152 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/IContextHubCallback.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +interface IContextHubCallback { + void handleNanoappInfo(in android.hardware.contexthub.NanoappInfo[] appInfo); + void handleContextHubMessage(in android.hardware.contexthub.ContextHubMessage msg, in String[] msgContentPerms); + void handleContextHubAsyncEvent(in android.hardware.contexthub.AsyncEventType evt); + void handleTransactionResult(in int transactionId, in boolean success); + void handleNanSessionRequest(in android.hardware.contexthub.NanSessionRequest request); + void handleMessageDeliveryStatus(in char hostEndpointId, in android.hardware.contexthub.MessageDeliveryStatus messageDeliveryStatus); + byte[16] getUuid(); + String getName(); + const int CONTEXTHUB_NAN_TRANSACTION_TIMEOUT_MS = 10000; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/MessageDeliveryStatus.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/MessageDeliveryStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..40dac13f1ca48314ca5b0280313020d08535fa95 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/MessageDeliveryStatus.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable MessageDeliveryStatus { + int messageSequenceNumber; + android.hardware.contexthub.ErrorCode errorCode; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionRequest.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d539707cccbb003ac4bc63401122c5a6636a765b --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionRequest.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable NanSessionRequest { + boolean enable; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionStateUpdate.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionStateUpdate.aidl new file mode 100644 index 0000000000000000000000000000000000000000..80771e236505f71a6e697aa1ac38ce11aa5b549d --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanSessionStateUpdate.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable NanSessionStateUpdate { + boolean state; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappBinary.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappBinary.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fdf38601a9a7e57eee6b4057b903ad8184d9d8c4 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappBinary.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable NanoappBinary { + long nanoappId; + int nanoappVersion; + int flags; + byte targetChreApiMajorVersion; + byte targetChreApiMinorVersion; + byte[] customBinary; + const int FLAG_SIGNED = (1 << 0) /* 1 */; + const int FLAG_ENCRYPTED = (1 << 1) /* 2 */; + const int FLAG_TCM_CAPABLE = (1 << 2) /* 4 */; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappInfo.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7175d7f329d4692c93f35e1be4ec0d3692788b5e --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable NanoappInfo { + long nanoappId; + int nanoappVersion; + boolean enabled; + String[] permissions; + android.hardware.contexthub.NanoappRpcService[] rpcServices; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappRpcService.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappRpcService.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a6a164419574870715d97022009958c89c707b41 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/NanoappRpcService.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@VintfStability +parcelable NanoappRpcService { + long id; + int version; +} diff --git a/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/Setting.aidl b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/Setting.aidl new file mode 100644 index 0000000000000000000000000000000000000000..aeb720b779ab685617bc95b33b21ca826a6d8ab0 --- /dev/null +++ b/contexthub/aidl/aidl_api/android.hardware.contexthub/3/android/hardware/contexthub/Setting.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.contexthub; +@Backing(type="byte") @VintfStability +enum Setting { + LOCATION = 1, + WIFI_MAIN, + WIFI_SCANNING, + AIRPLANE_MODE, + MICROPHONE, + BT_MAIN, + BT_SCANNING, +} diff --git a/contexthub/aidl/default/Android.bp b/contexthub/aidl/default/Android.bp index 03213bc1b1f621ec784e7493a18ab5287f9c2201..29607461018f8e63b6b087c76143f0269fb75ca7 100644 --- a/contexthub/aidl/default/Android.bp +++ b/contexthub/aidl/default/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_context_hub", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/contexthub/aidl/vts/Android.bp b/contexthub/aidl/vts/Android.bp index b166bafe26280c875c85225095897df94bc1e890..62a319ec6bacb86c52d482e942f759d8593b2dcf 100644 --- a/contexthub/aidl/vts/Android.bp +++ b/contexthub/aidl/vts/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_context_hub", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/contexthub/aidl/vts/VtsAidlHalContextHubTargetTest.cpp b/contexthub/aidl/vts/VtsAidlHalContextHubTargetTest.cpp index fd55b80fde823e5ddef8b4f54975eb58945b1587..fa427a56a926510f56ffcbd70f8b97211e4c09f5 100644 --- a/contexthub/aidl/vts/VtsAidlHalContextHubTargetTest.cpp +++ b/contexthub/aidl/vts/VtsAidlHalContextHubTargetTest.cpp @@ -421,7 +421,7 @@ std::vector> generateContextHubMapping() { return tuples; } -TEST_P(ContextHubAidl, TestHostConnection) { +TEST_P(ContextHubTransactionTest, TestHostConnection) { constexpr char16_t kHostEndpointId = 1; HostEndpointInfo hostEndpointInfo; hostEndpointInfo.type = HostEndpointInfo::Type::NATIVE; @@ -431,13 +431,13 @@ TEST_P(ContextHubAidl, TestHostConnection) { ASSERT_TRUE(contextHub->onHostEndpointDisconnected(kHostEndpointId).isOk()); } -TEST_P(ContextHubAidl, TestInvalidHostConnection) { +TEST_P(ContextHubTransactionTest, TestInvalidHostConnection) { constexpr char16_t kHostEndpointId = 1; ASSERT_TRUE(contextHub->onHostEndpointDisconnected(kHostEndpointId).isOk()); } -TEST_P(ContextHubAidl, TestNanSessionStateChange) { +TEST_P(ContextHubTransactionTest, TestNanSessionStateChange) { NanSessionStateUpdate update; update.state = true; Status status = contextHub->onNanSessionStateChanged(update); diff --git a/gnss/1.1/vts/functional/gnss_hal_test.cpp b/gnss/1.1/vts/functional/gnss_hal_test.cpp index 6663a19abfdc258e10b6757fdba2b4a7381a51e5..5ec980699fecb9e114d2348ec500fc80efa8f588 100644 --- a/gnss/1.1/vts/functional/gnss_hal_test.cpp +++ b/gnss/1.1/vts/functional/gnss_hal_test.cpp @@ -168,8 +168,7 @@ bool GnssHalTest::IsGnssHalVersion_1_1() const { manager->listManifestByInterface( "android.hardware.gnss@1.1::IGnss", [&hasGnssHalVersion_1_1](const hidl_vec& registered) { - ASSERT_EQ(1, registered.size()); - hasGnssHalVersion_1_1 = true; + hasGnssHalVersion_1_1 = registered.size() != 0; }); bool hasGnssHalVersion_2_0 = false; diff --git a/gnss/aidl/Android.bp b/gnss/aidl/Android.bp index 611c7e0683fa09e008a44a85cf10a1ee2b361d7a..47fc3af6d0c9bf174e1f652cdfdff4983fb792ef 100644 --- a/gnss/aidl/Android.bp +++ b/gnss/aidl/Android.bp @@ -50,8 +50,12 @@ aidl_interface { version: "3", imports: [], }, + { + version: "4", + imports: [], + }, ], - frozen: false, + frozen: true, } diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/.hash b/gnss/aidl/aidl_api/android.hardware.gnss/4/.hash new file mode 100644 index 0000000000000000000000000000000000000000..e5cdc1166aab03089aab51078333715b02e34728 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/.hash @@ -0,0 +1 @@ +3552d3a7d21e743a59aa62eb395be44dddc0797e diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/BlocklistedSource.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/BlocklistedSource.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ccb2b281db62be6a7602dc495d34ac850cc21a41 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/BlocklistedSource.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable BlocklistedSource { + android.hardware.gnss.GnssConstellationType constellation = android.hardware.gnss.GnssConstellationType.UNKNOWN; + int svid; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/CorrelationVector.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/CorrelationVector.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b9590036db999b62f8c9823f2b43d11f51da68dd --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/CorrelationVector.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable CorrelationVector { + double frequencyOffsetMps; + double samplingWidthM; + double samplingStartM; + int[] magnitude; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/ElapsedRealtime.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/ElapsedRealtime.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5d7f51e3423c8f0749b9c462972798974b0ced96 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/ElapsedRealtime.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable ElapsedRealtime { + int flags; + long timestampNs; + double timeUncertaintyNs; + const int HAS_TIMESTAMP_NS = (1 << 0) /* 1 */; + const int HAS_TIME_UNCERTAINTY_NS = (1 << 1) /* 2 */; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssClock.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssClock.aidl new file mode 100644 index 0000000000000000000000000000000000000000..63edd44a196f93a865fc4369cf32fda24efa43ba --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssClock.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable GnssClock { + int gnssClockFlags; + int leapSecond; + long timeNs; + double timeUncertaintyNs; + long fullBiasNs; + double biasNs; + double biasUncertaintyNs; + double driftNsps; + double driftUncertaintyNsps; + int hwClockDiscontinuityCount; + android.hardware.gnss.GnssSignalType referenceSignalTypeForIsb; + const int HAS_LEAP_SECOND = (1 << 0) /* 1 */; + const int HAS_TIME_UNCERTAINTY = (1 << 1) /* 2 */; + const int HAS_FULL_BIAS = (1 << 2) /* 4 */; + const int HAS_BIAS = (1 << 3) /* 8 */; + const int HAS_BIAS_UNCERTAINTY = (1 << 4) /* 16 */; + const int HAS_DRIFT = (1 << 5) /* 32 */; + const int HAS_DRIFT_UNCERTAINTY = (1 << 6) /* 64 */; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssConstellationType.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssConstellationType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fee2ef67c3650411860c25e58af7b6ec4ff1863a --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssConstellationType.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@Backing(type="int") @VintfStability +enum GnssConstellationType { + UNKNOWN = 0, + GPS = 1, + SBAS = 2, + GLONASS = 3, + QZSS = 4, + BEIDOU = 5, + GALILEO = 6, + IRNSS = 7, +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssData.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..54e3b2165eb39fde006c066c430e3f06d69e6629 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssData.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable GnssData { + android.hardware.gnss.GnssMeasurement[] measurements; + android.hardware.gnss.GnssClock clock; + android.hardware.gnss.ElapsedRealtime elapsedRealtime; + android.hardware.gnss.GnssData.GnssAgc[] gnssAgcs = {}; + boolean isFullTracking; + @VintfStability + parcelable GnssAgc { + double agcLevelDb; + android.hardware.gnss.GnssConstellationType constellation = android.hardware.gnss.GnssConstellationType.UNKNOWN; + long carrierFrequencyHz; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssLocation.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssLocation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e64d98a297652d3ec7d8e60adbe256207f7e15be --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssLocation.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable GnssLocation { + int gnssLocationFlags; + double latitudeDegrees; + double longitudeDegrees; + double altitudeMeters; + double speedMetersPerSec; + double bearingDegrees; + double horizontalAccuracyMeters; + double verticalAccuracyMeters; + double speedAccuracyMetersPerSecond; + double bearingAccuracyDegrees; + long timestampMillis; + android.hardware.gnss.ElapsedRealtime elapsedRealtime; + const int HAS_LAT_LONG = 0x0001; + const int HAS_ALTITUDE = 0x0002; + const int HAS_SPEED = 0x0004; + const int HAS_BEARING = 0x0008; + const int HAS_HORIZONTAL_ACCURACY = 0x0010; + const int HAS_VERTICAL_ACCURACY = 0x0020; + const int HAS_SPEED_ACCURACY = 0x0040; + const int HAS_BEARING_ACCURACY = 0x0080; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMeasurement.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMeasurement.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a2594af99a500581dbfba0f87e5c9ed77a6aa2c4 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMeasurement.aidl @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable GnssMeasurement { + int flags; + int svid; + android.hardware.gnss.GnssSignalType signalType; + double timeOffsetNs; + int state; + long receivedSvTimeInNs; + long receivedSvTimeUncertaintyInNs; + double antennaCN0DbHz; + double basebandCN0DbHz; + double pseudorangeRateMps; + double pseudorangeRateUncertaintyMps; + int accumulatedDeltaRangeState; + double accumulatedDeltaRangeM; + double accumulatedDeltaRangeUncertaintyM; + long carrierCycles; + double carrierPhase; + double carrierPhaseUncertainty; + android.hardware.gnss.GnssMultipathIndicator multipathIndicator = android.hardware.gnss.GnssMultipathIndicator.UNKNOWN; + double snrDb; + double agcLevelDb; + double fullInterSignalBiasNs; + double fullInterSignalBiasUncertaintyNs; + double satelliteInterSignalBiasNs; + double satelliteInterSignalBiasUncertaintyNs; + android.hardware.gnss.SatellitePvt satellitePvt; + android.hardware.gnss.CorrelationVector[] correlationVectors; + const int HAS_SNR = (1 << 0) /* 1 */; + const int HAS_CARRIER_FREQUENCY = (1 << 9) /* 512 */; + const int HAS_CARRIER_CYCLES = (1 << 10) /* 1024 */; + const int HAS_CARRIER_PHASE = (1 << 11) /* 2048 */; + const int HAS_CARRIER_PHASE_UNCERTAINTY = (1 << 12) /* 4096 */; + const int HAS_AUTOMATIC_GAIN_CONTROL = (1 << 13) /* 8192 */; + const int HAS_FULL_ISB = (1 << 16) /* 65536 */; + const int HAS_FULL_ISB_UNCERTAINTY = (1 << 17) /* 131072 */; + const int HAS_SATELLITE_ISB = (1 << 18) /* 262144 */; + const int HAS_SATELLITE_ISB_UNCERTAINTY = (1 << 19) /* 524288 */; + const int HAS_SATELLITE_PVT = (1 << 20) /* 1048576 */; + const int HAS_CORRELATION_VECTOR = (1 << 21) /* 2097152 */; + const int STATE_UNKNOWN = 0; + const int STATE_CODE_LOCK = (1 << 0) /* 1 */; + const int STATE_BIT_SYNC = (1 << 1) /* 2 */; + const int STATE_SUBFRAME_SYNC = (1 << 2) /* 4 */; + const int STATE_TOW_DECODED = (1 << 3) /* 8 */; + const int STATE_MSEC_AMBIGUOUS = (1 << 4) /* 16 */; + const int STATE_SYMBOL_SYNC = (1 << 5) /* 32 */; + const int STATE_GLO_STRING_SYNC = (1 << 6) /* 64 */; + const int STATE_GLO_TOD_DECODED = (1 << 7) /* 128 */; + const int STATE_BDS_D2_BIT_SYNC = (1 << 8) /* 256 */; + const int STATE_BDS_D2_SUBFRAME_SYNC = (1 << 9) /* 512 */; + const int STATE_GAL_E1BC_CODE_LOCK = (1 << 10) /* 1024 */; + const int STATE_GAL_E1C_2ND_CODE_LOCK = (1 << 11) /* 2048 */; + const int STATE_GAL_E1B_PAGE_SYNC = (1 << 12) /* 4096 */; + const int STATE_SBAS_SYNC = (1 << 13) /* 8192 */; + const int STATE_TOW_KNOWN = (1 << 14) /* 16384 */; + const int STATE_GLO_TOD_KNOWN = (1 << 15) /* 32768 */; + const int STATE_2ND_CODE_LOCK = (1 << 16) /* 65536 */; + const int ADR_STATE_UNKNOWN = 0; + const int ADR_STATE_VALID = (1 << 0) /* 1 */; + const int ADR_STATE_RESET = (1 << 1) /* 2 */; + const int ADR_STATE_CYCLE_SLIP = (1 << 2) /* 4 */; + const int ADR_STATE_HALF_CYCLE_RESOLVED = (1 << 3) /* 8 */; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMultipathIndicator.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMultipathIndicator.aidl new file mode 100644 index 0000000000000000000000000000000000000000..62ade9c3e8f2ee48abda16c86a61f8a1235634de --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssMultipathIndicator.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@Backing(type="int") @VintfStability +enum GnssMultipathIndicator { + UNKNOWN = 0, + PRESENT = 1, + NOT_PRESENT = 2, +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssPowerStats.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssPowerStats.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c4a9e6179e75aba3957807dea0d0ee841fc16deb --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssPowerStats.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable GnssPowerStats { + android.hardware.gnss.ElapsedRealtime elapsedRealtime; + double totalEnergyMilliJoule; + double singlebandTrackingModeEnergyMilliJoule; + double multibandTrackingModeEnergyMilliJoule; + double singlebandAcquisitionModeEnergyMilliJoule; + double multibandAcquisitionModeEnergyMilliJoule; + double[] otherModesEnergyMilliJoule; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssSignalType.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssSignalType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a17f933e76a01ac79b2c3b7538e0cf118793cfa6 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/GnssSignalType.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable GnssSignalType { + android.hardware.gnss.GnssConstellationType constellation = android.hardware.gnss.GnssConstellationType.UNKNOWN; + double carrierFrequencyHz; + @utf8InCpp String codeType; + const @utf8InCpp String CODE_TYPE_A = "A"; + const @utf8InCpp String CODE_TYPE_B = "B"; + const @utf8InCpp String CODE_TYPE_C = "C"; + const @utf8InCpp String CODE_TYPE_D = "D"; + const @utf8InCpp String CODE_TYPE_E = "E"; + const @utf8InCpp String CODE_TYPE_I = "I"; + const @utf8InCpp String CODE_TYPE_L = "L"; + const @utf8InCpp String CODE_TYPE_M = "M"; + const @utf8InCpp String CODE_TYPE_N = "N"; + const @utf8InCpp String CODE_TYPE_P = "P"; + const @utf8InCpp String CODE_TYPE_Q = "Q"; + const @utf8InCpp String CODE_TYPE_S = "S"; + const @utf8InCpp String CODE_TYPE_W = "W"; + const @utf8InCpp String CODE_TYPE_X = "X"; + const @utf8InCpp String CODE_TYPE_Y = "Y"; + const @utf8InCpp String CODE_TYPE_Z = "Z"; + const @utf8InCpp String CODE_TYPE_UNKNOWN = "UNKNOWN"; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnss.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnss.aidl new file mode 100644 index 0000000000000000000000000000000000000000..639539ad655c41f4e739ff17ce045a2dd72066b1 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnss.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IAGnss { + void setCallback(in android.hardware.gnss.IAGnssCallback callback); + void dataConnClosed(); + void dataConnFailed(); + void setServer(in android.hardware.gnss.IAGnssCallback.AGnssType type, in @utf8InCpp String hostname, in int port); + void dataConnOpen(in long networkHandle, in @utf8InCpp String apn, in android.hardware.gnss.IAGnss.ApnIpType apnIpType); + @Backing(type="int") @VintfStability + enum ApnIpType { + INVALID = 0, + IPV4 = 1, + IPV6 = 2, + IPV4V6 = 3, + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b2da8d9583f845ba916d85c5eda597f2f9b42030 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssCallback.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IAGnssCallback { + void agnssStatusCb(in android.hardware.gnss.IAGnssCallback.AGnssType type, in android.hardware.gnss.IAGnssCallback.AGnssStatusValue status); + @Backing(type="int") @VintfStability + enum AGnssType { + SUPL = 1, + C2K = 2, + SUPL_EIMS = 3, + SUPL_IMS = 4, + } + @Backing(type="int") @VintfStability + enum AGnssStatusValue { + REQUEST_AGNSS_DATA_CONN = 1, + RELEASE_AGNSS_DATA_CONN = 2, + AGNSS_DATA_CONNECTED = 3, + AGNSS_DATA_CONN_DONE = 4, + AGNSS_DATA_CONN_FAILED = 5, + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRil.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRil.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c8634ec2b0ab31ecf7790b83cbe246cbb5fcf7c7 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRil.aidl @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IAGnssRil { + void setCallback(in android.hardware.gnss.IAGnssRilCallback callback); + void setRefLocation(in android.hardware.gnss.IAGnssRil.AGnssRefLocation agnssReflocation); + void setSetId(in android.hardware.gnss.IAGnssRil.SetIdType type, in @utf8InCpp String setid); + void updateNetworkState(in android.hardware.gnss.IAGnssRil.NetworkAttributes attributes); + void injectNiSuplMessageData(in byte[] msgData, in int slotIndex); + const int NETWORK_CAPABILITY_NOT_METERED = 0x01; + const int NETWORK_CAPABILITY_NOT_ROAMING = 0x02; + @Backing(type="int") @VintfStability + enum AGnssRefLocationType { + GSM_CELLID = 1, + UMTS_CELLID = 2, + LTE_CELLID = 4, + NR_CELLID = 8, + } + @Backing(type="int") @VintfStability + enum SetIdType { + NONE = 0, + IMSI = 1, + MSISDM = 2, + } + @VintfStability + parcelable AGnssRefLocationCellID { + android.hardware.gnss.IAGnssRil.AGnssRefLocationType type; + int mcc; + int mnc; + int lac; + long cid; + int tac; + int pcid; + int arfcn; + } + @VintfStability + parcelable AGnssRefLocation { + android.hardware.gnss.IAGnssRil.AGnssRefLocationType type; + android.hardware.gnss.IAGnssRil.AGnssRefLocationCellID cellID; + } + @VintfStability + parcelable NetworkAttributes { + long networkHandle; + boolean isConnected; + int capabilities; + @utf8InCpp String apn; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRilCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRilCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3717026622856c171e235ba1e52c90068003e212 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IAGnssRilCallback.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IAGnssRilCallback { + void requestSetIdCb(in int setIdflag); + void requestRefLocCb(); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnss.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnss.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d1aaf2c4578eceffab6b8d477dda0b1b1e91f4be --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnss.aidl @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnss { + void setCallback(in android.hardware.gnss.IGnssCallback callback); + void close(); + @nullable android.hardware.gnss.IGnssPsds getExtensionPsds(); + android.hardware.gnss.IGnssConfiguration getExtensionGnssConfiguration(); + android.hardware.gnss.IGnssMeasurementInterface getExtensionGnssMeasurement(); + android.hardware.gnss.IGnssPowerIndication getExtensionGnssPowerIndication(); + @nullable android.hardware.gnss.IGnssBatching getExtensionGnssBatching(); + @nullable android.hardware.gnss.IGnssGeofence getExtensionGnssGeofence(); + @nullable android.hardware.gnss.IGnssNavigationMessageInterface getExtensionGnssNavigationMessage(); + android.hardware.gnss.IAGnss getExtensionAGnss(); + android.hardware.gnss.IAGnssRil getExtensionAGnssRil(); + android.hardware.gnss.IGnssDebug getExtensionGnssDebug(); + android.hardware.gnss.visibility_control.IGnssVisibilityControl getExtensionGnssVisibilityControl(); + void start(); + void stop(); + void injectTime(in long timeMs, in long timeReferenceMs, in int uncertaintyMs); + void injectLocation(in android.hardware.gnss.GnssLocation location); + void injectBestLocation(in android.hardware.gnss.GnssLocation location); + void deleteAidingData(in android.hardware.gnss.IGnss.GnssAidingData aidingDataFlags); + void setPositionMode(in android.hardware.gnss.IGnss.PositionModeOptions options); + android.hardware.gnss.IGnssAntennaInfo getExtensionGnssAntennaInfo(); + @nullable android.hardware.gnss.measurement_corrections.IMeasurementCorrectionsInterface getExtensionMeasurementCorrections(); + void startSvStatus(); + void stopSvStatus(); + void startNmea(); + void stopNmea(); + const int ERROR_INVALID_ARGUMENT = 1; + const int ERROR_ALREADY_INIT = 2; + const int ERROR_GENERIC = 3; + @Backing(type="int") @VintfStability + enum GnssPositionMode { + STANDALONE = 0, + MS_BASED = 1, + MS_ASSISTED = 2, + } + @Backing(type="int") @VintfStability + enum GnssPositionRecurrence { + RECURRENCE_PERIODIC = 0, + RECURRENCE_SINGLE = 1, + } + @Backing(type="int") @VintfStability + enum GnssAidingData { + EPHEMERIS = 0x0001, + ALMANAC = 0x0002, + POSITION = 0x0004, + TIME = 0x0008, + IONO = 0x0010, + UTC = 0x0020, + HEALTH = 0x0040, + SVDIR = 0x0080, + SVSTEER = 0x0100, + SADATA = 0x0200, + RTI = 0x0400, + CELLDB_INFO = 0x8000, + ALL = 0xFFFF, + } + @VintfStability + parcelable PositionModeOptions { + android.hardware.gnss.IGnss.GnssPositionMode mode; + android.hardware.gnss.IGnss.GnssPositionRecurrence recurrence; + int minIntervalMs; + int preferredAccuracyMeters; + int preferredTimeMs; + boolean lowPowerMode; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfo.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..43ad328e5c9552f51054818277e299d948aa0309 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssAntennaInfo { + void setCallback(in android.hardware.gnss.IGnssAntennaInfoCallback callback); + void close(); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfoCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfoCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..eb6abe55f8d2117d123bc5c44ca637fc66b55a98 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssAntennaInfoCallback.aidl @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssAntennaInfoCallback { + void gnssAntennaInfoCb(in android.hardware.gnss.IGnssAntennaInfoCallback.GnssAntennaInfo[] gnssAntennaInfos); + @VintfStability + parcelable Row { + double[] row; + } + @VintfStability + parcelable Coord { + double x; + double xUncertainty; + double y; + double yUncertainty; + double z; + double zUncertainty; + } + @VintfStability + parcelable GnssAntennaInfo { + long carrierFrequencyHz; + android.hardware.gnss.IGnssAntennaInfoCallback.Coord phaseCenterOffsetCoordinateMillimeters; + android.hardware.gnss.IGnssAntennaInfoCallback.Row[] phaseCenterVariationCorrectionMillimeters; + android.hardware.gnss.IGnssAntennaInfoCallback.Row[] phaseCenterVariationCorrectionUncertaintyMillimeters; + android.hardware.gnss.IGnssAntennaInfoCallback.Row[] signalGainCorrectionDbi; + android.hardware.gnss.IGnssAntennaInfoCallback.Row[] signalGainCorrectionUncertaintyDbi; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatching.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatching.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a021f55918d3fec2193a844260e06db51a8b0b7f --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatching.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssBatching { + void init(in android.hardware.gnss.IGnssBatchingCallback callback); + int getBatchSize(); + void start(in android.hardware.gnss.IGnssBatching.Options options); + void flush(); + void stop(); + void cleanup(); + const int WAKEUP_ON_FIFO_FULL = 0x01; + @VintfStability + parcelable Options { + long periodNanos; + float minDistanceMeters; + int flags; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatchingCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatchingCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b12a8bd51946bbd022b44588b57b9a5be87445e0 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssBatchingCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssBatchingCallback { + void gnssLocationBatchCb(in android.hardware.gnss.GnssLocation[] locations); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..61710d3e25c2ce6b6d90cf0b66bbfb056edb6183 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssCallback.aidl @@ -0,0 +1,97 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssCallback { + void gnssSetCapabilitiesCb(in int capabilities); + void gnssStatusCb(in android.hardware.gnss.IGnssCallback.GnssStatusValue status); + void gnssSvStatusCb(in android.hardware.gnss.IGnssCallback.GnssSvInfo[] svInfoList); + void gnssLocationCb(in android.hardware.gnss.GnssLocation location); + void gnssNmeaCb(in long timestamp, in @utf8InCpp String nmea); + void gnssAcquireWakelockCb(); + void gnssReleaseWakelockCb(); + void gnssSetSystemInfoCb(in android.hardware.gnss.IGnssCallback.GnssSystemInfo info); + void gnssRequestTimeCb(); + void gnssRequestLocationCb(in boolean independentFromGnss, in boolean isUserEmergency); + void gnssSetSignalTypeCapabilitiesCb(in android.hardware.gnss.GnssSignalType[] gnssSignalTypes); + const int CAPABILITY_SCHEDULING = (1 << 0) /* 1 */; + const int CAPABILITY_MSB = (1 << 1) /* 2 */; + const int CAPABILITY_MSA = (1 << 2) /* 4 */; + const int CAPABILITY_SINGLE_SHOT = (1 << 3) /* 8 */; + const int CAPABILITY_ON_DEMAND_TIME = (1 << 4) /* 16 */; + const int CAPABILITY_GEOFENCING = (1 << 5) /* 32 */; + const int CAPABILITY_MEASUREMENTS = (1 << 6) /* 64 */; + const int CAPABILITY_NAV_MESSAGES = (1 << 7) /* 128 */; + const int CAPABILITY_LOW_POWER_MODE = (1 << 8) /* 256 */; + const int CAPABILITY_SATELLITE_BLOCKLIST = (1 << 9) /* 512 */; + const int CAPABILITY_MEASUREMENT_CORRECTIONS = (1 << 10) /* 1024 */; + const int CAPABILITY_ANTENNA_INFO = (1 << 11) /* 2048 */; + const int CAPABILITY_CORRELATION_VECTOR = (1 << 12) /* 4096 */; + const int CAPABILITY_SATELLITE_PVT = (1 << 13) /* 8192 */; + const int CAPABILITY_MEASUREMENT_CORRECTIONS_FOR_DRIVING = (1 << 14) /* 16384 */; + const int CAPABILITY_ACCUMULATED_DELTA_RANGE = (1 << 15) /* 32768 */; + @Backing(type="int") @VintfStability + enum GnssStatusValue { + NONE = 0, + SESSION_BEGIN = 1, + SESSION_END = 2, + ENGINE_ON = 3, + ENGINE_OFF = 4, + } + @Backing(type="int") @VintfStability + enum GnssSvFlags { + NONE = 0, + HAS_EPHEMERIS_DATA = (1 << 0) /* 1 */, + HAS_ALMANAC_DATA = (1 << 1) /* 2 */, + USED_IN_FIX = (1 << 2) /* 4 */, + HAS_CARRIER_FREQUENCY = (1 << 3) /* 8 */, + } + @VintfStability + parcelable GnssSvInfo { + int svid; + android.hardware.gnss.GnssConstellationType constellation; + float cN0Dbhz; + float basebandCN0DbHz; + float elevationDegrees; + float azimuthDegrees; + long carrierFrequencyHz; + int svFlag; + } + @VintfStability + parcelable GnssSystemInfo { + int yearOfHw; + @utf8InCpp String name; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssConfiguration.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..70df11afa95a5a2bf209590b74de0c694290ba7f --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssConfiguration.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssConfiguration { + void setSuplVersion(in int version); + void setSuplMode(in int mode); + void setLppProfile(in int lppProfile); + void setGlonassPositioningProtocol(in int protocol); + void setEmergencySuplPdn(in boolean enable); + void setEsExtensionSec(in int emergencyExtensionSeconds); + void setBlocklist(in android.hardware.gnss.BlocklistedSource[] blocklist); + const int SUPL_MODE_MSB = 0x01; + const int SUPL_MODE_MSA = 0x02; + const int LPP_PROFILE_USER_PLANE = 0x01; + const int LPP_PROFILE_CONTROL_PLANE = 0x02; + const int GLONASS_POS_PROTOCOL_RRC_CPLANE = 0x01; + const int GLONASS_POS_PROTOCOL_RRLP_UPLANE = 0x02; + const int GLONASS_POS_PROTOCOL_LPP_UPLANE = 0x04; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssDebug.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssDebug.aidl new file mode 100644 index 0000000000000000000000000000000000000000..591b53301fce636b29267cacfeaae0d2d1d3b54e --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssDebug.aidl @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssDebug { + android.hardware.gnss.IGnssDebug.DebugData getDebugData(); + @Backing(type="int") @VintfStability + enum SatelliteEphemerisType { + EPHEMERIS = 0, + ALMANAC_ONLY = 1, + NOT_AVAILABLE = 2, + } + @Backing(type="int") @VintfStability + enum SatelliteEphemerisHealth { + GOOD = 0, + BAD = 1, + UNKNOWN = 2, + } + @VintfStability + parcelable TimeDebug { + long timeEstimateMs; + float timeUncertaintyNs; + float frequencyUncertaintyNsPerSec; + } + @VintfStability + parcelable PositionDebug { + boolean valid; + double latitudeDegrees; + double longitudeDegrees; + float altitudeMeters; + float speedMetersPerSec; + float bearingDegrees; + double horizontalAccuracyMeters; + double verticalAccuracyMeters; + double speedAccuracyMetersPerSecond; + double bearingAccuracyDegrees; + float ageSeconds; + } + @VintfStability + parcelable SatelliteData { + int svid; + android.hardware.gnss.GnssConstellationType constellation; + android.hardware.gnss.IGnssDebug.SatelliteEphemerisType ephemerisType; + android.hardware.gnss.SatellitePvt.SatelliteEphemerisSource ephemerisSource; + android.hardware.gnss.IGnssDebug.SatelliteEphemerisHealth ephemerisHealth; + float ephemerisAgeSeconds; + boolean serverPredictionIsAvailable; + float serverPredictionAgeSeconds; + } + @VintfStability + parcelable DebugData { + android.hardware.gnss.IGnssDebug.PositionDebug position; + android.hardware.gnss.IGnssDebug.TimeDebug time; + List satelliteDataArray; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofence.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofence.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5065ad49c8a600aaa322b91122432e43b9a55abf --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofence.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssGeofence { + void setCallback(in android.hardware.gnss.IGnssGeofenceCallback callback); + void addGeofence(in int geofenceId, in double latitudeDegrees, in double longitudeDegrees, in double radiusMeters, in int lastTransition, in int monitorTransitions, in int notificationResponsivenessMs, in int unknownTimerMs); + void pauseGeofence(in int geofenceId); + void resumeGeofence(in int geofenceId, in int monitorTransitions); + void removeGeofence(in int geofenceId); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofenceCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofenceCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..90f9ebce433af9a7c8105d4e65af6a3f5cc43542 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssGeofenceCallback.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssGeofenceCallback { + void gnssGeofenceTransitionCb(in int geofenceId, in android.hardware.gnss.GnssLocation location, in int transition, in long timestampMillis); + void gnssGeofenceStatusCb(in int availability, in android.hardware.gnss.GnssLocation lastLocation); + void gnssGeofenceAddCb(in int geofenceId, in int status); + void gnssGeofenceRemoveCb(in int geofenceId, in int status); + void gnssGeofencePauseCb(in int geofenceId, in int status); + void gnssGeofenceResumeCb(in int geofenceId, in int status); + const int ENTERED = (1 << 0) /* 1 */; + const int EXITED = (1 << 1) /* 2 */; + const int UNCERTAIN = (1 << 2) /* 4 */; + const int UNAVAILABLE = (1 << 0) /* 1 */; + const int AVAILABLE = (1 << 1) /* 2 */; + const int OPERATION_SUCCESS = 0; + const int ERROR_TOO_MANY_GEOFENCES = (-100) /* -100 */; + const int ERROR_ID_EXISTS = (-101) /* -101 */; + const int ERROR_ID_UNKNOWN = (-102) /* -102 */; + const int ERROR_INVALID_TRANSITION = (-103) /* -103 */; + const int ERROR_GENERIC = (-149) /* -149 */; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..624a7ae84d99bf935f2a0955474517c5b9c4f27f --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssMeasurementCallback { + void gnssMeasurementCb(in android.hardware.gnss.GnssData data); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementInterface.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementInterface.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6fe6a6c6fd0b67c135c3279dc8154636b0ecdff3 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssMeasurementInterface.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssMeasurementInterface { + void setCallback(in android.hardware.gnss.IGnssMeasurementCallback callback, in boolean enableFullTracking, in boolean enableCorrVecOutputs); + void close(); + void setCallbackWithOptions(in android.hardware.gnss.IGnssMeasurementCallback callback, in android.hardware.gnss.IGnssMeasurementInterface.Options options); + @VintfStability + parcelable Options { + boolean enableFullTracking; + boolean enableCorrVecOutputs; + int intervalMs; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f6a8fef7ace72cf55daeddb23be365aaaebccf8e --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageCallback.aidl @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssNavigationMessageCallback { + void gnssNavigationMessageCb(in android.hardware.gnss.IGnssNavigationMessageCallback.GnssNavigationMessage message); + @VintfStability + parcelable GnssNavigationMessage { + int svid; + android.hardware.gnss.IGnssNavigationMessageCallback.GnssNavigationMessage.GnssNavigationMessageType type; + int status; + int messageId; + int submessageId; + byte[] data; + const int STATUS_PARITY_PASSED = (1 << 0) /* 1 */; + const int STATUS_PARITY_REBUILT = (1 << 1) /* 2 */; + const int STATUS_UNKNOWN = 0; + @Backing(type="int") @VintfStability + enum GnssNavigationMessageType { + UNKNOWN = 0, + GPS_L1CA = 0x0101, + GPS_L2CNAV = 0x0102, + GPS_L5CNAV = 0x0103, + SBS = 0x0201, + GPS_CNAV2 = 0x0104, + GLO_L1CA = 0x0301, + QZS_L1CA = 0x0401, + BDS_D1 = 0x0501, + BDS_D2 = 0x0502, + BDS_CNAV1 = 0x0503, + BDS_CNAV2 = 0x0504, + GAL_I = 0x0601, + GAL_F = 0x0602, + /** + * @deprecated Use IRN_L5 instead. + */ + IRN_L5CA = 0x0701, + IRN_L5 = 0x0702, + IRN_L1 = 0x0703, + } + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageInterface.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageInterface.aidl new file mode 100644 index 0000000000000000000000000000000000000000..187773dd815da321f44bea57ee7ef4ba62d3f471 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssNavigationMessageInterface.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssNavigationMessageInterface { + void setCallback(in android.hardware.gnss.IGnssNavigationMessageCallback callback); + void close(); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndication.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndication.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f77dbfff86ddf065fa3e68dd15473e394c66a7a7 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndication.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssPowerIndication { + void setCallback(in android.hardware.gnss.IGnssPowerIndicationCallback callback); + oneway void requestGnssPowerStats(); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndicationCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndicationCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..07b10ad201ac355e5de8aa8adf8884684d5a1b48 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPowerIndicationCallback.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssPowerIndicationCallback { + void setCapabilitiesCb(in int capabilities); + oneway void gnssPowerStatsCb(in android.hardware.gnss.GnssPowerStats gnssPowerStats); + const int CAPABILITY_TOTAL = (1 << 0) /* 1 */; + const int CAPABILITY_SINGLEBAND_TRACKING = (1 << 1) /* 2 */; + const int CAPABILITY_MULTIBAND_TRACKING = (1 << 2) /* 4 */; + const int CAPABILITY_SINGLEBAND_ACQUISITION = (1 << 3) /* 8 */; + const int CAPABILITY_MULTIBAND_ACQUISITION = (1 << 4) /* 16 */; + const int CAPABILITY_OTHER_MODES = (1 << 5) /* 32 */; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsds.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsds.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3aee798b3345b6cfa6d79ee7264a88de88de4f45 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsds.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssPsds { + void injectPsdsData(in android.hardware.gnss.PsdsType psdsType, in byte[] psdsData); + void setCallback(in android.hardware.gnss.IGnssPsdsCallback callback); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsdsCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsdsCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dadc9fb092900626dee750a1c704520f57276e23 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/IGnssPsdsCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +interface IGnssPsdsCallback { + void downloadRequestCb(in android.hardware.gnss.PsdsType psdsType); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/PsdsType.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/PsdsType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..60b15d63eb4fd39249c311cf4ccca603f8bb8664 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/PsdsType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@Backing(type="int") @VintfStability +enum PsdsType { + LONG_TERM = 1, + NORMAL = 2, + REALTIME = 3, +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteClockInfo.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteClockInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..05f773328083d81e77f517e7b7f9815a07193b5f --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteClockInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable SatelliteClockInfo { + double satHardwareCodeBiasMeters; + double satTimeCorrectionMeters; + double satClkDriftMps; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePositionEcef.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePositionEcef.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3d4f7ff6e21677e1745952b2b62dad3d30e77c61 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePositionEcef.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable SatellitePositionEcef { + double posXMeters; + double posYMeters; + double posZMeters; + double ureMeters; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePvt.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePvt.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ae65f39e3a41f0850f5844667710ddf0548efe1a --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatellitePvt.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable SatellitePvt { + int flags; + android.hardware.gnss.SatellitePositionEcef satPosEcef; + android.hardware.gnss.SatelliteVelocityEcef satVelEcef; + android.hardware.gnss.SatelliteClockInfo satClockInfo; + double ionoDelayMeters; + double tropoDelayMeters; + long timeOfClockSeconds; + int issueOfDataClock; + long timeOfEphemerisSeconds; + int issueOfDataEphemeris; + android.hardware.gnss.SatellitePvt.SatelliteEphemerisSource ephemerisSource = android.hardware.gnss.SatellitePvt.SatelliteEphemerisSource.OTHER; + const int HAS_POSITION_VELOCITY_CLOCK_INFO = (1 << 0) /* 1 */; + const int HAS_IONO = (1 << 1) /* 2 */; + const int HAS_TROPO = (1 << 2) /* 4 */; + @Backing(type="int") @VintfStability + enum SatelliteEphemerisSource { + DEMODULATED = 0, + SERVER_NORMAL = 1, + SERVER_LONG_TERM = 2, + OTHER = 3, + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteVelocityEcef.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteVelocityEcef.aidl new file mode 100644 index 0000000000000000000000000000000000000000..94d0b344b7cbf3e05a189de5be2477e18d7079d7 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/SatelliteVelocityEcef.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss; +/* @hide */ +@VintfStability +parcelable SatelliteVelocityEcef { + double velXMps; + double velYMps; + double velZMps; + double ureRateMps; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..61909d05f7c374d9c63d5f1f17ef46b2681979ff --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsCallback.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.measurement_corrections; +/* @hide */ +@VintfStability +interface IMeasurementCorrectionsCallback { + void setCapabilitiesCb(in int capabilities); + const int CAPABILITY_LOS_SATS = (1 << 0) /* 1 */; + const int CAPABILITY_EXCESS_PATH_LENGTH = (1 << 1) /* 2 */; + const int CAPABILITY_REFLECTING_PLANE = (1 << 2) /* 4 */; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsInterface.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsInterface.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bd305345f656907593424fa667de11879f5064b1 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/IMeasurementCorrectionsInterface.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.measurement_corrections; +/* @hide */ +@VintfStability +interface IMeasurementCorrectionsInterface { + void setCorrections(in android.hardware.gnss.measurement_corrections.MeasurementCorrections corrections); + void setCallback(in android.hardware.gnss.measurement_corrections.IMeasurementCorrectionsCallback callback); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/MeasurementCorrections.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/MeasurementCorrections.aidl new file mode 100644 index 0000000000000000000000000000000000000000..35fd79e57e7252862323642f42c5eb64af1463f7 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/MeasurementCorrections.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.measurement_corrections; +/* @hide */ +@VintfStability +parcelable MeasurementCorrections { + double latitudeDegrees; + double longitudeDegrees; + double altitudeMeters; + double horizontalPositionUncertaintyMeters; + double verticalPositionUncertaintyMeters; + long toaGpsNanosecondsOfWeek; + android.hardware.gnss.measurement_corrections.SingleSatCorrection[] satCorrections; + boolean hasEnvironmentBearing; + float environmentBearingDegrees; + float environmentBearingUncertaintyDegrees; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/ReflectingPlane.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/ReflectingPlane.aidl new file mode 100644 index 0000000000000000000000000000000000000000..90c9e033360abc13dd39382f9f7b712ba4a5b98d --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/ReflectingPlane.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.measurement_corrections; +/* @hide */ +@VintfStability +parcelable ReflectingPlane { + double latitudeDegrees; + double longitudeDegrees; + double altitudeMeters; + double reflectingPlaneAzimuthDegrees; +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/SingleSatCorrection.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/SingleSatCorrection.aidl new file mode 100644 index 0000000000000000000000000000000000000000..72d32e434c1515b46aa89c19447ae6cb1bfae236 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/measurement_corrections/SingleSatCorrection.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.measurement_corrections; +/* @hide */ +@VintfStability +parcelable SingleSatCorrection { + int singleSatCorrectionFlags; + android.hardware.gnss.GnssConstellationType constellation; + int svid; + long carrierFrequencyHz; + float probSatIsLos; + float combinedExcessPathLengthMeters; + float combinedExcessPathLengthUncertaintyMeters; + float combinedAttenuationDb; + android.hardware.gnss.measurement_corrections.SingleSatCorrection.ExcessPathInfo[] excessPathInfos; + const int SINGLE_SAT_CORRECTION_HAS_SAT_IS_LOS_PROBABILITY = 0x0001; + const int SINGLE_SAT_CORRECTION_HAS_COMBINED_EXCESS_PATH_LENGTH = 0x0002; + const int SINGLE_SAT_CORRECTION_HAS_COMBINED_EXCESS_PATH_LENGTH_UNC = 0x0004; + const int SINGLE_SAT_CORRECTION_HAS_COMBINED_ATTENUATION = 0x0010; + @VintfStability + parcelable ExcessPathInfo { + int excessPathInfoFlags; + float excessPathLengthMeters; + float excessPathLengthUncertaintyMeters; + android.hardware.gnss.measurement_corrections.ReflectingPlane reflectingPlane; + float attenuationDb; + const int EXCESS_PATH_INFO_HAS_EXCESS_PATH_LENGTH = 0x0001; + const int EXCESS_PATH_INFO_HAS_EXCESS_PATH_LENGTH_UNC = 0x0002; + const int EXCESS_PATH_INFO_HAS_REFLECTING_PLANE = 0x0004; + const int EXCESS_PATH_INFO_HAS_ATTENUATION = 0x0008; + } +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControl.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControl.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d7a7a9651f700264bdb0e0898071cae6442a4435 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControl.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.visibility_control; +/* @hide */ +@VintfStability +interface IGnssVisibilityControl { + void enableNfwLocationAccess(in @utf8InCpp String[] proxyApps); + void setCallback(in android.hardware.gnss.visibility_control.IGnssVisibilityControlCallback callback); +} diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControlCallback.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControlCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c9b96f50bb383ea28739bb486db0a97e7c1c8094 --- /dev/null +++ b/gnss/aidl/aidl_api/android.hardware.gnss/4/android/hardware/gnss/visibility_control/IGnssVisibilityControlCallback.aidl @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.gnss.visibility_control; +/* @hide */ +@VintfStability +interface IGnssVisibilityControlCallback { + void nfwNotifyCb(in android.hardware.gnss.visibility_control.IGnssVisibilityControlCallback.NfwNotification notification); + boolean isInEmergencySession(); + @Backing(type="int") @VintfStability + enum NfwProtocolStack { + CTRL_PLANE = 0, + SUPL = 1, + IMS = 10, + SIM = 11, + OTHER_PROTOCOL_STACK = 100, + } + @Backing(type="int") @VintfStability + enum NfwRequestor { + CARRIER = 0, + OEM = 10, + MODEM_CHIPSET_VENDOR = 11, + GNSS_CHIPSET_VENDOR = 12, + OTHER_CHIPSET_VENDOR = 13, + AUTOMOBILE_CLIENT = 20, + OTHER_REQUESTOR = 100, + } + @Backing(type="int") @VintfStability + enum NfwResponseType { + REJECTED = 0, + ACCEPTED_NO_LOCATION_PROVIDED = 1, + ACCEPTED_LOCATION_PROVIDED = 2, + } + @VintfStability + parcelable NfwNotification { + String proxyAppPackageName; + android.hardware.gnss.visibility_control.IGnssVisibilityControlCallback.NfwProtocolStack protocolStack; + String otherProtocolStackName; + android.hardware.gnss.visibility_control.IGnssVisibilityControlCallback.NfwRequestor requestor; + String requestorId; + android.hardware.gnss.visibility_control.IGnssVisibilityControlCallback.NfwResponseType responseType; + boolean inEmergencyMode; + boolean isCachedLocation; + } +} diff --git a/gnss/aidl/android/hardware/gnss/IGnssCallback.aidl b/gnss/aidl/android/hardware/gnss/IGnssCallback.aidl index 020062510588fbfde9d2b591fd35b59402c27d68..522d44e5a57ca85b9c8e921b8a750b2ac05ca1ab 100644 --- a/gnss/aidl/android/hardware/gnss/IGnssCallback.aidl +++ b/gnss/aidl/android/hardware/gnss/IGnssCallback.aidl @@ -136,14 +136,14 @@ interface IGnssCallback { * * - GNSS: 1-32 * - SBAS: 120-151, 183-192 - * - GLONASS: 1-24, the orbital slot number (OSN), if known. Or, if not: + * - GLONASS: 1-25, the orbital slot number (OSN), if known. Or, if not: * 93-106, the frequency channel number (FCN) (-7 to +6) offset by * + 100 * i.e. report an FCN of -7 as 93, FCN of 0 as 100, and FCN of +6 * as 106. - * - QZSS: 193-200 + * - QZSS: 183-206 * - Galileo: 1-36 - * - Beidou: 1-37 + * - Beidou: 1-63 * - IRNSS: 1-14 */ int svid; diff --git a/graphics/allocator/2.0/Android.bp b/graphics/allocator/2.0/Android.bp index 40db81d3e489aa6738eb30d8b8ca96871a8477bc..36158e9eb83c61300e7dd79362785d64213bf1fe 100644 --- a/graphics/allocator/2.0/Android.bp +++ b/graphics/allocator/2.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/2.0/default/Android.bp b/graphics/allocator/2.0/default/Android.bp index 4d17dc3a1b5ab857b5d1f521ccb983a169dfbf53..2ca9c869ffc01f9872eda65ab4f297f8d5096d47 100644 --- a/graphics/allocator/2.0/default/Android.bp +++ b/graphics/allocator/2.0/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/2.0/utils/gralloc1-adapter/Android.bp b/graphics/allocator/2.0/utils/gralloc1-adapter/Android.bp index bc42099c92931a3b54e7090630abcfe3ca1faa38..1ef32ef2749735d3e1b69629e378f4418b8bf689 100644 --- a/graphics/allocator/2.0/utils/gralloc1-adapter/Android.bp +++ b/graphics/allocator/2.0/utils/gralloc1-adapter/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -11,9 +12,15 @@ cc_library_static { name: "libgralloc1-adapter", defaults: ["hidl_defaults"], vendor: true, - srcs: ["gralloc1-adapter.cpp", "Gralloc1On0Adapter.cpp"], + srcs: [ + "gralloc1-adapter.cpp", + "Gralloc1On0Adapter.cpp", + ], include_dirs: ["system/core/libsync/include"], export_include_dirs: ["."], whole_static_libs: ["libgrallocusage"], - shared_libs: ["libhardware", "liblog"], + shared_libs: [ + "libhardware", + "liblog", + ], } diff --git a/graphics/allocator/2.0/utils/hal/Android.bp b/graphics/allocator/2.0/utils/hal/Android.bp index 6bb9a0f65718590348715657c192abbc1a414f02..a2ddafd032258ae474f32c5ec292315e28acb54c 100644 --- a/graphics/allocator/2.0/utils/hal/Android.bp +++ b/graphics/allocator/2.0/utils/hal/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/2.0/utils/passthrough/Android.bp b/graphics/allocator/2.0/utils/passthrough/Android.bp index f5ac5a61e6523cbd9ce6d56c2c9271364d45b973..fe005182cb9eb82ac04387a7bc2bceada0fc55d6 100644 --- a/graphics/allocator/2.0/utils/passthrough/Android.bp +++ b/graphics/allocator/2.0/utils/passthrough/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/3.0/Android.bp b/graphics/allocator/3.0/Android.bp index 800632c59da277c48eaf3494d4a111659eab9eb8..0100f6f33632f29d91450e1a6ead9971f18c8e01 100644 --- a/graphics/allocator/3.0/Android.bp +++ b/graphics/allocator/3.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/4.0/Android.bp b/graphics/allocator/4.0/Android.bp index 5c5fb37c4813e852a311d2eec28239136eb8750a..5d7a4a991a64e9f317b2dfa194cce7541985a1ce 100644 --- a/graphics/allocator/4.0/Android.bp +++ b/graphics/allocator/4.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/aidl/Android.bp b/graphics/allocator/aidl/Android.bp index 03628b058be5acb6cf0eeff1ff2ba67dca4e5fe4..6e24edcab504674e282f2eed7007127b5dffa9c6 100644 --- a/graphics/allocator/aidl/Android.bp +++ b/graphics/allocator/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/aidl/vts/Android.bp b/graphics/allocator/aidl/vts/Android.bp index 630ab2a2f0edf6e57310f40ec8f6f248c1ad3c96..b2ed821559621ace5e395b7f76ed6fa06bbee8b8 100644 --- a/graphics/allocator/aidl/vts/Android.bp +++ b/graphics/allocator/aidl/vts/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/allocator/aidl/vts/VtsHalGraphicsAllocatorAidl_TargetTest.cpp b/graphics/allocator/aidl/vts/VtsHalGraphicsAllocatorAidl_TargetTest.cpp index 4778020c6efd84a6c600186f58f8f19646383f21..0430ea7264ae3caafee4a8b0511449d375d844fd 100644 --- a/graphics/allocator/aidl/vts/VtsHalGraphicsAllocatorAidl_TargetTest.cpp +++ b/graphics/allocator/aidl/vts/VtsHalGraphicsAllocatorAidl_TargetTest.cpp @@ -144,7 +144,8 @@ class GraphicsTestsBase { auto status = mAllocator->getIMapperLibrarySuffix(&mapperSuffix); ASSERT_TRUE(status.isOk()); std::string lib_name = "mapper." + mapperSuffix + ".so"; - void* so = android_load_sphal_library(lib_name.c_str(), RTLD_LOCAL | RTLD_NOW); + void* so = AServiceManager_openDeclaredPassthroughHal("mapper", mapperSuffix.c_str(), + RTLD_LOCAL | RTLD_NOW); ASSERT_NE(nullptr, so) << "Failed to load " << lib_name; auto loadIMapper = (AIMapper_loadIMapperFn)dlsym(so, "AIMapper_loadIMapper"); ASSERT_NE(nullptr, loadIMapper) << "AIMapper_locaIMapper missing from " << lib_name; diff --git a/graphics/bufferqueue/1.0/Android.bp b/graphics/bufferqueue/1.0/Android.bp index 82c71f1d5fb991dbdfd6b5ffcc843ff3a4093d2b..fe46b5e4a8f9cbbf3c0b867446530b735395af97 100644 --- a/graphics/bufferqueue/1.0/Android.bp +++ b/graphics/bufferqueue/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/bufferqueue/2.0/Android.bp b/graphics/bufferqueue/2.0/Android.bp index 3067e2483cece7fd95ee9fbc30607058f085ec68..c2b0985efd0f93826e371f201899fc013766a890 100644 --- a/graphics/bufferqueue/2.0/Android.bp +++ b/graphics/bufferqueue/2.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/common/1.0/Android.bp b/graphics/common/1.0/Android.bp index 3288583bea0f35a7da71b1bfdcc452e92df9bac4..786953b4ce5553b9ebaec055cb7e470a14b94edd 100644 --- a/graphics/common/1.0/Android.bp +++ b/graphics/common/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/common/1.1/Android.bp b/graphics/common/1.1/Android.bp index 5d07eae43247e5ca08ce441b9c05538ef4f8d170..d857f8007ee49eef609cc1750de35ec340b0e526 100644 --- a/graphics/common/1.1/Android.bp +++ b/graphics/common/1.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/common/1.2/Android.bp b/graphics/common/1.2/Android.bp index 4aa4af56cbaa042f174857476859703803811217..17d0c205c19f49edb4c1ebd37f1f8ee7d2ed22ef 100644 --- a/graphics/common/1.2/Android.bp +++ b/graphics/common/1.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/common/aidl/Android.bp b/graphics/common/aidl/Android.bp index f177a41768a9017853e6ede36a003e34e36bd88a..570f735e1e3b97c3230e912b9b50485027efe4e4 100644 --- a/graphics/common/aidl/Android.bp +++ b/graphics/common/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -43,7 +44,7 @@ aidl_interface { enabled: true, }, }, - frozen: false, + frozen: true, versions_with_info: [ { version: "1", @@ -67,6 +68,10 @@ aidl_interface { version: "4", imports: ["android.hardware.common-V2"], }, + { + version: "5", + imports: ["android.hardware.common-V2"], + }, ], } diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/.hash b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/.hash index 66b5d134c5f07818f59924617938fb8d89097179..babbf247ecf32c06655ed7c888912c32871cd7a1 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/.hash +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/.hash @@ -1 +1,2 @@ f5bdf5724a941dc7e5e7d0ebe9dfe028f7bcc25f +71da13748094aa53237dd6eeac04f0f9add80aa1 diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/android/hardware/graphics/common/BufferUsage.aidl index 58eefc4e2c8f8a23cb7bdd87dab31208b457f11d..cb5bc9effa5179c4a5a1ff1734f38c86ed77c55c 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/android/hardware/graphics/common/BufferUsage.aidl +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/1/android/hardware/graphics/common/BufferUsage.aidl @@ -42,6 +42,6 @@ enum BufferUsage { GPU_MIPMAP_COMPLETE = 67108864, HW_IMAGE_ENCODER = 134217728, GPU_DATA_BUFFER = 16777216, - VENDOR_MASK = -268435456, + VENDOR_MASK = 4026531840, VENDOR_MASK_HI = -281474976710656, } diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/.hash b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/.hash index 167ed0e3003c494084fb3ae66afb04ca53157caf..54f8f32717b7336307107394a17d737c01be2e7c 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/.hash +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/.hash @@ -1 +1,2 @@ bd2f5e2ab1d5112dfe982f64012e425f544c9d60 +4279f88ef38c8fdeea6797410b464ae29df34e72 diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/android/hardware/graphics/common/BufferUsage.aidl index b4ef4515c7ee2a033e94849c7a176382b7726b05..5e23bcc90555e0081ae30f2e2453b8ad4d7f5e5f 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/android/hardware/graphics/common/BufferUsage.aidl +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/2/android/hardware/graphics/common/BufferUsage.aidl @@ -58,6 +58,6 @@ enum BufferUsage { GPU_MIPMAP_COMPLETE = 67108864, HW_IMAGE_ENCODER = 134217728, GPU_DATA_BUFFER = 16777216, - VENDOR_MASK = -268435456, + VENDOR_MASK = 4026531840, VENDOR_MASK_HI = -281474976710656, } diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/.hash b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/.hash index dfda68f42d042e9a20aa3dcb4364f949a4fd22dc..53eb6bd996deb686c7cc85a2c141d4b889246885 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/.hash +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/.hash @@ -1 +1,2 @@ e7e8b0bd7cd27ab4f1998700ef19ebc82e022d87 +37aa15ac89ae27f3f89099d79609f5aaa1717de5 diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/android/hardware/graphics/common/BufferUsage.aidl index d3ab44f2ce2e07ddde44f566510256e8a100d8d9..f91625f07dcf1cc6f5c1bc2b872664ee8bfc5bf1 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/android/hardware/graphics/common/BufferUsage.aidl +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/3/android/hardware/graphics/common/BufferUsage.aidl @@ -60,6 +60,6 @@ enum BufferUsage { GPU_MIPMAP_COMPLETE = 67108864, HW_IMAGE_ENCODER = 134217728, FRONT_BUFFER = 4294967296, - VENDOR_MASK = -268435456, + VENDOR_MASK = 4026531840, VENDOR_MASK_HI = -281474976710656, } diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/.hash b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/.hash index ef17b349267aef1f36f7bb90884949acf11deb3b..fe20ff9d70282a2e9c38702a2e14acef4f69e6d9 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/.hash +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/.hash @@ -1 +1,2 @@ 9bcf4b83485ce912dc39108201504f77b8c96cef +adb71c34ba271f87c6431845b310777c1e611ebf diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/android/hardware/graphics/common/BufferUsage.aidl index d42a6d57b87e3455a7c8b18ec69a6c732f2fce6d..52b2a56cb7ea96592eab55c6f1f082a401ae6f13 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/android/hardware/graphics/common/BufferUsage.aidl +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/4/android/hardware/graphics/common/BufferUsage.aidl @@ -60,6 +60,6 @@ enum BufferUsage { GPU_MIPMAP_COMPLETE = (1 << 26) /* 67108864 */, HW_IMAGE_ENCODER = (1 << 27) /* 134217728 */, FRONT_BUFFER = (1L << 32) /* 4294967296 */, - VENDOR_MASK = (0xf << 28) /* -268435456 */, + VENDOR_MASK = (0xfL << 28) /* 4026531840 */, VENDOR_MASK_HI = ((1L * 0xffff) << 48) /* -281474976710656 */, } diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/.hash b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/.hash new file mode 100644 index 0000000000000000000000000000000000000000..867997340a064f5fa0be8397b818d31c67a5c5d9 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/.hash @@ -0,0 +1 @@ +2ffe8da1136972e9b6bed7903f0d5aca289005a9 diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/AlphaInterpretation.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/AlphaInterpretation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ea60283fe17f87c24216104da272171c629e6507 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/AlphaInterpretation.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2022, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum AlphaInterpretation { + COVERAGE = 0, + MASK = 1, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BlendMode.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BlendMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d1f61beee8d4e85ac546f4a3a50d3a464b906704 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BlendMode.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum BlendMode { + INVALID = 0, + NONE = 1, + PREMULTIPLIED = 2, + COVERAGE = 3, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BufferUsage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..52b2a56cb7ea96592eab55c6f1f082a401ae6f13 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/BufferUsage.aidl @@ -0,0 +1,65 @@ +/* + * Copyright 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="long") @VintfStability +enum BufferUsage { + CPU_READ_MASK = 0xf, + CPU_READ_NEVER = 0, + CPU_READ_RARELY = 2, + CPU_READ_OFTEN = 3, + CPU_WRITE_MASK = (0xf << 4) /* 240 */, + CPU_WRITE_NEVER = (0 << 4) /* 0 */, + CPU_WRITE_RARELY = (2 << 4) /* 32 */, + CPU_WRITE_OFTEN = (3 << 4) /* 48 */, + GPU_TEXTURE = (1 << 8) /* 256 */, + GPU_RENDER_TARGET = (1 << 9) /* 512 */, + COMPOSER_OVERLAY = (1 << 11) /* 2048 */, + COMPOSER_CLIENT_TARGET = (1 << 12) /* 4096 */, + PROTECTED = (1 << 14) /* 16384 */, + COMPOSER_CURSOR = (1 << 15) /* 32768 */, + VIDEO_ENCODER = (1 << 16) /* 65536 */, + CAMERA_OUTPUT = (1 << 17) /* 131072 */, + CAMERA_INPUT = (1 << 18) /* 262144 */, + RENDERSCRIPT = (1 << 20) /* 1048576 */, + VIDEO_DECODER = (1 << 22) /* 4194304 */, + SENSOR_DIRECT_DATA = (1 << 23) /* 8388608 */, + GPU_DATA_BUFFER = (1 << 24) /* 16777216 */, + GPU_CUBE_MAP = (1 << 25) /* 33554432 */, + GPU_MIPMAP_COMPLETE = (1 << 26) /* 67108864 */, + HW_IMAGE_ENCODER = (1 << 27) /* 134217728 */, + FRONT_BUFFER = (1L << 32) /* 4294967296 */, + VENDOR_MASK = (0xfL << 28) /* 4026531840 */, + VENDOR_MASK_HI = ((1L * 0xffff) << 48) /* -281474976710656 */, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ChromaSiting.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ChromaSiting.aidl new file mode 100644 index 0000000000000000000000000000000000000000..784fc1798a0f607f21e0f34306d54d8f0523bff8 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ChromaSiting.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="long") @VintfStability +enum ChromaSiting { + NONE = 0, + UNKNOWN = 1, + SITED_INTERSTITIAL = 2, + COSITED_HORIZONTAL = 3, + COSITED_VERTICAL = 4, + COSITED_BOTH = 5, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ColorTransform.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ColorTransform.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f74859b7880c635b0155088b19d42881b02e6eb8 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ColorTransform.aidl @@ -0,0 +1,45 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum ColorTransform { + IDENTITY = 0, + ARBITRARY_MATRIX = 1, + VALUE_INVERSE = 2, + GRAYSCALE = 3, + CORRECT_PROTANOPIA = 4, + CORRECT_DEUTERANOPIA = 5, + CORRECT_TRITANOPIA = 6, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Compression.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Compression.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4f155e19a940a567d1d09e67d5d8e59d8c6d7a4b --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Compression.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="long") @VintfStability +enum Compression { + NONE = 0, + DISPLAY_STREAM_COMPRESSION = 1, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Cta861_3.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Cta861_3.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ec90c9c64f63a18e228ecaff93fb705136cfda30 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Cta861_3.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable Cta861_3 { + float maxContentLightLevel; + float maxFrameAverageLightLevel; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Dataspace.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Dataspace.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6ed5bb2183efbbd2a46854070c1e0f0e369a6c2d --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Dataspace.aidl @@ -0,0 +1,101 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum Dataspace { + UNKNOWN = 0x0, + ARBITRARY = 0x1, + STANDARD_SHIFT = 16, + STANDARD_MASK = (63 << 16) /* 4128768 */, + STANDARD_UNSPECIFIED = (0 << 16) /* 0 */, + STANDARD_BT709 = (1 << 16) /* 65536 */, + STANDARD_BT601_625 = (2 << 16) /* 131072 */, + STANDARD_BT601_625_UNADJUSTED = (3 << 16) /* 196608 */, + STANDARD_BT601_525 = (4 << 16) /* 262144 */, + STANDARD_BT601_525_UNADJUSTED = (5 << 16) /* 327680 */, + STANDARD_BT2020 = (6 << 16) /* 393216 */, + STANDARD_BT2020_CONSTANT_LUMINANCE = (7 << 16) /* 458752 */, + STANDARD_BT470M = (8 << 16) /* 524288 */, + STANDARD_FILM = (9 << 16) /* 589824 */, + STANDARD_DCI_P3 = (10 << 16) /* 655360 */, + STANDARD_ADOBE_RGB = (11 << 16) /* 720896 */, + TRANSFER_SHIFT = 22, + TRANSFER_MASK = (31 << 22) /* 130023424 */, + TRANSFER_UNSPECIFIED = (0 << 22) /* 0 */, + TRANSFER_LINEAR = (1 << 22) /* 4194304 */, + TRANSFER_SRGB = (2 << 22) /* 8388608 */, + TRANSFER_SMPTE_170M = (3 << 22) /* 12582912 */, + TRANSFER_GAMMA2_2 = (4 << 22) /* 16777216 */, + TRANSFER_GAMMA2_6 = (5 << 22) /* 20971520 */, + TRANSFER_GAMMA2_8 = (6 << 22) /* 25165824 */, + TRANSFER_ST2084 = (7 << 22) /* 29360128 */, + TRANSFER_HLG = (8 << 22) /* 33554432 */, + RANGE_SHIFT = 27, + RANGE_MASK = (7 << 27) /* 939524096 */, + RANGE_UNSPECIFIED = (0 << 27) /* 0 */, + RANGE_FULL = (1 << 27) /* 134217728 */, + RANGE_LIMITED = (2 << 27) /* 268435456 */, + RANGE_EXTENDED = (3 << 27) /* 402653184 */, + SRGB_LINEAR = (((1 << 16) | (1 << 22)) | (1 << 27)) /* 138477568 */, + SCRGB_LINEAR = (((1 << 16) | (1 << 22)) | (3 << 27)) /* 406913024 */, + SRGB = (((1 << 16) | (2 << 22)) | (1 << 27)) /* 142671872 */, + SCRGB = (((1 << 16) | (2 << 22)) | (3 << 27)) /* 411107328 */, + JFIF = (((2 << 16) | (3 << 22)) | (1 << 27)) /* 146931712 */, + BT601_625 = (((2 << 16) | (3 << 22)) | (2 << 27)) /* 281149440 */, + BT601_525 = (((4 << 16) | (3 << 22)) | (2 << 27)) /* 281280512 */, + BT709 = (((1 << 16) | (3 << 22)) | (2 << 27)) /* 281083904 */, + DCI_P3_LINEAR = (((10 << 16) | (1 << 22)) | (1 << 27)) /* 139067392 */, + DCI_P3 = (((10 << 16) | (5 << 22)) | (1 << 27)) /* 155844608 */, + DISPLAY_P3_LINEAR = (((10 << 16) | (1 << 22)) | (1 << 27)) /* 139067392 */, + DISPLAY_P3 = (((10 << 16) | (2 << 22)) | (1 << 27)) /* 143261696 */, + ADOBE_RGB = (((11 << 16) | (4 << 22)) | (1 << 27)) /* 151715840 */, + ADOBE_RGB_LINEAR = (((11 << 16) | (1 << 22)) | (1 << 27)) /* 139132928 */, + BT2020_LINEAR = (((6 << 16) | (1 << 22)) | (1 << 27)) /* 138805248 */, + BT2020 = (((6 << 16) | (3 << 22)) | (1 << 27)) /* 147193856 */, + BT2020_PQ = (((6 << 16) | (7 << 22)) | (1 << 27)) /* 163971072 */, + BT2020_LINEAR_EXTENDED = (((6 << 16) | (1 << 22)) | (3 << 27)) /* 407240704 */, + DEPTH = 0x1000, + SENSOR = 0x1001, + BT2020_ITU = (((6 << 16) | (3 << 22)) | (2 << 27)) /* 281411584 */, + BT2020_ITU_PQ = (((6 << 16) | (7 << 22)) | (2 << 27)) /* 298188800 */, + BT2020_ITU_HLG = (((6 << 16) | (8 << 22)) | (2 << 27)) /* 302383104 */, + BT2020_HLG = (((6 << 16) | (8 << 22)) | (1 << 27)) /* 168165376 */, + DISPLAY_BT2020 = (((6 << 16) | (2 << 22)) | (1 << 27)) /* 142999552 */, + DYNAMIC_DEPTH = 0x1002, + JPEG_APP_SEGMENTS = 0x1003, + HEIF = 0x1004, + JPEG_R = 0x1005, + BT709_FULL_RANGE = (((1 << 16) | (3 << 22)) | (1 << 27)) /* 146866176 */, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayDecorationSupport.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayDecorationSupport.aidl new file mode 100644 index 0000000000000000000000000000000000000000..27eff764325448e1f65d19b02a55659e9ae05648 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayDecorationSupport.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2022, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable DisplayDecorationSupport { + android.hardware.graphics.common.PixelFormat format; + android.hardware.graphics.common.AlphaInterpretation alphaInterpretation; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayHotplugEvent.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayHotplugEvent.aidl new file mode 100644 index 0000000000000000000000000000000000000000..63dca0aab5d5ae9915215b89aaa772db5a968d23 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/DisplayHotplugEvent.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2023, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +@Backing(type="int") @VintfStability +enum DisplayHotplugEvent { + CONNECTED = 0, + DISCONNECTED = 1, + ERROR_UNKNOWN = (-1) /* -1 */, + ERROR_INCOMPATIBLE_CABLE = (-2) /* -2 */, + ERROR_TOO_MANY_DISPLAYS = (-3) /* -3 */, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ExtendableType.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ExtendableType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5ff17752f7c0ab4e12a2711dadc04642e1734a5d --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/ExtendableType.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable ExtendableType { + @utf8InCpp String name; + long value = 0; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/FRect.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/FRect.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7972e111e259526f056fd1f2e1049ac5cd871e26 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/FRect.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable FRect { + float left; + float top; + float right; + float bottom; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBuffer.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBuffer.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0fe949304cff79e09a9aaadb258e4b9cde02b349 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBuffer.aidl @@ -0,0 +1,43 @@ +/* + * Copyright 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/** + * @hide + * @deprecated : Use instead android.hardware.HardwareBuffer in frameworks/base + */ +@VintfStability +parcelable HardwareBuffer { + android.hardware.graphics.common.HardwareBufferDescription description; + android.hardware.common.NativeHandle handle; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBufferDescription.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBufferDescription.aidl new file mode 100644 index 0000000000000000000000000000000000000000..70f46a1e6c473a0e861d07c9883b06b81b7b4163 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HardwareBufferDescription.aidl @@ -0,0 +1,44 @@ +/* + * Copyright 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable HardwareBufferDescription { + int width; + int height; + int layers; + android.hardware.graphics.common.PixelFormat format = android.hardware.graphics.common.PixelFormat.UNSPECIFIED; + android.hardware.graphics.common.BufferUsage usage = android.hardware.graphics.common.BufferUsage.CPU_READ_NEVER; + int stride; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Hdr.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Hdr.aidl new file mode 100644 index 0000000000000000000000000000000000000000..71927b6fbf83064d96637a72f20c7feca3312984 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Hdr.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum Hdr { + INVALID = 0, + DOLBY_VISION = 1, + HDR10 = 2, + HLG = 3, + HDR10_PLUS = 4, + DOLBY_VISION_4K30 = 5, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionCapability.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionCapability.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b74f7d7ce55e609cfbf9c58f9cbd55d4862dab8d --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionCapability.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2022, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +@VintfStability +parcelable HdrConversionCapability { + android.hardware.graphics.common.Hdr sourceType; + android.hardware.graphics.common.Hdr outputType; + boolean addsLatency; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionStrategy.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionStrategy.aidl new file mode 100644 index 0000000000000000000000000000000000000000..db785cf63fdf639d20418ef0a217f3b14d87f66d --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/HdrConversionStrategy.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2022, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +@VintfStability +union HdrConversionStrategy { + boolean passthrough = true; + android.hardware.graphics.common.Hdr[] autoAllowedHdrTypes; + android.hardware.graphics.common.Hdr forceHdrConversion; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Interlaced.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Interlaced.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e04d2ab2bde3a1ac69a9c5deedf2c4c0c01f47b7 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Interlaced.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="long") @VintfStability +enum Interlaced { + NONE = 0, + TOP_BOTTOM = 1, + RIGHT_LEFT = 2, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PixelFormat.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PixelFormat.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ed84a44b4f026be55f070a63cf8d5a253294cbf3 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PixelFormat.aidl @@ -0,0 +1,71 @@ +/* + * Copyright 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum PixelFormat { + UNSPECIFIED = 0, + RGBA_8888 = 0x1, + RGBX_8888 = 0x2, + RGB_888 = 0x3, + RGB_565 = 0x4, + BGRA_8888 = 0x5, + YCBCR_422_SP = 0x10, + YCRCB_420_SP = 0x11, + YCBCR_422_I = 0x14, + RGBA_FP16 = 0x16, + RAW16 = 0x20, + BLOB = 0x21, + IMPLEMENTATION_DEFINED = 0x22, + YCBCR_420_888 = 0x23, + RAW_OPAQUE = 0x24, + RAW10 = 0x25, + RAW12 = 0x26, + RGBA_1010102 = 0x2B, + Y8 = 0x20203859, + Y16 = 0x20363159, + YV12 = 0x32315659, + DEPTH_16 = 0x30, + DEPTH_24 = 0x31, + DEPTH_24_STENCIL_8 = 0x32, + DEPTH_32F = 0x33, + DEPTH_32F_STENCIL_8 = 0x34, + STENCIL_8 = 0x35, + YCBCR_P010 = 0x36, + HSV_888 = 0x37, + R_8 = 0x38, + R_16_UINT = 0x39, + RG_1616_UINT = 0x3a, + RGBA_10101010 = 0x3b, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayout.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayout.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a09097511bf13153f9988841b2d484aaadbbf2ea --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayout.aidl @@ -0,0 +1,47 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable PlaneLayout { + android.hardware.graphics.common.PlaneLayoutComponent[] components; + long offsetInBytes; + long sampleIncrementInBits; + long strideInBytes; + long widthInSamples; + long heightInSamples; + long totalSizeInBytes; + long horizontalSubsampling; + long verticalSubsampling; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponent.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponent.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0768240bf51c25124b7df8e1e3fc2a610d8dab5a --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponent.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable PlaneLayoutComponent { + android.hardware.graphics.common.ExtendableType type; + long offsetInBits; + long sizeInBits; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponentType.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponentType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e3067515fdf2d9283c60e1f841f0a7730d232283 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/PlaneLayoutComponentType.aidl @@ -0,0 +1,46 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="long") @VintfStability +enum PlaneLayoutComponentType { + Y = (1 << 0) /* 1 */, + CB = (1 << 1) /* 2 */, + CR = (1 << 2) /* 4 */, + R = (1 << 10) /* 1024 */, + G = (1 << 11) /* 2048 */, + B = (1 << 12) /* 4096 */, + RAW = (1 << 20) /* 1048576 */, + A = (1 << 30) /* 1073741824 */, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Point.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Point.aidl new file mode 100644 index 0000000000000000000000000000000000000000..af4705a1e48e1b49428c6498c902dd5797478344 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Point.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable Point { + int x; + int y; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Rect.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Rect.aidl new file mode 100644 index 0000000000000000000000000000000000000000..463a68f973033fc9c9eef54c4ddb8bd29b9137b8 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Rect.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable Rect { + int left; + int top; + int right; + int bottom; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Smpte2086.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Smpte2086.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dce9226c096d874872d5f1daf8f200a2ef3b2845 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Smpte2086.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable Smpte2086 { + android.hardware.graphics.common.XyColor primaryRed; + android.hardware.graphics.common.XyColor primaryGreen; + android.hardware.graphics.common.XyColor primaryBlue; + android.hardware.graphics.common.XyColor whitePoint; + float maxLuminance; + float minLuminance; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/StandardMetadataType.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/StandardMetadataType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6e2e1063c397c7803d582ba031ffe442c3f61f56 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/StandardMetadataType.aidl @@ -0,0 +1,62 @@ +/** + * Copyright (c) 2019,libgralloctypes_helper The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="long") @VintfStability +enum StandardMetadataType { + INVALID = 0, + BUFFER_ID = 1, + NAME = 2, + WIDTH = 3, + HEIGHT = 4, + LAYER_COUNT = 5, + PIXEL_FORMAT_REQUESTED = 6, + PIXEL_FORMAT_FOURCC = 7, + PIXEL_FORMAT_MODIFIER = 8, + USAGE = 9, + ALLOCATION_SIZE = 10, + PROTECTED_CONTENT = 11, + COMPRESSION = 12, + INTERLACED = 13, + CHROMA_SITING = 14, + PLANE_LAYOUTS = 15, + CROP = 16, + DATASPACE = 17, + BLEND_MODE = 18, + SMPTE2086 = 19, + CTA861_3 = 20, + SMPTE2094_40 = 21, + SMPTE2094_10 = 22, + STRIDE = 23, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Transform.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Transform.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dbed57dae6b7644c701c75543ba517be4bad6028 --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/Transform.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@Backing(type="int") @VintfStability +enum Transform { + NONE = 0, + FLIP_H = (1 << 0) /* 1 */, + FLIP_V = (1 << 1) /* 2 */, + ROT_90 = (1 << 2) /* 4 */, + ROT_180 = (FLIP_H | FLIP_V) /* 3 */, + ROT_270 = ((FLIP_H | FLIP_V) | ROT_90) /* 7 */, +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/XyColor.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/XyColor.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e300f25dad81863abe5dfe9ebca592acdf7d827a --- /dev/null +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/5/android/hardware/graphics/common/XyColor.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2019, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.common; +/* @hide */ +@VintfStability +parcelable XyColor { + float x; + float y; +} diff --git a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/current/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/current/android/hardware/graphics/common/BufferUsage.aidl index d42a6d57b87e3455a7c8b18ec69a6c732f2fce6d..52b2a56cb7ea96592eab55c6f1f082a401ae6f13 100644 --- a/graphics/common/aidl/aidl_api/android.hardware.graphics.common/current/android/hardware/graphics/common/BufferUsage.aidl +++ b/graphics/common/aidl/aidl_api/android.hardware.graphics.common/current/android/hardware/graphics/common/BufferUsage.aidl @@ -60,6 +60,6 @@ enum BufferUsage { GPU_MIPMAP_COMPLETE = (1 << 26) /* 67108864 */, HW_IMAGE_ENCODER = (1 << 27) /* 134217728 */, FRONT_BUFFER = (1L << 32) /* 4294967296 */, - VENDOR_MASK = (0xf << 28) /* -268435456 */, + VENDOR_MASK = (0xfL << 28) /* 4026531840 */, VENDOR_MASK_HI = ((1L * 0xffff) << 48) /* -281474976710656 */, } diff --git a/graphics/common/aidl/android/hardware/graphics/common/BufferUsage.aidl b/graphics/common/aidl/android/hardware/graphics/common/BufferUsage.aidl index 0d1a094b3610263161733c7b6a5b3620d54ec90a..7d39d95753f08d3ee907a0441a2322c9cbf7cb3e 100644 --- a/graphics/common/aidl/android/hardware/graphics/common/BufferUsage.aidl +++ b/graphics/common/aidl/android/hardware/graphics/common/BufferUsage.aidl @@ -150,7 +150,7 @@ enum BufferUsage { FRONT_BUFFER = 1L << 32, /** bits 28-31 are reserved for vendor extensions */ - VENDOR_MASK = 0xf << 28, + VENDOR_MASK = 0xfL << 28, /** bits 33-47 must be zero and are reserved for future versions */ /** bits 48-63 are reserved for vendor extensions */ diff --git a/graphics/composer/2.1/Android.bp b/graphics/composer/2.1/Android.bp index 2e412086630e6e70f9b376cebf657c4a1c2e56fb..3c3575d6ab4d32f983c3b279bf957122533f60ca 100644 --- a/graphics/composer/2.1/Android.bp +++ b/graphics/composer/2.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/default/Android.bp b/graphics/composer/2.1/default/Android.bp index 96fea4e6cd39d0999feba24c9693760831c3e1ac..91d9b0d4dbf4457114f88c1ba3ff6b319aa9e513 100644 --- a/graphics/composer/2.1/default/Android.bp +++ b/graphics/composer/2.1/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/command-buffer/Android.bp b/graphics/composer/2.1/utils/command-buffer/Android.bp index 07dea31736f39e16dfbd7ba85dc163228d57bd75..224cea5b7e54ee463d71b9625d9ea29201128436 100644 --- a/graphics/composer/2.1/utils/command-buffer/Android.bp +++ b/graphics/composer/2.1/utils/command-buffer/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/hal/Android.bp b/graphics/composer/2.1/utils/hal/Android.bp index 874be84f4dff797048d243532de5f276bf1fabaa..9622c588c20fd30f5426d3c4ae49f892d73c956f 100644 --- a/graphics/composer/2.1/utils/hal/Android.bp +++ b/graphics/composer/2.1/utils/hal/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/hwc2on1adapter/Android.bp b/graphics/composer/2.1/utils/hwc2on1adapter/Android.bp index 3527cca07f7613bb7bea8c0940201279ea766646..fd002975bb1047e56cb7c3691bc47d543044f195 100644 --- a/graphics/composer/2.1/utils/hwc2on1adapter/Android.bp +++ b/graphics/composer/2.1/utils/hwc2on1adapter/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/hwc2onfbadapter/Android.bp b/graphics/composer/2.1/utils/hwc2onfbadapter/Android.bp index d613ba91129150ffaf200e5750e62531437c4675..ecf6201e2f1fda9b2f01f6658a0dcc23811cbf6c 100644 --- a/graphics/composer/2.1/utils/hwc2onfbadapter/Android.bp +++ b/graphics/composer/2.1/utils/hwc2onfbadapter/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/passthrough/Android.bp b/graphics/composer/2.1/utils/passthrough/Android.bp index 67f516399c651ef6b4b1188e8ffaa86e87a2a684..7bc32c06b7981c91a22550a0da5cc293841adb07 100644 --- a/graphics/composer/2.1/utils/passthrough/Android.bp +++ b/graphics/composer/2.1/utils/passthrough/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/resources/Android.bp b/graphics/composer/2.1/utils/resources/Android.bp index 9eb23fa82e830d22e7c63726a20dba6e7637ebc9..8705dee3aafd2c21227ac5b3a40b87cbc57e4cf0 100644 --- a/graphics/composer/2.1/utils/resources/Android.bp +++ b/graphics/composer/2.1/utils/resources/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/utils/vts/Android.bp b/graphics/composer/2.1/utils/vts/Android.bp index 3bc127f0a965ef0cefff2237810f3e0e42746f5b..9064475baa38b3415263c0fb101332224bc96826 100644 --- a/graphics/composer/2.1/utils/vts/Android.bp +++ b/graphics/composer/2.1/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/vts/functional/Android.bp b/graphics/composer/2.1/vts/functional/Android.bp index 0706341f2da435106f7e3e9eb9efc511d320f335..57a85d6c35d6fb23c39fcfe84e94406e5bc8fe75 100644 --- a/graphics/composer/2.1/vts/functional/Android.bp +++ b/graphics/composer/2.1/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp b/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp index b67cfc21146d699791b9a079239598a533aa79c7..a1992b9a7d66ac3bc21a77d578ff00fb505d8b94 100644 --- a/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp +++ b/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp @@ -315,6 +315,8 @@ TEST_P(GraphicsComposerHidlTest, GetDisplayType) { * required client targets. */ TEST_P(GraphicsComposerHidlTest, GetClientTargetSupport) { + ASSERT_NO_FATAL_FAILURE( + mComposerClient->setPowerMode(mPrimaryDisplay, IComposerClient::PowerMode::ON)); std::vector configs = mComposerClient->getDisplayConfigs(mPrimaryDisplay); for (auto config : configs) { int32_t width = mComposerClient->getDisplayAttribute(mPrimaryDisplay, config, diff --git a/graphics/composer/2.2/Android.bp b/graphics/composer/2.2/Android.bp index e44a236ba980c04709f695012b657532f86dc081..1f28ea30aa6635924a377e070ffb0218d00114b0 100644 --- a/graphics/composer/2.2/Android.bp +++ b/graphics/composer/2.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.2/utils/command-buffer/Android.bp b/graphics/composer/2.2/utils/command-buffer/Android.bp index d55145e48ccc8b500051a2580328968f47a6ada7..eae2242e17c2456fa704c68147143ee537e44ad2 100644 --- a/graphics/composer/2.2/utils/command-buffer/Android.bp +++ b/graphics/composer/2.2/utils/command-buffer/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.2/utils/hal/Android.bp b/graphics/composer/2.2/utils/hal/Android.bp index 4e028e034ee1cdde0c4cdba1baaf31019f651f9f..9194aa12f5d0af277ca91a13697fbd2827fa0984 100644 --- a/graphics/composer/2.2/utils/hal/Android.bp +++ b/graphics/composer/2.2/utils/hal/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.2/utils/passthrough/Android.bp b/graphics/composer/2.2/utils/passthrough/Android.bp index b7003446e74331c9eb9d3e818bbc609e552fd132..10e0b73fbdc14d942832ae25d64d7547c294c60a 100644 --- a/graphics/composer/2.2/utils/passthrough/Android.bp +++ b/graphics/composer/2.2/utils/passthrough/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.2/utils/resources/Android.bp b/graphics/composer/2.2/utils/resources/Android.bp index 9e45ef2bc4fd55a67b1e03992bfe491d501ffa8f..d1bf8c5c8664c77d0b63ed321065b1a96e316fa4 100644 --- a/graphics/composer/2.2/utils/resources/Android.bp +++ b/graphics/composer/2.2/utils/resources/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.2/utils/vts/Android.bp b/graphics/composer/2.2/utils/vts/Android.bp index a923923b3189bce6bb942c2ad8f47a5b85d444c7..7157862884707c5234a48e9dc4689a30cbdb5d42 100644 --- a/graphics/composer/2.2/utils/vts/Android.bp +++ b/graphics/composer/2.2/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -37,6 +38,7 @@ cc_library_static { ], shared_libs: [ "libui", + "server_configurable_flags", ], static_libs: [ "android.hardware.graphics.composer@2.1-vts", @@ -47,6 +49,7 @@ cc_library_static { "libnativewindow", "librenderengine", "libshaders", + "libsurfaceflinger_common", "libtonemap", ], export_static_lib_headers: [ diff --git a/graphics/composer/2.2/vts/functional/Android.bp b/graphics/composer/2.2/vts/functional/Android.bp index a781712783c5de20a7b3af04774e3341b3aebbea..bda41981adf8221da6fd9813609e8db39817854c 100644 --- a/graphics/composer/2.2/vts/functional/Android.bp +++ b/graphics/composer/2.2/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -53,6 +54,7 @@ cc_test { "libsync", "libui", "android.hardware.common-V2-ndk", + "server_configurable_flags", ], static_libs: [ "android.hardware.graphics.common@1.1", @@ -65,6 +67,7 @@ cc_test { "librenderengine", "libshaders", "libtonemap", + "libsurfaceflinger_common", ], header_libs: [ "android.hardware.graphics.composer@2.1-command-buffer", diff --git a/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp b/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp index 2bd287b29dfd2e949269e27c0dcbeeab79ab0204..cd4cb58aed90f02347f894e830ea8f444a1cce68 100644 --- a/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp +++ b/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp @@ -256,6 +256,8 @@ TEST_P(GraphicsComposerHidlTest, CreateVirtualDisplay_2_2) { * required client targets. */ TEST_P(GraphicsComposerHidlTest, GetClientTargetSupport_2_2) { + ASSERT_NO_FATAL_FAILURE( + mComposerClient->setPowerMode_2_2(mPrimaryDisplay, IComposerClient::PowerMode::ON)); std::vector configs = mComposerClient->getDisplayConfigs(mPrimaryDisplay); for (auto config : configs) { int32_t width = mComposerClient->getDisplayAttribute(mPrimaryDisplay, config, diff --git a/graphics/composer/2.3/Android.bp b/graphics/composer/2.3/Android.bp index 3c52b6f0d5d884b500cd0212b989d7b703c52a71..47a09657cf1a6186483c24c605d1a1e2835df3dd 100644 --- a/graphics/composer/2.3/Android.bp +++ b/graphics/composer/2.3/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/default/Android.bp b/graphics/composer/2.3/default/Android.bp index f801fbadfa480bd22e1cc83728e921501462d7cb..bffe6327253249acf64ba202356399e33b66b4ac 100644 --- a/graphics/composer/2.3/default/Android.bp +++ b/graphics/composer/2.3/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/utils/command-buffer/Android.bp b/graphics/composer/2.3/utils/command-buffer/Android.bp index ca7d136edc5fcdc3d294883ad6ccbc0827e96e57..16945093b4d6ac7bdfea8b020e7a80de53211b78 100644 --- a/graphics/composer/2.3/utils/command-buffer/Android.bp +++ b/graphics/composer/2.3/utils/command-buffer/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/utils/hal/Android.bp b/graphics/composer/2.3/utils/hal/Android.bp index b47575765872f25442f4a8e105b2f8c69c88166e..eb854c3fb915a4555e5bf67778795bfee68e366f 100644 --- a/graphics/composer/2.3/utils/hal/Android.bp +++ b/graphics/composer/2.3/utils/hal/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/utils/passthrough/Android.bp b/graphics/composer/2.3/utils/passthrough/Android.bp index 68b706cdc16afef560e963128a28c22effda43b5..7bf54e5838a4b3b308d8610bd96e51fea5497f62 100644 --- a/graphics/composer/2.3/utils/passthrough/Android.bp +++ b/graphics/composer/2.3/utils/passthrough/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/utils/vts/Android.bp b/graphics/composer/2.3/utils/vts/Android.bp index 99429db887aa3a39fbe5faa7b2f776d278724f77..7695523c781765d0fe7f7e5f3505642f68894163 100644 --- a/graphics/composer/2.3/utils/vts/Android.bp +++ b/graphics/composer/2.3/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/vts/functional/Android.bp b/graphics/composer/2.3/vts/functional/Android.bp index 0d3c27df02d9a7d419de9d8a63e542f77aecd0e1..db0326e61a333a1c53605a357f28ca4efcbc7e23 100644 --- a/graphics/composer/2.3/vts/functional/Android.bp +++ b/graphics/composer/2.3/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp b/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp index c072ef08a94fb9254bb12413567c98806fb85ac8..f99c72d7b5f29f97363eb0a6104ac1b6a4b156eb 100644 --- a/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp +++ b/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp @@ -274,6 +274,8 @@ TEST_P(GraphicsComposerHidlTest, GetReadbackBufferAttributes_2_3) { * Test IComposerClient::getClientTargetSupport_2_3 */ TEST_P(GraphicsComposerHidlTest, GetClientTargetSupport_2_3) { + ASSERT_NO_FATAL_FAILURE( + mComposerClient->setPowerMode_2_2(mPrimaryDisplay, IComposerClient::PowerMode::ON)); std::vector configs = mComposerClient->getDisplayConfigs(mPrimaryDisplay); for (auto config : configs) { int32_t width = mComposerClient->getDisplayAttribute(mPrimaryDisplay, config, diff --git a/graphics/composer/2.4/Android.bp b/graphics/composer/2.4/Android.bp index e6b238ba9fae8f430520e1b8cf6c26b150795adc..748faf6f7f423d692747e9b98baa3b4fef83b543 100644 --- a/graphics/composer/2.4/Android.bp +++ b/graphics/composer/2.4/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.4/default/Android.bp b/graphics/composer/2.4/default/Android.bp index 7a91ec1f111d341819fc86e651bfe108e2c82666..a9b6d4e91ff8ccdd87aa5e119d6c37b914370482 100644 --- a/graphics/composer/2.4/default/Android.bp +++ b/graphics/composer/2.4/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.4/utils/command-buffer/Android.bp b/graphics/composer/2.4/utils/command-buffer/Android.bp index c966fc4171b5ed2f9df567fb97e13ee1e484eeb1..608b0041391fde80663edf16eddd814a22402d76 100644 --- a/graphics/composer/2.4/utils/command-buffer/Android.bp +++ b/graphics/composer/2.4/utils/command-buffer/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.4/utils/hal/Android.bp b/graphics/composer/2.4/utils/hal/Android.bp index abf8e0450b91a0ddb29a2386a03f3970f3ec97db..c90a79d987d72ba6caf744a28125ac0a5ed15158 100644 --- a/graphics/composer/2.4/utils/hal/Android.bp +++ b/graphics/composer/2.4/utils/hal/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.4/utils/passthrough/Android.bp b/graphics/composer/2.4/utils/passthrough/Android.bp index a851c0a081b890e5bea95a0943159bdeaf6bdf60..867f8cbffb544d1fb2c48c2518175ede3c09a4a6 100644 --- a/graphics/composer/2.4/utils/passthrough/Android.bp +++ b/graphics/composer/2.4/utils/passthrough/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.4/utils/vts/Android.bp b/graphics/composer/2.4/utils/vts/Android.bp index c39b5eb1d18bdb13673bcb0544e5e59b7317eff6..d2f4297671e25f3a867258ea2ad280083d379fe7 100644 --- a/graphics/composer/2.4/utils/vts/Android.bp +++ b/graphics/composer/2.4/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/2.4/vts/functional/Android.bp b/graphics/composer/2.4/vts/functional/Android.bp index 52624b4dec774f8f0f56655b1038348ebf8b551c..225c73bead91a36d2feb962764534619944762ab 100644 --- a/graphics/composer/2.4/vts/functional/Android.bp +++ b/graphics/composer/2.4/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/composer/aidl/Android.bp b/graphics/composer/aidl/Android.bp index 5699895693b7fae684db94221a8181ced0e82592..87ecb16a2f7eefec4b61dc1731a88a8c6a85fa4b 100644 --- a/graphics/composer/aidl/Android.bp +++ b/graphics/composer/aidl/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -31,7 +32,7 @@ aidl_interface { enabled: true, support_system_process: true, }, - frozen: false, + frozen: true, vndk_use_version: "1", srcs: [ "android/hardware/graphics/composer3/*.aidl", @@ -73,6 +74,13 @@ aidl_interface { "android.hardware.common-V2", ], }, + { + version: "3", + imports: [ + "android.hardware.graphics.common-V5", + "android.hardware.common-V2", + ], + }, ], diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/.hash b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..f64da11395422b725d6739cf9cf94c9bb0190fb5 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/.hash @@ -0,0 +1 @@ +d24fcd9648b8b2e7287f9238eee9180244612c10 diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Buffer.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Buffer.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a33ad23323838cc66c87541fc7b7de77d2c63c19 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Buffer.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable Buffer { + int slot; + @nullable android.hardware.common.NativeHandle handle; + @nullable ParcelFileDescriptor fence; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Capability.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Capability.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ee004d6ef29950b48e359df30badfd6b4d97492b --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Capability.aidl @@ -0,0 +1,49 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum Capability { + INVALID = 0, + SIDEBAND_STREAM = 1, + SKIP_CLIENT_COLOR_TRANSFORM = 2, + PRESENT_FENCE_IS_NOT_RELIABLE = 3, + /** + * @deprecated - enabled by default. + */ + SKIP_VALIDATE = 4, + BOOT_DISPLAY_CONFIG = 5, + HDR_OUTPUT_CONVERSION_CONFIG = 6, + REFRESH_RATE_CHANGED_CALLBACK_DEBUG = 7, + LAYER_LIFECYCLE_BATCH_COMMAND = 8, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionLayer.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionLayer.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7e47ba8b5efb11c94f3eb73e6e18b9196b8d5922 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionLayer.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ChangedCompositionLayer { + long layer; + android.hardware.graphics.composer3.Composition composition; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionTypes.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionTypes.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9a5ca9700da2fa0601d906e9b7ec8817b6bed498 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ChangedCompositionTypes.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ChangedCompositionTypes { + long display; + android.hardware.graphics.composer3.ChangedCompositionLayer[] layers; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTarget.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTarget.aidl new file mode 100644 index 0000000000000000000000000000000000000000..06ed922e94e3408a2a3c87766f7d1ccc81fe0168 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTarget.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ClientTarget { + android.hardware.graphics.composer3.Buffer buffer; + android.hardware.graphics.common.Dataspace dataspace; + android.hardware.graphics.common.Rect[] damage; + float hdrSdrRatio = 1.0f; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetProperty.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetProperty.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d34d1b0ab88303ac3c3c998bc2337ab005741c62 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetProperty.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ClientTargetProperty { + android.hardware.graphics.common.PixelFormat pixelFormat; + android.hardware.graphics.common.Dataspace dataspace; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetPropertyWithBrightness.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetPropertyWithBrightness.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8fb6933c95023294e7153fe649dd6bca28eab06c --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClientTargetPropertyWithBrightness.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ClientTargetPropertyWithBrightness { + long display; + android.hardware.graphics.composer3.ClientTargetProperty clientTargetProperty; + float brightness; + android.hardware.graphics.composer3.DimmingStage dimmingStage; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClockMonotonicTimestamp.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClockMonotonicTimestamp.aidl new file mode 100644 index 0000000000000000000000000000000000000000..480a85c27f26e26ec10c3868442b1d1c26f0656b --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ClockMonotonicTimestamp.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ClockMonotonicTimestamp { + long timestampNanos; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Color.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Color.aidl new file mode 100644 index 0000000000000000000000000000000000000000..822290908effe3c889938f40d647ba8518e20051 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Color.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable Color { + float r; + float g; + float b; + float a; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ColorMode.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ColorMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..53852b62703b3f6583feffd602ec1c76a0064be8 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ColorMode.aidl @@ -0,0 +1,51 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum ColorMode { + NATIVE = 0, + STANDARD_BT601_625 = 1, + STANDARD_BT601_625_UNADJUSTED = 2, + STANDARD_BT601_525 = 3, + STANDARD_BT601_525_UNADJUSTED = 4, + STANDARD_BT709 = 5, + DCI_P3 = 6, + SRGB = 7, + ADOBE_RGB = 8, + DISPLAY_P3 = 9, + BT2020 = 10, + BT2100_PQ = 11, + BT2100_HLG = 12, + DISPLAY_BT2020 = 13, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandError.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandError.aidl new file mode 100644 index 0000000000000000000000000000000000000000..103bfdc6899187b5628ac8261770e829d47fb4aa --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandError.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable CommandError { + int commandIndex; + int errorCode; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandResultPayload.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandResultPayload.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6892f061806d92acb4a9f69b989c1f7e6ab987bd --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/CommandResultPayload.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +union CommandResultPayload { + android.hardware.graphics.composer3.CommandError error; + android.hardware.graphics.composer3.ChangedCompositionTypes changedCompositionTypes; + android.hardware.graphics.composer3.DisplayRequest displayRequest; + android.hardware.graphics.composer3.PresentFence presentFence; + android.hardware.graphics.composer3.ReleaseFences releaseFences; + android.hardware.graphics.composer3.PresentOrValidate presentOrValidateResult; + android.hardware.graphics.composer3.ClientTargetPropertyWithBrightness clientTargetProperty; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Composition.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Composition.aidl new file mode 100644 index 0000000000000000000000000000000000000000..34d6822148b776bdc1f7c6972cdc13632c75644a --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/Composition.aidl @@ -0,0 +1,45 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum Composition { + INVALID = 0, + CLIENT = 1, + DEVICE = 2, + SOLID_COLOR = 3, + CURSOR = 4, + SIDEBAND = 5, + DISPLAY_DECORATION = 6, + REFRESH_RATE_INDICATOR = 7, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ContentType.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ContentType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d87b7670dd599f3603804ef20a8a83068c6d86e1 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ContentType.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum ContentType { + NONE = 0, + GRAPHICS = 1, + PHOTO = 2, + CINEMA = 3, + GAME = 4, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DimmingStage.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DimmingStage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..44457f8ec1911ca75b1a76ca7a9cb13f37e8b7ad --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DimmingStage.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2022, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum DimmingStage { + NONE = 0, + LINEAR = 1, + GAMMA_OETF = 2, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayAttribute.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayAttribute.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8454c40dbe3d62b7de3c11e29d03dc27b3e1c2f6 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayAttribute.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum DisplayAttribute { + INVALID = 0, + WIDTH = 1, + HEIGHT = 2, + VSYNC_PERIOD = 3, + DPI_X = 4, + DPI_Y = 5, + CONFIG_GROUP = 7, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayBrightness.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayBrightness.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e765189b96ff8032743caced34cafc12cb975652 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayBrightness.aidl @@ -0,0 +1,39 @@ +/** + * Copyright 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayBrightness { + float brightness; + float brightnessNits; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCapability.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCapability.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0e2d72bae0b568f00eb34b449363b341e471b1da --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCapability.aidl @@ -0,0 +1,46 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum DisplayCapability { + INVALID = 0, + SKIP_CLIENT_COLOR_TRANSFORM = 1, + DOZE = 2, + BRIGHTNESS = 3, + PROTECTED_CONTENTS = 4, + AUTO_LOW_LATENCY_MODE = 5, + SUSPEND = 6, + DISPLAY_IDLE_TIMER = 7, + MULTI_THREADED_PRESENT = 8, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCommand.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCommand.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cce35e79ab78edc8a3df45bbc0602399793ec4c9 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayCommand.aidl @@ -0,0 +1,49 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayCommand { + long display; + android.hardware.graphics.composer3.LayerCommand[] layers; + @nullable float[] colorTransformMatrix; + @nullable android.hardware.graphics.composer3.DisplayBrightness brightness; + @nullable android.hardware.graphics.composer3.ClientTarget clientTarget; + @nullable android.hardware.graphics.composer3.Buffer virtualDisplayOutputBuffer; + @nullable android.hardware.graphics.composer3.ClockMonotonicTimestamp expectedPresentTime; + boolean validateDisplay; + boolean acceptDisplayChanges; + boolean presentDisplay; + boolean presentOrValidateDisplay; + int frameIntervalNs; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConfiguration.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..040afd786651f2beec4d660377dfeb7056e92555 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConfiguration.aidl @@ -0,0 +1,48 @@ +/** + * Copyright 2023, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayConfiguration { + int configId; + int width; + int height; + @nullable android.hardware.graphics.composer3.DisplayConfiguration.Dpi dpi; + int configGroup; + int vsyncPeriod; + @nullable android.hardware.graphics.composer3.VrrConfig vrrConfig; + parcelable Dpi { + float x; + float y; + } +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConnectionType.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConnectionType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..640f82a0cdfe573565370df4cda76403909a7721 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayConnectionType.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum DisplayConnectionType { + INTERNAL = 0, + EXTERNAL = 1, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSample.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSample.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c62453634f8908a273821b366264f51728fc4d20 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSample.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayContentSample { + long frameCount; + long[] sampleComponent0; + long[] sampleComponent1; + long[] sampleComponent2; + long[] sampleComponent3; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSamplingAttributes.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSamplingAttributes.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7c6542f52733af85d2cba5e670fdcf0f2a8014a7 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayContentSamplingAttributes.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayContentSamplingAttributes { + android.hardware.graphics.common.PixelFormat format; + android.hardware.graphics.common.Dataspace dataspace; + android.hardware.graphics.composer3.FormatColorComponent componentMask; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayIdentification.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayIdentification.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a0cc9b097b2227a903cd4f1937b31bcb15b389cb --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayIdentification.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayIdentification { + byte port; + byte[] data; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayRequest.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e6db1163989e10da4a4c235c94c058c803c29416 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/DisplayRequest.aidl @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable DisplayRequest { + long display; + int mask; + android.hardware.graphics.composer3.DisplayRequest.LayerRequest[] layerRequests; + const int FLIP_CLIENT_TARGET = (1 << 0) /* 1 */; + const int WRITE_CLIENT_TARGET_TO_OUTPUT = (1 << 1) /* 2 */; + @VintfStability + parcelable LayerRequest { + long layer; + int mask; + const int CLEAR_CLIENT_TARGET = (1 << 0) /* 1 */; + } +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/FormatColorComponent.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/FormatColorComponent.aidl new file mode 100644 index 0000000000000000000000000000000000000000..89dae83bbe539df7241d97d7cdc8f2185666b252 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/FormatColorComponent.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="byte") @VintfStability +enum FormatColorComponent { + FORMAT_COMPONENT_0 = (1 << 0) /* 1 */, + FORMAT_COMPONENT_1 = (1 << 1) /* 2 */, + FORMAT_COMPONENT_2 = (1 << 2) /* 4 */, + FORMAT_COMPONENT_3 = (1 << 3) /* 8 */, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/HdrCapabilities.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/HdrCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..80141d3543028198dedae28407a14c7551965893 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/HdrCapabilities.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable HdrCapabilities { + android.hardware.graphics.common.Hdr[] types; + float maxLuminance; + float maxAverageLuminance; + float minLuminance; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposer.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposer.aidl new file mode 100644 index 0000000000000000000000000000000000000000..21b9ad88cd68151afdcad91d15ca8b996aa914b5 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposer.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +interface IComposer { + android.hardware.graphics.composer3.IComposerClient createClient(); + android.hardware.graphics.composer3.Capability[] getCapabilities(); + const int EX_NO_RESOURCES = 6; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerCallback.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e64bd5273ee1e90f42e0a2035e385fe44f6314f9 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerCallback.aidl @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +interface IComposerCallback { + /** + * @deprecated : Use instead onHotplugEvent + */ + void onHotplug(long display, boolean connected); + oneway void onRefresh(long display); + oneway void onSeamlessPossible(long display); + oneway void onVsync(long display, long timestamp, int vsyncPeriodNanos); + oneway void onVsyncPeriodTimingChanged(long display, in android.hardware.graphics.composer3.VsyncPeriodChangeTimeline updatedTimeline); + oneway void onVsyncIdle(long display); + oneway void onRefreshRateChangedDebug(in android.hardware.graphics.composer3.RefreshRateChangedDebugData data); + void onHotplugEvent(long display, android.hardware.graphics.common.DisplayHotplugEvent event); +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerClient.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerClient.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bc27cc7ec4450d44fcac06140904eab15836957f --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/IComposerClient.aidl @@ -0,0 +1,101 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +interface IComposerClient { + long createLayer(long display, int bufferSlotCount); + android.hardware.graphics.composer3.VirtualDisplay createVirtualDisplay(int width, int height, android.hardware.graphics.common.PixelFormat formatHint, int outputBufferSlotCount); + void destroyLayer(long display, long layer); + void destroyVirtualDisplay(long display); + android.hardware.graphics.composer3.CommandResultPayload[] executeCommands(in android.hardware.graphics.composer3.DisplayCommand[] commands); + int getActiveConfig(long display); + android.hardware.graphics.composer3.ColorMode[] getColorModes(long display); + float[] getDataspaceSaturationMatrix(android.hardware.graphics.common.Dataspace dataspace); + /** + * @deprecated use getDisplayConfigurations instead. Returns a display attribute value for a particular display configuration. For legacy support getDisplayAttribute should return valid values for any requested DisplayAttribute, and for all of the configs obtained either through getDisplayConfigs or getDisplayConfigurations. + */ + int getDisplayAttribute(long display, int config, android.hardware.graphics.composer3.DisplayAttribute attribute); + android.hardware.graphics.composer3.DisplayCapability[] getDisplayCapabilities(long display); + /** + * @deprecated use getDisplayConfigurations instead. For legacy support getDisplayConfigs should return at least one valid config. All the configs returned from the getDisplayConfigs should also be returned from getDisplayConfigurations. + */ + int[] getDisplayConfigs(long display); + android.hardware.graphics.composer3.DisplayConnectionType getDisplayConnectionType(long display); + android.hardware.graphics.composer3.DisplayIdentification getDisplayIdentificationData(long display); + String getDisplayName(long display); + int getDisplayVsyncPeriod(long display); + android.hardware.graphics.composer3.DisplayContentSample getDisplayedContentSample(long display, long maxFrames, long timestamp); + android.hardware.graphics.composer3.DisplayContentSamplingAttributes getDisplayedContentSamplingAttributes(long display); + android.hardware.graphics.common.Transform getDisplayPhysicalOrientation(long display); + android.hardware.graphics.composer3.HdrCapabilities getHdrCapabilities(long display); + int getMaxVirtualDisplayCount(); + android.hardware.graphics.composer3.PerFrameMetadataKey[] getPerFrameMetadataKeys(long display); + android.hardware.graphics.composer3.ReadbackBufferAttributes getReadbackBufferAttributes(long display); + @nullable ParcelFileDescriptor getReadbackBufferFence(long display); + android.hardware.graphics.composer3.RenderIntent[] getRenderIntents(long display, android.hardware.graphics.composer3.ColorMode mode); + android.hardware.graphics.composer3.ContentType[] getSupportedContentTypes(long display); + @nullable android.hardware.graphics.common.DisplayDecorationSupport getDisplayDecorationSupport(long display); + void registerCallback(in android.hardware.graphics.composer3.IComposerCallback callback); + void setActiveConfig(long display, int config); + android.hardware.graphics.composer3.VsyncPeriodChangeTimeline setActiveConfigWithConstraints(long display, int config, in android.hardware.graphics.composer3.VsyncPeriodChangeConstraints vsyncPeriodChangeConstraints); + void setBootDisplayConfig(long display, int config); + void clearBootDisplayConfig(long display); + int getPreferredBootDisplayConfig(long display); + void setAutoLowLatencyMode(long display, boolean on); + void setClientTargetSlotCount(long display, int clientTargetSlotCount); + void setColorMode(long display, android.hardware.graphics.composer3.ColorMode mode, android.hardware.graphics.composer3.RenderIntent intent); + void setContentType(long display, android.hardware.graphics.composer3.ContentType type); + void setDisplayedContentSamplingEnabled(long display, boolean enable, android.hardware.graphics.composer3.FormatColorComponent componentMask, long maxFrames); + void setPowerMode(long display, android.hardware.graphics.composer3.PowerMode mode); + void setReadbackBuffer(long display, in android.hardware.common.NativeHandle buffer, in @nullable ParcelFileDescriptor releaseFence); + void setVsyncEnabled(long display, boolean enabled); + void setIdleTimerEnabled(long display, int timeoutMs); + android.hardware.graphics.composer3.OverlayProperties getOverlaySupport(); + android.hardware.graphics.common.HdrConversionCapability[] getHdrConversionCapabilities(); + android.hardware.graphics.common.Hdr setHdrConversionStrategy(in android.hardware.graphics.common.HdrConversionStrategy conversionStrategy); + void setRefreshRateChangedCallbackDebugEnabled(long display, boolean enabled); + android.hardware.graphics.composer3.DisplayConfiguration[] getDisplayConfigurations(long display, int maxFrameIntervalNs); + oneway void notifyExpectedPresent(long display, in android.hardware.graphics.composer3.ClockMonotonicTimestamp expectedPresentTime, int frameIntervalNs); + const int EX_BAD_CONFIG = 1; + const int EX_BAD_DISPLAY = 2; + const int EX_BAD_LAYER = 3; + const int EX_BAD_PARAMETER = 4; + const int EX_RESERVED = 5; + const int EX_NO_RESOURCES = 6; + const int EX_NOT_VALIDATED = 7; + const int EX_UNSUPPORTED = 8; + const int EX_SEAMLESS_NOT_ALLOWED = 9; + const int EX_SEAMLESS_NOT_POSSIBLE = 10; + const int INVALID_CONFIGURATION = 0x7fffffff; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerBrightness.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerBrightness.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a726cc12bf246c836860ed1c0b1a11c40e712090 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerBrightness.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable LayerBrightness { + float brightness; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerCommand.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerCommand.aidl new file mode 100644 index 0000000000000000000000000000000000000000..87c8c184438e4c7329c3ea06654843feddab656f --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerCommand.aidl @@ -0,0 +1,60 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable LayerCommand { + long layer; + @nullable android.hardware.graphics.common.Point cursorPosition; + @nullable android.hardware.graphics.composer3.Buffer buffer; + @nullable android.hardware.graphics.common.Rect[] damage; + @nullable android.hardware.graphics.composer3.ParcelableBlendMode blendMode; + @nullable android.hardware.graphics.composer3.Color color; + @nullable android.hardware.graphics.composer3.ParcelableComposition composition; + @nullable android.hardware.graphics.composer3.ParcelableDataspace dataspace; + @nullable android.hardware.graphics.common.Rect displayFrame; + @nullable android.hardware.graphics.composer3.PlaneAlpha planeAlpha; + @nullable android.hardware.common.NativeHandle sidebandStream; + @nullable android.hardware.graphics.common.FRect sourceCrop; + @nullable android.hardware.graphics.composer3.ParcelableTransform transform; + @nullable android.hardware.graphics.common.Rect[] visibleRegion; + @nullable android.hardware.graphics.composer3.ZOrder z; + @nullable float[] colorTransform; + @nullable android.hardware.graphics.composer3.LayerBrightness brightness; + @nullable android.hardware.graphics.composer3.PerFrameMetadata[] perFrameMetadata; + @nullable android.hardware.graphics.composer3.PerFrameMetadataBlob[] perFrameMetadataBlob; + @nullable android.hardware.graphics.common.Rect[] blockingRegion; + @nullable int[] bufferSlotsToClear; + android.hardware.graphics.composer3.LayerLifecycleBatchCommandType layerLifecycleBatchCommandType; + int newBufferSlotCount; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ac78cd51f9443d67e73366d13586ddb6d6a77bf6 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2023, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum LayerLifecycleBatchCommandType { + MODIFY = 0, + CREATE = 1, + DESTROY = 2, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/OverlayProperties.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/OverlayProperties.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7d31ea3b1e3d01f8b16add069ba5a64a030d8c06 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/OverlayProperties.aidl @@ -0,0 +1,45 @@ +/** + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable OverlayProperties { + android.hardware.graphics.composer3.OverlayProperties.SupportedBufferCombinations[] combinations; + boolean supportMixedColorSpaces; + parcelable SupportedBufferCombinations { + android.hardware.graphics.common.PixelFormat[] pixelFormats; + android.hardware.graphics.common.Dataspace[] standards; + android.hardware.graphics.common.Dataspace[] transfers; + android.hardware.graphics.common.Dataspace[] ranges; + } +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableBlendMode.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableBlendMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f1fee5f376164b84a86b5e1ee8c2388f6f972712 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableBlendMode.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ParcelableBlendMode { + android.hardware.graphics.common.BlendMode blendMode; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableComposition.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableComposition.aidl new file mode 100644 index 0000000000000000000000000000000000000000..98fbb665e2c552c360c33f12ed127ef1c76a6bb6 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableComposition.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ParcelableComposition { + android.hardware.graphics.composer3.Composition composition; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableDataspace.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableDataspace.aidl new file mode 100644 index 0000000000000000000000000000000000000000..76ecf85b9fce89e1bc74e46c2bdf5179e102b263 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableDataspace.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ParcelableDataspace { + android.hardware.graphics.common.Dataspace dataspace; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableTransform.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableTransform.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b673656438560bce36c6aa10f3a34ea475256b1d --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ParcelableTransform.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ParcelableTransform { + android.hardware.graphics.common.Transform transform; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadata.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadata.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cd1f3513810a3ceaf90b1eba0697c8255b2b47c7 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadata.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable PerFrameMetadata { + android.hardware.graphics.composer3.PerFrameMetadataKey key; + float value; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataBlob.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataBlob.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c1e74d9e3dc55bf6ac2aa48da1d088d21aa4189a --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataBlob.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable PerFrameMetadataBlob { + android.hardware.graphics.composer3.PerFrameMetadataKey key; + byte[] blob; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataKey.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataKey.aidl new file mode 100644 index 0000000000000000000000000000000000000000..10a7deef0a96316005f30c4d3ae854a6b80d37a7 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PerFrameMetadataKey.aidl @@ -0,0 +1,50 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum PerFrameMetadataKey { + DISPLAY_RED_PRIMARY_X, + DISPLAY_RED_PRIMARY_Y, + DISPLAY_GREEN_PRIMARY_X, + DISPLAY_GREEN_PRIMARY_Y, + DISPLAY_BLUE_PRIMARY_X, + DISPLAY_BLUE_PRIMARY_Y, + WHITE_POINT_X, + WHITE_POINT_Y, + MAX_LUMINANCE, + MIN_LUMINANCE, + MAX_CONTENT_LIGHT_LEVEL, + MAX_FRAME_AVERAGE_LIGHT_LEVEL, + HDR10_PLUS_SEI, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PlaneAlpha.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PlaneAlpha.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c48c2a8a34336258ea5bb9891d896fcd8e7f06ad --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PlaneAlpha.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable PlaneAlpha { + float alpha; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PowerMode.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PowerMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f587d4dfa8e39d2befdeed92d04fa2d4fd856bfd --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PowerMode.aidl @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum PowerMode { + OFF = 0, + DOZE = 1, + DOZE_SUSPEND = 3, + ON = 2, + ON_SUSPEND = 4, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentFence.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentFence.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3bb09cdb34022964b5d15073c9b77ffb994ab7e0 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentFence.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable PresentFence { + long display; + ParcelFileDescriptor fence; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentOrValidate.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentOrValidate.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dbfac2259df7ef4f71d8252de601a2468b7a094e --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/PresentOrValidate.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable PresentOrValidate { + long display; + android.hardware.graphics.composer3.PresentOrValidate.Result result; + @VintfStability + enum Result { + Validated, + Presented, + } +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReadbackBufferAttributes.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReadbackBufferAttributes.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bb51bdc04a703dd0215e7c859097fe3aab585be4 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReadbackBufferAttributes.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ReadbackBufferAttributes { + android.hardware.graphics.common.PixelFormat format; + android.hardware.graphics.common.Dataspace dataspace; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RefreshRateChangedDebugData.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RefreshRateChangedDebugData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e9305e152c7aef6ebbdfeeb2036534d4006b33db --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RefreshRateChangedDebugData.aidl @@ -0,0 +1,40 @@ +/** + * Copyright 2023, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable RefreshRateChangedDebugData { + long display; + int vsyncPeriodNanos; + int refreshPeriodNanos; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReleaseFences.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReleaseFences.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d62366125000faa295f040039e563374ffd294f5 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ReleaseFences.aidl @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ReleaseFences { + long display; + android.hardware.graphics.composer3.ReleaseFences.Layer[] layers; + @VintfStability + parcelable Layer { + long layer; + ParcelFileDescriptor fence; + } +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RenderIntent.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RenderIntent.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5670c106555550ca07da61a0a6f9d12cdbae07a0 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/RenderIntent.aidl @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@Backing(type="int") @VintfStability +enum RenderIntent { + COLORIMETRIC = 0, + ENHANCE = 1, + TONE_MAP_COLORIMETRIC = 2, + TONE_MAP_ENHANCE = 3, +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VirtualDisplay.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VirtualDisplay.aidl new file mode 100644 index 0000000000000000000000000000000000000000..886be2e3d0526899228a4e6d8a363824563bfd5d --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VirtualDisplay.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable VirtualDisplay { + long display; + android.hardware.graphics.common.PixelFormat format; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VrrConfig.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VrrConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7377b4b3e5455198fbfa304dd2971da05f0d9aa4 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VrrConfig.aidl @@ -0,0 +1,48 @@ +/** + * Copyright 2023, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable VrrConfig { + int minFrameIntervalNs; + @nullable android.hardware.graphics.composer3.VrrConfig.FrameIntervalPowerHint[] frameIntervalPowerHints; + @nullable android.hardware.graphics.composer3.VrrConfig.NotifyExpectedPresentConfig notifyExpectedPresentConfig; + parcelable FrameIntervalPowerHint { + int frameIntervalNs; + int averageRefreshPeriodNs; + } + parcelable NotifyExpectedPresentConfig { + int headsUpNs; + int timeoutNs; + } +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeConstraints.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeConstraints.aidl new file mode 100644 index 0000000000000000000000000000000000000000..df38c11f5851e6f233e68747262b00b9b4050a0d --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeConstraints.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable VsyncPeriodChangeConstraints { + long desiredTimeNanos; + boolean seamlessRequired; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeTimeline.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeTimeline.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9fb3999e3e0ca7a7049497288850165a42cc8a26 --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/VsyncPeriodChangeTimeline.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable VsyncPeriodChangeTimeline { + long newVsyncAppliedTimeNanos; + boolean refreshRequired; + long refreshTimeNanos; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ZOrder.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ZOrder.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ea96ea3a69db4f9c1ffab81a7ec77097fd906c6a --- /dev/null +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/3/android/hardware/graphics/composer3/ZOrder.aidl @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2021, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.graphics.composer3; +@VintfStability +parcelable ZOrder { + int z; +} diff --git a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/current/android/hardware/graphics/composer3/VrrConfig.aidl b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/current/android/hardware/graphics/composer3/VrrConfig.aidl index bb2569f342375b5e8c14742d00c5e5a75df46da1..7377b4b3e5455198fbfa304dd2971da05f0d9aa4 100644 --- a/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/current/android/hardware/graphics/composer3/VrrConfig.aidl +++ b/graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/current/android/hardware/graphics/composer3/VrrConfig.aidl @@ -42,7 +42,7 @@ parcelable VrrConfig { int averageRefreshPeriodNs; } parcelable NotifyExpectedPresentConfig { - int notifyExpectedPresentHeadsUpNs; - int notifyExpectedPresentTimeoutNs; + int headsUpNs; + int timeoutNs; } } diff --git a/graphics/composer/aidl/android/hardware/graphics/composer3/IComposerClient.aidl b/graphics/composer/aidl/android/hardware/graphics/composer3/IComposerClient.aidl index 725c9475c96e3dc9ec7b934cc7fadd8b2ea8dd2a..213e8e941751e76cd99e686be8b722c215775e03 100644 --- a/graphics/composer/aidl/android/hardware/graphics/composer3/IComposerClient.aidl +++ b/graphics/composer/aidl/android/hardware/graphics/composer3/IComposerClient.aidl @@ -895,9 +895,9 @@ interface IComposerClient { * * The framework will call this function based on the parameters specified in * DisplayConfiguration.VrrConfig: - * - notifyExpectedPresentTimeoutNs specifies the idle time from the previous present command - * where the framework must send the early hint for the next frame. - * - notifyExpectedPresentHeadsUpNs specifies minimal time that framework must send + * - notifyExpectedPresentConfig.timeoutNs specifies the idle time from the previous + * present command where the framework must send the early hint for the next frame. + * - notifyExpectedPresentConfig.headsUpNs specifies minimal time that framework must send * the early hint before the next frame. * * The framework can omit calling this API when the next present command matches diff --git a/graphics/composer/aidl/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl b/graphics/composer/aidl/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl index ec2d55f791b2ec735d043cde1696721fc4b4edbd..e619712fa21a41551f03e7bbf8c8e04b899ddf4a 100644 --- a/graphics/composer/aidl/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl +++ b/graphics/composer/aidl/android/hardware/graphics/composer3/LayerLifecycleBatchCommandType.aidl @@ -32,8 +32,8 @@ enum LayerLifecycleBatchCommandType { */ CREATE = 1, /** - * This indicates that the current LayerCommand should also destroyes the layer, - * after processing the other attributes in the LayerCommand. + * This indicates that the current LayerCommand should also destroy the layer, + * before processing the other attributes in the LayerCommand. */ DESTROY = 2, } diff --git a/graphics/composer/aidl/android/hardware/graphics/composer3/VrrConfig.aidl b/graphics/composer/aidl/android/hardware/graphics/composer3/VrrConfig.aidl index 3b241ba0c973521225bd85f899825b1ce7088538..99c1c62a9fb0d7e082aad3cfa67ffd9d76cadfe0 100644 --- a/graphics/composer/aidl/android/hardware/graphics/composer3/VrrConfig.aidl +++ b/graphics/composer/aidl/android/hardware/graphics/composer3/VrrConfig.aidl @@ -45,15 +45,16 @@ parcelable VrrConfig { * The minimal time in nanoseconds that IComposerClient.notifyExpectedPresent needs to be * called ahead of an expectedPresentTime provided on a presentDisplay command. */ - int notifyExpectedPresentHeadsUpNs; + int headsUpNs; /** * The time in nanoseconds that represents a timeout from the previous presentDisplay, which * after this point the display needs a call to IComposerClient.notifyExpectedPresent before - * sending the next frame. If set to 0, there is no need to call + * sending the next frame. + * If set to 0, hint is sent for every frame. * IComposerClient.notifyExpectedPresent for timeout. */ - int notifyExpectedPresentTimeoutNs; + int timeoutNs; } /** diff --git a/graphics/composer/aidl/vts/Android.bp b/graphics/composer/aidl/vts/Android.bp index d71999df6e4fb979111f4988bf2244c199acc439..3464fe998b108b5698df560410e550260020e711 100644 --- a/graphics/composer/aidl/vts/Android.bp +++ b/graphics/composer/aidl/vts/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -55,6 +56,7 @@ cc_test { "libhidlbase", "libprocessgroup", "libvndksupport", + "server_configurable_flags", ], header_libs: [ "android.hardware.graphics.composer3-command-buffer", @@ -73,6 +75,7 @@ cc_test { "libshaders", "libsync", "libtonemap", + "libsurfaceflinger_common", ], cflags: [ "-Wconversion", diff --git a/graphics/composer/aidl/vts/ReadbackVts.cpp b/graphics/composer/aidl/vts/ReadbackVts.cpp index 860562809838a4daaefe324240e94019f5ab64ff..283b8ce2e4c1cbe9b5dd0827122b5f9afb3650c8 100644 --- a/graphics/composer/aidl/vts/ReadbackVts.cpp +++ b/graphics/composer/aidl/vts/ReadbackVts.cpp @@ -67,8 +67,9 @@ Dataspace ReadbackHelper::getDataspaceForColorMode(ColorMode mode) { case ColorMode::DISPLAY_P3: return Dataspace::DISPLAY_P3; case ColorMode::SRGB: + return Dataspace::SRGB; default: - return common::Dataspace::UNKNOWN; + return Dataspace::UNKNOWN; } } @@ -293,8 +294,8 @@ LayerSettings TestColorLayer::toRenderEngineLayerSettings() { TestBufferLayer::TestBufferLayer(const std::shared_ptr& client, TestRenderEngine& renderEngine, int64_t display, uint32_t width, uint32_t height, common::PixelFormat format, - Composition composition) - : TestLayer{client, display}, mRenderEngine(renderEngine) { + ComposerClientWriter& writer, Composition composition) + : TestLayer{client, display, writer}, mRenderEngine(renderEngine) { mComposition = composition; mWidth = width; mHeight = height; diff --git a/graphics/composer/aidl/vts/ReadbackVts.h b/graphics/composer/aidl/vts/ReadbackVts.h index ee205735f199c732b4da21c4b2f4646388ec9334..8ac0f4bb9962c053879df9d9c234432b3014a745 100644 --- a/graphics/composer/aidl/vts/ReadbackVts.h +++ b/graphics/composer/aidl/vts/ReadbackVts.h @@ -50,9 +50,10 @@ class TestRenderEngine; class TestLayer { public: - TestLayer(const std::shared_ptr& client, int64_t display) + TestLayer(const std::shared_ptr& client, int64_t display, + ComposerClientWriter& writer) : mDisplay(display) { - const auto& [status, layer] = client->createLayer(display, kBufferSlotCount); + const auto& [status, layer] = client->createLayer(display, kBufferSlotCount, &writer); EXPECT_TRUE(status.isOk()); mLayer = layer; } @@ -108,8 +109,9 @@ class TestLayer { class TestColorLayer : public TestLayer { public: - TestColorLayer(const std::shared_ptr& client, int64_t display) - : TestLayer{client, display} {} + TestColorLayer(const std::shared_ptr& client, int64_t display, + ComposerClientWriter& writer) + : TestLayer{client, display, writer} {} void write(ComposerClientWriter& writer) override; @@ -125,7 +127,7 @@ class TestBufferLayer : public TestLayer { public: TestBufferLayer(const std::shared_ptr& client, TestRenderEngine& renderEngine, int64_t display, uint32_t width, - uint32_t height, common::PixelFormat format, + uint32_t height, common::PixelFormat format, ComposerClientWriter& writer, Composition composition = Composition::DEVICE); void write(ComposerClientWriter& writer) override; diff --git a/graphics/composer/aidl/vts/VtsComposerClient.cpp b/graphics/composer/aidl/vts/VtsComposerClient.cpp index ac08cd151f7a762678ab50a2e25a76c3c97cb763..89ba2e63d1ad86fdeafcead036264f87d996f61d 100644 --- a/graphics/composer/aidl/vts/VtsComposerClient.cpp +++ b/graphics/composer/aidl/vts/VtsComposerClient.cpp @@ -33,6 +33,14 @@ VtsComposerClient::VtsComposerClient(const std::string& name) { mComposer = IComposer::fromBinder(binder); ALOGE_IF(mComposer == nullptr, "Failed to acquire the composer from the binder"); } + + const auto& [status, capabilities] = getCapabilities(); + EXPECT_TRUE(status.isOk()); + if (std::any_of(capabilities.begin(), capabilities.end(), [&](const Capability& cap) { + return cap == Capability::LAYER_LIFECYCLE_BATCH_COMMAND; + })) { + mSupportsBatchedCreateLayer = true; + } } ScopedAStatus VtsComposerClient::createClient() { @@ -54,12 +62,15 @@ ScopedAStatus VtsComposerClient::createClient() { return mComposerClient->registerCallback(mComposerCallback); } -bool VtsComposerClient::tearDown() { - return verifyComposerCallbackParams() && destroyAllLayers(); +bool VtsComposerClient::tearDown(ComposerClientWriter* writer) { + return verifyComposerCallbackParams() && destroyAllLayers(writer); } std::pair VtsComposerClient::getInterfaceVersion() const { int32_t version = 1; + if (!mComposerClient) { + return {ScopedAStatus{nullptr}, version}; + } auto status = mComposerClient->getInterfaceVersion(&version); return {std::move(status), version}; } @@ -86,7 +97,16 @@ ScopedAStatus VtsComposerClient::destroyVirtualDisplay(int64_t display) { } std::pair VtsComposerClient::createLayer(int64_t display, - int32_t bufferSlotCount) { + int32_t bufferSlotCount, + ComposerClientWriter* writer) { + if (mSupportsBatchedCreateLayer) { + int64_t layer = mNextLayerHandle++; + writer->setLayerLifecycleBatchCommandType(display, layer, + LayerLifecycleBatchCommandType::CREATE); + writer->setNewBufferSlotCount(display, layer, bufferSlotCount); + return {addLayerToDisplayResources(display, layer), layer}; + } + int64_t outLayer; auto status = mComposerClient->createLayer(display, bufferSlotCount, &outLayer); @@ -96,14 +116,20 @@ std::pair VtsComposerClient::createLayer(int64_t display return {addLayerToDisplayResources(display, outLayer), outLayer}; } -ScopedAStatus VtsComposerClient::destroyLayer(int64_t display, int64_t layer) { - auto status = mComposerClient->destroyLayer(display, layer); - - if (!status.isOk()) { - return status; +ScopedAStatus VtsComposerClient::destroyLayer(int64_t display, int64_t layer, + ComposerClientWriter* writer) { + if (mSupportsBatchedCreateLayer) { + writer->setLayerLifecycleBatchCommandType(display, layer, + LayerLifecycleBatchCommandType::DESTROY); + } else { + auto status = mComposerClient->destroyLayer(display, layer); + if (!status.isOk()) { + return status; + } } + removeLayerFromDisplayResources(display, layer); - return status; + return ScopedAStatus::ok(); } std::pair VtsComposerClient::getActiveConfig(int64_t display) { @@ -632,7 +658,7 @@ bool VtsComposerClient::getDisplayConfigurationSupported() const { return interfaceVersion >= 3; } -bool VtsComposerClient::destroyAllLayers() { +bool VtsComposerClient::destroyAllLayers(ComposerClientWriter* writer) { std::unordered_map physicalDisplays; while (!mDisplayResources.empty()) { const auto& it = mDisplayResources.begin(); @@ -640,7 +666,7 @@ bool VtsComposerClient::destroyAllLayers() { while (!resource.layers.empty()) { auto layer = *resource.layers.begin(); - const auto status = destroyLayer(display, layer); + const auto status = destroyLayer(display, layer, writer); if (!status.isOk()) { ALOGE("Unable to destroy all the layers, failed at layer %" PRId64 " with error %s", layer, status.getDescription().c_str()); diff --git a/graphics/composer/aidl/vts/VtsComposerClient.h b/graphics/composer/aidl/vts/VtsComposerClient.h index 292bc407f8317709419f3470cc24f4e90fd962a3..fabc82a7a612d725ea5fdc29e15743e900e0610d 100644 --- a/graphics/composer/aidl/vts/VtsComposerClient.h +++ b/graphics/composer/aidl/vts/VtsComposerClient.h @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -59,7 +60,7 @@ class VtsComposerClient { ScopedAStatus createClient(); - bool tearDown(); + bool tearDown(ComposerClientWriter*); std::pair getInterfaceVersion() const; @@ -69,9 +70,10 @@ class VtsComposerClient { ScopedAStatus destroyVirtualDisplay(int64_t display); - std::pair createLayer(int64_t display, int32_t bufferSlotCount); + std::pair createLayer(int64_t display, int32_t bufferSlotCount, + ComposerClientWriter*); - ScopedAStatus destroyLayer(int64_t display, int64_t layer); + ScopedAStatus destroyLayer(int64_t display, int64_t layer, ComposerClientWriter*); std::pair getActiveConfig(int64_t display); @@ -211,7 +213,7 @@ class VtsComposerClient { void removeLayerFromDisplayResources(int64_t display, int64_t layer); - bool destroyAllLayers(); + bool destroyAllLayers(ComposerClientWriter*); bool verifyComposerCallbackParams(); @@ -229,6 +231,8 @@ class VtsComposerClient { std::shared_ptr mComposerClient; std::shared_ptr mComposerCallback; std::unordered_map mDisplayResources; + bool mSupportsBatchedCreateLayer = false; + std::atomic mNextLayerHandle = 1; }; class VtsDisplay { diff --git a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp index 2e3f4df01502598d180ff4bb1117d4d3fc30b61c..d4ce3ba2b662251638157d00e945c392a5ca7757 100644 --- a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp +++ b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp @@ -85,8 +85,9 @@ class GraphicsCompositionTestBase : public ::testing::Test { } void TearDown() override { + ASSERT_FALSE(mDisplays.empty()); ASSERT_TRUE(mComposerClient->setPowerMode(getPrimaryDisplayId(), PowerMode::OFF).isOk()); - ASSERT_TRUE(mComposerClient->tearDown()); + ASSERT_TRUE(mComposerClient->tearDown(mWriter.get())); mComposerClient.reset(); const auto errors = mReader.takeErrors(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -201,7 +202,8 @@ TEST_P(GraphicsCompositionTest, SingleSolidColorLayer) { return; } - auto layer = std::make_shared(mComposerClient, getPrimaryDisplayId()); + auto layer = + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); common::Rect coloredSquare({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setColor(BLUE); layer->setDisplayFrame(coloredSquare); @@ -270,7 +272,7 @@ TEST_P(GraphicsCompositionTest, SetLayerBuffer) { auto layer = std::make_shared( mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight(), common::PixelFormat::RGBA_8888); + getDisplayHeight(), common::PixelFormat::RGBA_8888, *mWriter); layer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setZOrder(10); layer->setDataspace(ReadbackHelper::getDataspaceForColorMode(mode)); @@ -315,7 +317,8 @@ TEST_P(GraphicsCompositionTest, SetLayerBufferNoEffect) { return; } - auto layer = std::make_shared(mComposerClient, getPrimaryDisplayId()); + auto layer = + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); common::Rect coloredSquare({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setColor(BLUE); layer->setDisplayFrame(coloredSquare); @@ -454,9 +457,9 @@ TEST_P(GraphicsCompositionTest, ClientComposition) { expectedColors, getDisplayWidth(), {0, getDisplayHeight() / 2, getDisplayWidth(), getDisplayHeight()}, BLUE); - auto layer = std::make_shared(mComposerClient, *mTestRenderEngine, - getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight(), PixelFormat::RGBA_FP16); + auto layer = std::make_shared( + mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), + getDisplayHeight(), PixelFormat::RGBA_FP16, *mWriter); layer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setZOrder(10); layer->setDataspace(ReadbackHelper::getDataspaceForColorMode(mode)); @@ -519,6 +522,83 @@ TEST_P(GraphicsCompositionTest, ClientComposition) { } } +TEST_P(GraphicsCompositionTest, MixedColorSpaces) { + ASSERT_TRUE( + mComposerClient->setClientTargetSlotCount(getPrimaryDisplayId(), kClientTargetSlotCount) + .isOk()); + const auto& [status, properties] = mComposerClient->getOverlaySupport(); + if (!status.isOk() && status.getExceptionCode() == EX_SERVICE_SPECIFIC && + status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) { + GTEST_SUCCEED() << "getOverlaySupport is not supported"; + return; + } + + if (properties.supportMixedColorSpaces == false) { + GTEST_SUCCEED() << "supportMixedColorSpaces is not supported"; + return; + } + + for (ColorMode mode : mTestColorModes) { + EXPECT_TRUE(mComposerClient + ->setColorMode(getPrimaryDisplayId(), mode, RenderIntent::COLORIMETRIC) + .isOk()); + + bool isSupported; + ASSERT_NO_FATAL_FAILURE(isSupported = getHasReadbackBuffer()); + if (!isSupported) { + GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace"; + return; + } + + // sRGB layer + auto srgbLayer = std::make_shared( + mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), + getDisplayHeight() / 2, PixelFormat::RGBA_8888, *mWriter); + std::vector sRgbDeviceColors(srgbLayer->getWidth() * srgbLayer->getHeight()); + ReadbackHelper::fillColorsArea(sRgbDeviceColors, getDisplayWidth(), + {0, 0, static_cast(srgbLayer->getWidth()), + static_cast(srgbLayer->getHeight())}, + GREEN); + srgbLayer->setDisplayFrame({0, 0, static_cast(srgbLayer->getWidth()), + static_cast(srgbLayer->getHeight())}); + srgbLayer->setZOrder(10); + srgbLayer->setDataspace(Dataspace::SRGB); + ASSERT_NO_FATAL_FAILURE(srgbLayer->setBuffer(sRgbDeviceColors)); + + // display P3 layer + auto displayP3Layer = std::make_shared( + mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), + getDisplayHeight() / 2, PixelFormat::RGBA_8888, *mWriter); + std::vector displayP3DeviceColors( + static_cast(displayP3Layer->getWidth() * displayP3Layer->getHeight())); + ReadbackHelper::fillColorsArea(displayP3DeviceColors, getDisplayWidth(), + {0, 0, static_cast(displayP3Layer->getWidth()), + static_cast(displayP3Layer->getHeight())}, + RED); + displayP3Layer->setDisplayFrame( + {0, getDisplayHeight() / 2, getDisplayWidth(), getDisplayHeight()}); + displayP3Layer->setZOrder(10); + displayP3Layer->setDataspace(Dataspace::DISPLAY_P3); + ASSERT_NO_FATAL_FAILURE(displayP3Layer->setBuffer(displayP3DeviceColors)); + + writeLayers({srgbLayer, displayP3Layer}); + + mWriter->validateDisplay(getPrimaryDisplayId(), ComposerClientWriter::kNoTimestamp, + VtsComposerClient::kNoFrameIntervalNs); + execute(); + + auto changedCompositionTypes = mReader.takeChangedCompositionTypes(getPrimaryDisplayId()); + ASSERT_TRUE(changedCompositionTypes.empty()); + + mWriter->presentDisplay(getPrimaryDisplayId()); + execute(); + + changedCompositionTypes = mReader.takeChangedCompositionTypes(getPrimaryDisplayId()); + ASSERT_TRUE(changedCompositionTypes.empty()); + ASSERT_TRUE(mReader.takeErrors().empty()); + } +} + TEST_P(GraphicsCompositionTest, DeviceAndClientComposition) { ASSERT_TRUE( mComposerClient->setClientTargetSlotCount(getPrimaryDisplayId(), kClientTargetSlotCount) @@ -550,7 +630,7 @@ TEST_P(GraphicsCompositionTest, DeviceAndClientComposition) { auto deviceLayer = std::make_shared( mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight() / 2, PixelFormat::RGBA_8888); + getDisplayHeight() / 2, PixelFormat::RGBA_8888, *mWriter); std::vector deviceColors(deviceLayer->getWidth() * deviceLayer->getHeight()); ReadbackHelper::fillColorsArea(deviceColors, static_cast(deviceLayer->getWidth()), {0, 0, static_cast(deviceLayer->getWidth()), @@ -574,7 +654,7 @@ TEST_P(GraphicsCompositionTest, DeviceAndClientComposition) { auto clientLayer = std::make_shared( mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), clientWidth, - clientHeight, PixelFormat::RGBA_FP16, Composition::DEVICE); + clientHeight, PixelFormat::RGBA_FP16, *mWriter, Composition::DEVICE); common::Rect clientFrame = {0, getDisplayHeight() / 2, getDisplayWidth(), getDisplayHeight()}; clientLayer->setDisplayFrame(clientFrame); @@ -643,9 +723,9 @@ TEST_P(GraphicsCompositionTest, SetLayerDamage) { static_cast(getDisplayWidth() * getDisplayHeight())); ReadbackHelper::fillColorsArea(expectedColors, getDisplayWidth(), redRect, RED); - auto layer = std::make_shared(mComposerClient, *mTestRenderEngine, - getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight(), PixelFormat::RGBA_8888); + auto layer = std::make_shared( + mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), + getDisplayHeight(), PixelFormat::RGBA_8888, *mWriter); layer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setZOrder(10); layer->setDataspace(ReadbackHelper::getDataspaceForColorMode(mode)); @@ -714,7 +794,8 @@ TEST_P(GraphicsCompositionTest, SetLayerPlaneAlpha) { return; } - auto layer = std::make_shared(mComposerClient, getPrimaryDisplayId()); + auto layer = + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); layer->setColor(RED); layer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setZOrder(10); @@ -774,9 +855,9 @@ TEST_P(GraphicsCompositionTest, SetLayerSourceCrop) { expectedColors, getDisplayWidth(), {0, getDisplayHeight() / 2, getDisplayWidth(), getDisplayHeight()}, BLUE); - auto layer = std::make_shared(mComposerClient, *mTestRenderEngine, - getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight(), PixelFormat::RGBA_8888); + auto layer = std::make_shared( + mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), + getDisplayHeight(), PixelFormat::RGBA_8888, *mWriter); layer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setZOrder(10); layer->setDataspace(ReadbackHelper::getDataspaceForColorMode(mode)); @@ -828,11 +909,13 @@ TEST_P(GraphicsCompositionTest, SetLayerZOrder) { common::Rect redRect = {0, 0, getDisplayWidth(), getDisplayHeight() / 2}; common::Rect blueRect = {0, getDisplayHeight() / 4, getDisplayWidth(), getDisplayHeight()}; - auto redLayer = std::make_shared(mComposerClient, getPrimaryDisplayId()); + auto redLayer = + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); redLayer->setColor(RED); redLayer->setDisplayFrame(redRect); - auto blueLayer = std::make_shared(mComposerClient, getPrimaryDisplayId()); + auto blueLayer = + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); blueLayer->setColor(BLUE); blueLayer->setDisplayFrame(blueRect); blueLayer->setZOrder(5); @@ -914,14 +997,14 @@ TEST_P(GraphicsCompositionTest, SetLayerBrightnessDims) { static constexpr float kMaxBrightnessNits = 300.f; const auto redLayer = - std::make_shared(mComposerClient, getPrimaryDisplayId()); + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); redLayer->setColor(RED); redLayer->setDisplayFrame(redRect); redLayer->setWhitePointNits(kMaxBrightnessNits); redLayer->setBrightness(1.f); const auto dimmerRedLayer = - std::make_shared(mComposerClient, getPrimaryDisplayId()); + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); dimmerRedLayer->setColor(RED); dimmerRedLayer->setDisplayFrame(dimmerRedRect); // Intentionally use a small dimming ratio as some implementations may be more likely to @@ -992,14 +1075,14 @@ class GraphicsBlendModeCompositionTest mTopLayerColor); auto backgroundLayer = - std::make_shared(mComposerClient, getPrimaryDisplayId()); + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); backgroundLayer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); backgroundLayer->setZOrder(0); backgroundLayer->setColor(mBackgroundColor); - auto layer = std::make_shared(mComposerClient, *mTestRenderEngine, - getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight(), PixelFormat::RGBA_8888); + auto layer = std::make_shared( + mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), + getDisplayHeight(), PixelFormat::RGBA_8888, *mWriter); layer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); layer->setZOrder(10); layer->setDataspace(Dataspace::UNKNOWN); @@ -1190,7 +1273,7 @@ class GraphicsTransformCompositionTest : public GraphicsCompositionTest { GraphicsCompositionTest::SetUp(); auto backgroundLayer = - std::make_shared(mComposerClient, getPrimaryDisplayId()); + std::make_shared(mComposerClient, getPrimaryDisplayId(), *mWriter); backgroundLayer->setColor({0.0f, 0.0f, 0.0f, 0.0f}); backgroundLayer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); backgroundLayer->setZOrder(0); @@ -1202,7 +1285,7 @@ class GraphicsTransformCompositionTest : public GraphicsCompositionTest { mLayer = std::make_shared(mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), mSideLength, mSideLength, - PixelFormat::RGBA_8888); + PixelFormat::RGBA_8888, *mWriter); mLayer->setDisplayFrame({0, 0, mSideLength, mSideLength}); mLayer->setZOrder(10); @@ -1388,7 +1471,7 @@ class GraphicsColorManagementCompositionTest void makeLayer() { mLayer = std::make_shared( mComposerClient, *mTestRenderEngine, getPrimaryDisplayId(), getDisplayWidth(), - getDisplayHeight(), common::PixelFormat::RGBA_8888); + getDisplayHeight(), common::PixelFormat::RGBA_8888, *mWriter); mLayer->setDisplayFrame({0, 0, getDisplayWidth(), getDisplayHeight()}); mLayer->setZOrder(10); mLayer->setAlpha(1.f); diff --git a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp index 2bbaf2984436cfca0dcdeedfb8c7b2b5ab6f12a7..f72cf55300343a5dfd3b6044e82f35819c73a4ff 100644 --- a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp +++ b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp @@ -70,7 +70,7 @@ class GraphicsComposerAidlTest : public ::testing::TestWithParam { } void TearDown() override { - ASSERT_TRUE(mComposerClient->tearDown()); + ASSERT_TRUE(mComposerClient->tearDown(nullptr)); mComposerClient.reset(); } @@ -832,36 +832,58 @@ TEST_P(GraphicsComposerAidlTest, DestroyVirtualDisplay_BadDisplay) { } TEST_P(GraphicsComposerAidlTest, CreateLayer) { + if (hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "Create layer will be tested in GraphicsComposerAidlBatchedCommandTest"; + return; + } + const auto& [status, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, nullptr); EXPECT_TRUE(status.isOk()); - EXPECT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer).isOk()); + EXPECT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer, nullptr).isOk()); } TEST_P(GraphicsComposerAidlTest, CreateLayer_BadDisplay) { - const auto& [status, _] = mComposerClient->createLayer(getInvalidDisplayId(), kBufferSlotCount); + if (hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "Create layer will be tested in GraphicsComposerAidlBatchedCommandTest"; + return; + } + + const auto& [status, _] = + mComposerClient->createLayer(getInvalidDisplayId(), kBufferSlotCount, nullptr); EXPECT_FALSE(status.isOk()); EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_DISPLAY)); } TEST_P(GraphicsComposerAidlTest, DestroyLayer_BadDisplay) { + if (hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "Destroy layer will be tested in GraphicsComposerAidlBatchedCommandTest"; + return; + } + const auto& [status, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, nullptr); EXPECT_TRUE(status.isOk()); - const auto& destroyStatus = mComposerClient->destroyLayer(getInvalidDisplayId(), layer); + const auto& destroyStatus = + mComposerClient->destroyLayer(getInvalidDisplayId(), layer, nullptr); EXPECT_FALSE(destroyStatus.isOk()); EXPECT_NO_FATAL_FAILURE( assertServiceSpecificError(destroyStatus, IComposerClient::EX_BAD_DISPLAY)); - ASSERT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer).isOk()); + ASSERT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer, nullptr).isOk()); } TEST_P(GraphicsComposerAidlTest, DestroyLayer_BadLayerError) { + if (hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "Destroy layer will be tested in GraphicsComposerAidlBatchedCommandTest"; + return; + } + // We haven't created any layers yet, so any id should be invalid - const auto& status = mComposerClient->destroyLayer(getPrimaryDisplayId(), /*layer*/ 1); + const auto& status = mComposerClient->destroyLayer(getPrimaryDisplayId(), /*layer*/ 1, nullptr); EXPECT_FALSE(status.isOk()); EXPECT_NO_FATAL_FAILURE(assertServiceSpecificError(status, IComposerClient::EX_BAD_LAYER)); @@ -1171,6 +1193,12 @@ TEST_P(GraphicsComposerAidlTest, GetDisplayConfigNoRepetitions) { } } +TEST_P(GraphicsComposerAidlTest, LayerLifecycleCapabilityNotSupportedOnOldVersions) { + if (hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + EXPECT_GE(getInterfaceVersion(), 3); + } +} + class GraphicsComposerAidlV2Test : public GraphicsComposerAidlTest { protected: void SetUp() override { @@ -1263,6 +1291,9 @@ TEST_P(GraphicsComposerAidlV3Test, GetDisplayConfigurations) { frameIntervalPowerHints.cend()); EXPECT_LE(minFrameInterval->frameIntervalNs, VtsComposerClient::kMaxFrameIntervalNs); + const auto maxFrameInterval = *max_element(frameIntervalPowerHints.cbegin(), + frameIntervalPowerHints.cend()); + EXPECT_GE(maxFrameInterval->frameIntervalNs, vrrConfig.minFrameIntervalNs); EXPECT_TRUE(std::all_of(frameIntervalPowerHints.cbegin(), frameIntervalPowerHints.cend(), @@ -1275,8 +1306,8 @@ TEST_P(GraphicsComposerAidlV3Test, GetDisplayConfigurations) { if (vrrConfig.notifyExpectedPresentConfig) { const auto& notifyExpectedPresentConfig = *vrrConfig.notifyExpectedPresentConfig; - EXPECT_GT(0, notifyExpectedPresentConfig.notifyExpectedPresentHeadsUpNs); - EXPECT_GE(0, notifyExpectedPresentConfig.notifyExpectedPresentTimeoutNs); + EXPECT_GE(notifyExpectedPresentConfig.headsUpNs, 0); + EXPECT_GE(notifyExpectedPresentConfig.timeoutNs, 0); } } } @@ -1357,25 +1388,15 @@ TEST_P(GraphicsComposerAidlV3Test, GetDisplayConfigsIsSubsetOfGetDisplayConfigur } } -// TODO(b/291792736) Add detailed VTS test cases for NotifyExpectedPresent -TEST_P(GraphicsComposerAidlV3Test, NotifyExpectedPresent) { - for (const auto& display : mDisplays) { - EXPECT_TRUE(mComposerClient - ->notifyExpectedPresent(display.getDisplayId(), - ClockMonotonicTimestamp{0}, - std::chrono::nanoseconds{8ms}.count()) - .isOk()); - } -} - // Tests for Command. class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { protected: void TearDown() override { - const auto errors = mReader.takeErrors(); + ASSERT_FALSE(mDisplays.empty()); ASSERT_TRUE(mReader.takeErrors().empty()); ASSERT_TRUE(mReader.takeChangedCompositionTypes(getPrimaryDisplayId()).empty()); + ASSERT_TRUE(mComposerClient->tearDown(&getWriter(getPrimaryDisplayId()))); ASSERT_NO_FATAL_FAILURE(GraphicsComposerAidlTest::TearDown()); } @@ -1463,10 +1484,10 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { RenderIntent::COLORIMETRIC) .isOk()); + auto& writer = getWriter(display.getDisplayId()); const auto& [status, layer] = - mComposerClient->createLayer(display.getDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(display.getDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(status.isOk()); - auto& writer = getWriter(display.getDisplayId()); { const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); ASSERT_NE(nullptr, buffer); @@ -1506,22 +1527,24 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { execute(); } - EXPECT_TRUE(mComposerClient->destroyLayer(display.getDisplayId(), layer).isOk()); + EXPECT_TRUE(mComposerClient->destroyLayer(display.getDisplayId(), layer, &writer).isOk()); } sp<::android::Fence> presentAndGetFence( - std::optional expectedPresentTime) { - auto& writer = getWriter(getPrimaryDisplayId()); - writer.validateDisplay(getPrimaryDisplayId(), expectedPresentTime, - VtsComposerClient::kNoFrameIntervalNs); + std::optional expectedPresentTime, + std::optional displayIdOpt = {}, + int32_t frameIntervalNs = VtsComposerClient::kNoFrameIntervalNs) { + const auto displayId = displayIdOpt.value_or(getPrimaryDisplayId()); + auto& writer = getWriter(displayId); + writer.validateDisplay(displayId, expectedPresentTime, frameIntervalNs); execute(); EXPECT_TRUE(mReader.takeErrors().empty()); - writer.presentDisplay(getPrimaryDisplayId()); + writer.presentDisplay(displayId); execute(); EXPECT_TRUE(mReader.takeErrors().empty()); - auto presentFence = mReader.takePresentFence(getPrimaryDisplayId()); + auto presentFence = mReader.takePresentFence(displayId); // take ownership const int fenceOwner = presentFence.get(); *presentFence.getR() = -1; @@ -1540,17 +1563,17 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { return vsyncPeriod; } - int64_t createOnScreenLayer(Composition composition = Composition::DEVICE) { + int64_t createOnScreenLayer(const VtsDisplay& display, + Composition composition = Composition::DEVICE) { + auto& writer = getWriter(display.getDisplayId()); const auto& [status, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(display.getDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(status.isOk()); - Rect displayFrame{0, 0, getPrimaryDisplay().getDisplayWidth(), - getPrimaryDisplay().getDisplayHeight()}; - FRect cropRect{0, 0, (float)getPrimaryDisplay().getDisplayWidth(), - (float)getPrimaryDisplay().getDisplayHeight()}; - configureLayer(getPrimaryDisplay(), layer, composition, displayFrame, cropRect); - auto& writer = getWriter(getPrimaryDisplayId()); - writer.setLayerDataspace(getPrimaryDisplayId(), layer, common::Dataspace::UNKNOWN); + Rect displayFrame{0, 0, display.getDisplayWidth(), display.getDisplayHeight()}; + FRect cropRect{0, 0, (float)display.getDisplayWidth(), (float)display.getDisplayHeight()}; + configureLayer(display, layer, composition, displayFrame, cropRect); + + writer.setLayerDataspace(display.getDisplayId(), layer, common::Dataspace::UNKNOWN); return layer; } @@ -1662,7 +1685,7 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { ASSERT_NE(nullptr, buffer1); ASSERT_NE(nullptr, buffer2); - const auto layer = createOnScreenLayer(); + const auto layer = createOnScreenLayer(getPrimaryDisplay()); auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBuffer(getPrimaryDisplayId(), layer, /*slot*/ 0, buffer1->handle, /*acquireFence*/ -1); @@ -1695,6 +1718,38 @@ class GraphicsComposerAidlCommandTest : public GraphicsComposerAidlTest { ASSERT_TRUE(mComposerClient->setPowerMode(getPrimaryDisplayId(), PowerMode::OFF).isOk()); } + void forEachNotifyExpectedPresentConfig( + std::function func) { + for (VtsDisplay& display : mDisplays) { + const auto displayId = display.getDisplayId(); + EXPECT_TRUE(mComposerClient->setPowerMode(displayId, PowerMode::ON).isOk()); + const auto& [status, displayConfigurations] = + mComposerClient->getDisplayConfigurations(displayId); + EXPECT_TRUE(status.isOk()); + EXPECT_FALSE(displayConfigurations.empty()); + for (const auto& config : displayConfigurations) { + if (config.vrrConfig && config.vrrConfig->notifyExpectedPresentConfig) { + const auto [vsyncPeriodStatus, oldVsyncPeriod] = + mComposerClient->getDisplayVsyncPeriod(displayId); + ASSERT_TRUE(vsyncPeriodStatus.isOk()); + const auto& [timelineStatus, timeline] = + mComposerClient->setActiveConfigWithConstraints( + &display, config.configId, + VsyncPeriodChangeConstraints{.seamlessRequired = false}); + ASSERT_TRUE(timelineStatus.isOk()); + if (timeline.refreshRequired) { + sendRefreshFrame(display, &timeline); + } + waitForVsyncPeriodChange(displayId, timeline, systemTime(), oldVsyncPeriod, + config.vsyncPeriod); + func(display, config); + } + } + EXPECT_TRUE( + mComposerClient->setPowerMode(getPrimaryDisplayId(), PowerMode::OFF).isOk()); + } + } + void configureLayer(const VtsDisplay& display, int64_t layer, Composition composition, const Rect& displayFrame, const FRect& cropRect) { auto& writer = getWriter(display.getDisplayId()); @@ -1758,10 +1813,10 @@ TEST_P(GraphicsComposerAidlCommandTest, SetColorTransform) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerColorTransform) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [status, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(status.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerColorTransform(getPrimaryDisplayId(), layer, kIdentity.data()); execute(); @@ -1773,6 +1828,7 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerColorTransform) { } TEST_P(GraphicsComposerAidlCommandTest, SetDisplayBrightness) { + EXPECT_TRUE(mComposerClient->setPowerMode(getPrimaryDisplayId(), PowerMode::ON).isOk()); const auto& [status, capabilities] = mComposerClient->getDisplayCapabilities(getPrimaryDisplayId()); ASSERT_TRUE(status.isOk()); @@ -1899,7 +1955,7 @@ TEST_P(GraphicsComposerAidlCommandTest, PresentDisplayNoLayerStateChanges) { ASSERT_NE(nullptr, handle); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); Rect displayFrame{0, 0, getPrimaryDisplay().getDisplayWidth(), @@ -1936,15 +1992,15 @@ TEST_P(GraphicsComposerAidlCommandTest, PresentDisplayNoLayerStateChanges) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerCursorPosition) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); const auto handle = buffer->handle; ASSERT_NE(nullptr, handle); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBuffer(getPrimaryDisplayId(), layer, /*slot*/ 0, handle, /*acquireFence*/ -1); Rect displayFrame{0, 0, getPrimaryDisplay().getDisplayWidth(), @@ -1980,19 +2036,19 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerBuffer) { const auto handle = buffer->handle; ASSERT_NE(nullptr, handle); + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBuffer(getPrimaryDisplayId(), layer, /*slot*/ 0, handle, /*acquireFence*/ -1); execute(); } TEST_P(GraphicsComposerAidlCommandTest, SetLayerBufferMultipleTimes) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); // Setup 3 buffers in the buffer cache, with the last buffer being active. Then, emulate the // Android platform code that clears all 3 buffer slots by setting all but the active buffer @@ -2040,14 +2096,14 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerBufferMultipleTimes) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerSurfaceDamage) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); Rect empty{0, 0, 0, 0}; Rect unit{0, 0, 1, 1}; - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerSurfaceDamage(getPrimaryDisplayId(), layer, std::vector(1, empty)); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2062,14 +2118,14 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerSurfaceDamage) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerBlockingRegion) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); Rect empty{0, 0, 0, 0}; Rect unit{0, 0, 1, 1}; - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBlockingRegion(getPrimaryDisplayId(), layer, std::vector(1, empty)); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2084,11 +2140,11 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerBlockingRegion) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerBlendMode) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBlendMode(getPrimaryDisplayId(), layer, BlendMode::NONE); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2103,11 +2159,11 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerBlendMode) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerColor) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerColor(getPrimaryDisplayId(), layer, Color{1.0f, 1.0f, 1.0f, 1.0f}); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2118,11 +2174,11 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerColor) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerCompositionType) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerCompositionType(getPrimaryDisplayId(), layer, Composition::CLIENT); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2141,8 +2197,9 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerCompositionType) { TEST_P(GraphicsComposerAidlCommandTest, DisplayDecoration) { for (VtsDisplay& display : mDisplays) { + auto& writer = getWriter(display.getDisplayId()); const auto [layerStatus, layer] = - mComposerClient->createLayer(display.getDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(display.getDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); const auto [error, support] = @@ -2165,8 +2222,7 @@ TEST_P(GraphicsComposerAidlCommandTest, DisplayDecoration) { } configureLayer(display, layer, Composition::DISPLAY_DECORATION, display.getFrameRect(), - display.getCrop()); - auto& writer = getWriter(display.getDisplayId()); + display.getCrop()); writer.setLayerBuffer(display.getDisplayId(), layer, /*slot*/ 0, decorBuffer->handle, /*acquireFence*/ -1); writer.validateDisplay(display.getDisplayId(), ComposerClientWriter::kNoTimestamp, @@ -2183,31 +2239,31 @@ TEST_P(GraphicsComposerAidlCommandTest, DisplayDecoration) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerDataspace) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerDataspace(getPrimaryDisplayId(), layer, Dataspace::UNKNOWN); execute(); } TEST_P(GraphicsComposerAidlCommandTest, SetLayerDisplayFrame) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerDisplayFrame(getPrimaryDisplayId(), layer, Rect{0, 0, 1, 1}); execute(); } TEST_P(GraphicsComposerAidlCommandTest, SetLayerPlaneAlpha) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerPlaneAlpha(getPrimaryDisplayId(), layer, /*alpha*/ 0.0f); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2227,31 +2283,31 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerSidebandStream) { const auto handle = buffer->handle; ASSERT_NE(nullptr, handle); + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerSidebandStream(getPrimaryDisplayId(), layer, handle); execute(); } TEST_P(GraphicsComposerAidlCommandTest, SetLayerSourceCrop) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerSourceCrop(getPrimaryDisplayId(), layer, FRect{0.0f, 0.0f, 1.0f, 1.0f}); execute(); } TEST_P(GraphicsComposerAidlCommandTest, SetLayerTransform) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerTransform(getPrimaryDisplayId(), layer, static_cast(0)); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2290,14 +2346,14 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerTransform) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerVisibleRegion) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); Rect empty{0, 0, 0, 0}; Rect unit{0, 0, 1, 1}; - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerVisibleRegion(getPrimaryDisplayId(), layer, std::vector(1, empty)); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2312,11 +2368,12 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerVisibleRegion) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerZOrder) { + auto& writer = getWriter(getPrimaryDisplayId()); + const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerZOrder(getPrimaryDisplayId(), layer, /*z*/ 10); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2327,8 +2384,9 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerZOrder) { } TEST_P(GraphicsComposerAidlCommandTest, SetLayerPerFrameMetadata) { + auto& writer = getWriter(getPrimaryDisplayId()); const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); /** @@ -2343,7 +2401,6 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerPerFrameMetadata) { * white (D65) 0.3127 0.3290 */ - auto& writer = getWriter(getPrimaryDisplayId()); std::vector aidlMetadata; aidlMetadata.push_back({PerFrameMetadataKey::DISPLAY_RED_PRIMARY_X, 0.680f}); aidlMetadata.push_back({PerFrameMetadataKey::DISPLAY_RED_PRIMARY_Y, 0.320f}); @@ -2363,18 +2420,19 @@ TEST_P(GraphicsComposerAidlCommandTest, SetLayerPerFrameMetadata) { const auto errors = mReader.takeErrors(); if (errors.size() == 1 && errors[0].errorCode == EX_UNSUPPORTED_OPERATION) { GTEST_SUCCEED() << "SetLayerPerFrameMetadata is not supported"; - EXPECT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer).isOk()); + EXPECT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer, &writer).isOk()); return; } - EXPECT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer).isOk()); + EXPECT_TRUE(mComposerClient->destroyLayer(getPrimaryDisplayId(), layer, &writer).isOk()); } TEST_P(GraphicsComposerAidlCommandTest, setLayerBrightness) { + auto& writer = getWriter(getPrimaryDisplayId()); + const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); - auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBrightness(getPrimaryDisplayId(), layer, 0.2f); execute(); ASSERT_TRUE(mReader.takeErrors().empty()); @@ -2559,7 +2617,7 @@ TEST_P(GraphicsComposerAidlCommandTest, SetIdleTimerEnabled_Timeout_2) { const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); ASSERT_NE(nullptr, buffer->handle); - const auto layer = createOnScreenLayer(); + const auto layer = createOnScreenLayer(getPrimaryDisplay()); auto& writer = getWriter(getPrimaryDisplayId()); writer.setLayerBuffer(getPrimaryDisplayId(), layer, /*slot*/ 0, buffer->handle, /*acquireFence*/ -1); @@ -2603,12 +2661,12 @@ TEST_P(GraphicsComposerAidlCommandV2Test, SkipValidateDeprecatedTest) { } TEST_P(GraphicsComposerAidlCommandV2Test, SetLayerBufferSlotsToClear) { + auto& writer = getWriter(getPrimaryDisplayId()); // Older HAL versions use a backwards compatible way of clearing buffer slots // HAL at version 1 or lower does not have LayerCommand::bufferSlotsToClear const auto& [layerStatus, layer] = - mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount); + mComposerClient->createLayer(getPrimaryDisplayId(), kBufferSlotCount, &writer); EXPECT_TRUE(layerStatus.isOk()); - auto& writer = getWriter(getPrimaryDisplayId()); // setup 3 buffers in the buffer cache, with the last buffer being active // then emulate the Android platform code that clears all 3 buffer slots @@ -2745,8 +2803,8 @@ TEST_P(GraphicsComposerAidlCommandV2Test, } // Send the REFRESH_RATE_INDICATOR update - ASSERT_NO_FATAL_FAILURE( - sendBufferUpdate(createOnScreenLayer(Composition::REFRESH_RATE_INDICATOR))); + ASSERT_NO_FATAL_FAILURE(sendBufferUpdate( + createOnScreenLayer(getPrimaryDisplay(), Composition::REFRESH_RATE_INDICATOR))); std::this_thread::sleep_for(1s); EXPECT_FALSE(checkIfCallbackRefreshRateChangedDebugEnabledReceived(displayFilter)) << "A callback should not be received for REFRESH_RATE_INDICATOR"; @@ -2867,7 +2925,8 @@ TEST_P(GraphicsComposerAidlCommandTest, MultiThreadedPresent) { EXPECT_TRUE(mComposerClient->setPowerMode(displayId, PowerMode::ON).isOk()); - const auto& [status, layer] = mComposerClient->createLayer(displayId, kBufferSlotCount); + const auto& [status, layer] = + mComposerClient->createLayer(displayId, kBufferSlotCount, &writer); const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); ASSERT_NE(nullptr, buffer); ASSERT_EQ(::android::OK, buffer->initCheck()); @@ -2917,7 +2976,8 @@ TEST_P(GraphicsComposerAidlCommandTest, MultiThreadedPresent) { } for (auto& [displayId, layer] : layers) { - EXPECT_TRUE(mComposerClient->destroyLayer(displayId, layer).isOk()); + auto& writer = getWriter(displayId); + EXPECT_TRUE(mComposerClient->destroyLayer(displayId, layer, &writer).isOk()); } std::lock_guard guard{readersMutex}; @@ -2927,22 +2987,22 @@ TEST_P(GraphicsComposerAidlCommandTest, MultiThreadedPresent) { } } -class GraphicsComposerAidlBatchedCommandTest : public GraphicsComposerAidlCommandTest { +class GraphicsComposerAidlCommandV3Test : public GraphicsComposerAidlCommandTest { protected: void SetUp() override { - GraphicsComposerAidlCommandTest::SetUp(); + GraphicsComposerAidlTest::SetUp(); if (getInterfaceVersion() <= 2) { GTEST_SKIP() << "Device interface version is expected to be >= 3"; } } - void TearDown() override { - const auto errors = mReader.takeErrors(); - ASSERT_TRUE(mReader.takeErrors().empty()); - ASSERT_NO_FATAL_FAILURE(GraphicsComposerAidlTest::TearDown()); - } }; -TEST_P(GraphicsComposerAidlBatchedCommandTest, CreateBatchedCommand) { +TEST_P(GraphicsComposerAidlCommandV3Test, CreateBatchedCommand) { + if (!hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "LAYER_LIFECYCLE_BATCH_COMMAND not supported by the implementation"; + return; + } + auto& writer = getWriter(getPrimaryDisplayId()); int64_t layer = 5; writer.setLayerLifecycleBatchCommandType(getPrimaryDisplayId(), layer, @@ -2954,7 +3014,30 @@ TEST_P(GraphicsComposerAidlBatchedCommandTest, CreateBatchedCommand) { ASSERT_TRUE(mReader.takeErrors().empty()); } -TEST_P(GraphicsComposerAidlBatchedCommandTest, DestroyBatchedCommand) { +TEST_P(GraphicsComposerAidlCommandV3Test, CreateBatchedCommand_BadDisplay) { + if (!hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "LAYER_LIFECYCLE_BATCH_COMMAND not supported by the implementation"; + return; + } + + auto& writer = getWriter(getPrimaryDisplayId()); + int64_t layer = 5; + writer.setLayerLifecycleBatchCommandType(getInvalidDisplayId(), layer, + LayerLifecycleBatchCommandType::CREATE); + writer.setNewBufferSlotCount(getPrimaryDisplayId(), layer, 1); + writer.validateDisplay(getPrimaryDisplayId(), ComposerClientWriter::kNoTimestamp, + VtsComposerClient::kNoFrameIntervalNs); + execute(); + const auto errors = mReader.takeErrors(); + ASSERT_TRUE(errors.size() == 1 && errors[0].errorCode == IComposerClient::EX_BAD_DISPLAY); +} + +TEST_P(GraphicsComposerAidlCommandV3Test, DestroyBatchedCommand) { + if (!hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "LAYER_LIFECYCLE_BATCH_COMMAND not supported by the implementation"; + return; + } + auto& writer = getWriter(getPrimaryDisplayId()); int64_t layer = 5; writer.setLayerLifecycleBatchCommandType(getPrimaryDisplayId(), layer, @@ -2971,11 +3054,43 @@ TEST_P(GraphicsComposerAidlBatchedCommandTest, DestroyBatchedCommand) { LayerLifecycleBatchCommandType::CREATE); writer.setNewBufferSlotCount(getPrimaryDisplayId(), layer, 1); + execute(); + const auto errors = mReader.takeErrors(); + ASSERT_TRUE(errors.size() == 1 && errors[0].errorCode == IComposerClient::EX_BAD_DISPLAY); +} + +TEST_P(GraphicsComposerAidlCommandV3Test, DestroyBatchedCommand_BadDisplay) { + if (!hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "LAYER_LIFECYCLE_BATCH_COMMAND not supported by the implementation"; + return; + } + + auto& writer = getWriter(getPrimaryDisplayId()); + int64_t layer = 5; + writer.setLayerLifecycleBatchCommandType(getPrimaryDisplayId(), layer, + LayerLifecycleBatchCommandType::CREATE); + writer.setNewBufferSlotCount(getPrimaryDisplayId(), layer, 1); + writer.validateDisplay(getPrimaryDisplayId(), ComposerClientWriter::kNoTimestamp, + VtsComposerClient::kNoFrameIntervalNs); + execute(); + ASSERT_TRUE(mReader.takeErrors().empty()); + writer.setLayerLifecycleBatchCommandType(getInvalidDisplayId(), layer, + LayerLifecycleBatchCommandType::DESTROY); + layer++; + writer.setLayerLifecycleBatchCommandType(getInvalidDisplayId(), layer, + LayerLifecycleBatchCommandType::CREATE); + writer.setNewBufferSlotCount(getPrimaryDisplayId(), layer, 1); + execute(); ASSERT_TRUE(mReader.takeErrors().empty()); } -TEST_P(GraphicsComposerAidlBatchedCommandTest, NoCreateDestroyBatchedCommandIncorrectLayer) { +TEST_P(GraphicsComposerAidlCommandV3Test, NoCreateDestroyBatchedCommandIncorrectLayer) { + if (!hasCapability(Capability::LAYER_LIFECYCLE_BATCH_COMMAND)) { + GTEST_SKIP() << "LAYER_LIFECYCLE_BATCH_COMMAND not supported by the implementation"; + return; + } + auto& writer = getWriter(getPrimaryDisplayId()); int64_t layer = 5; writer.setLayerLifecycleBatchCommandType(getPrimaryDisplayId(), layer, @@ -2985,11 +3100,141 @@ TEST_P(GraphicsComposerAidlBatchedCommandTest, NoCreateDestroyBatchedCommandInco ASSERT_TRUE(errors.size() == 1 && errors[0].errorCode == IComposerClient::EX_BAD_LAYER); } -GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(GraphicsComposerAidlBatchedCommandTest); -INSTANTIATE_TEST_SUITE_P( - PerInstance, GraphicsComposerAidlBatchedCommandTest, - testing::ValuesIn(::android::getAidlHalInstanceNames(IComposer::descriptor)), - ::android::PrintInstanceNameToString); +TEST_P(GraphicsComposerAidlCommandV3Test, notifyExpectedPresentTimeout) { + if (hasCapability(Capability::PRESENT_FENCE_IS_NOT_RELIABLE)) { + GTEST_SUCCEED() << "Device has unreliable present fences capability, skipping"; + return; + } + forEachNotifyExpectedPresentConfig([&](VtsDisplay& display, + const DisplayConfiguration& config) { + const auto displayId = display.getDisplayId(); + auto minFrameIntervalNs = config.vrrConfig->minFrameIntervalNs; + const auto timeoutNs = config.vrrConfig->notifyExpectedPresentConfig->timeoutNs; + + const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); + ASSERT_NE(nullptr, buffer); + const auto layer = createOnScreenLayer(display); + auto& writer = getWriter(displayId); + writer.setLayerBuffer(displayId, layer, /*slot*/ 0, buffer->handle, + /*acquireFence*/ -1); + sp<::android::Fence> presentFence = presentAndGetFence(ComposerClientWriter::kNoTimestamp, + displayId, minFrameIntervalNs); + presentFence->waitForever(LOG_TAG); + auto lastPresentTimeNs = presentFence->getSignalTime(); + + // Frame presents 30ms after timeout + const auto timeout = static_cast(timeoutNs); + const auto vsyncPeriod = config.vsyncPeriod; + int32_t frameAfterTimeoutNs = + vsyncPeriod * static_cast((timeout + 30ms).count() / vsyncPeriod); + auto expectedPresentTimestamp = + ClockMonotonicTimestamp{lastPresentTimeNs + frameAfterTimeoutNs}; + std::this_thread::sleep_for(timeout); + mComposerClient->notifyExpectedPresent(displayId, expectedPresentTimestamp, + minFrameIntervalNs); + presentFence = presentAndGetFence(expectedPresentTimestamp, displayId, minFrameIntervalNs); + presentFence->waitForever(LOG_TAG); + lastPresentTimeNs = presentFence->getSignalTime(); + ASSERT_GE(lastPresentTimeNs, expectedPresentTimestamp.timestampNanos - vsyncPeriod / 2); + mComposerClient->destroyLayer(displayId, layer, &writer); + }); +} + +TEST_P(GraphicsComposerAidlCommandV3Test, notifyExpectedPresentFrameIntervalChange) { + if (hasCapability(Capability::PRESENT_FENCE_IS_NOT_RELIABLE)) { + GTEST_SUCCEED() << "Device has unreliable present fences capability, skipping"; + return; + } + forEachNotifyExpectedPresentConfig([&](VtsDisplay& display, + const DisplayConfiguration& config) { + const auto displayId = display.getDisplayId(); + const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); + ASSERT_NE(nullptr, buffer); + const auto layer = createOnScreenLayer(display); + auto& writer = getWriter(displayId); + writer.setLayerBuffer(displayId, layer, /*slot*/ 0, buffer->handle, + /*acquireFence*/ -1); + auto minFrameIntervalNs = config.vrrConfig->minFrameIntervalNs; + sp<::android::Fence> presentFence = presentAndGetFence(ComposerClientWriter::kNoTimestamp, + displayId, minFrameIntervalNs); + presentFence->waitForever(LOG_TAG); + auto lastPresentTimeNs = presentFence->getSignalTime(); + + auto vsyncPeriod = config.vsyncPeriod; + int32_t highestDivisor = VtsComposerClient::kMaxFrameIntervalNs / vsyncPeriod; + int32_t lowestDivisor = minFrameIntervalNs / vsyncPeriod; + const auto headsUpNs = config.vrrConfig->notifyExpectedPresentConfig->headsUpNs; + float totalDivisorsPassed = 0.f; + for (int divisor = lowestDivisor; divisor <= highestDivisor; divisor++) { + const auto frameIntervalNs = vsyncPeriod * divisor; + const auto frameAfterHeadsUp = frameIntervalNs * (headsUpNs / frameIntervalNs); + auto presentTime = lastPresentTimeNs + frameIntervalNs + frameAfterHeadsUp; + const auto expectedPresentTimestamp = ClockMonotonicTimestamp{presentTime}; + ASSERT_TRUE(mComposerClient + ->notifyExpectedPresent(displayId, expectedPresentTimestamp, + frameIntervalNs) + .isOk()); + presentFence = presentAndGetFence(expectedPresentTimestamp, displayId, frameIntervalNs); + presentFence->waitForever(LOG_TAG); + lastPresentTimeNs = presentFence->getSignalTime(); + if (lastPresentTimeNs >= expectedPresentTimestamp.timestampNanos - vsyncPeriod / 2) { + ++totalDivisorsPassed; + } + } + EXPECT_TRUE(totalDivisorsPassed > + (static_cast(highestDivisor - lowestDivisor)) * 0.75f); + mComposerClient->destroyLayer(displayId, layer, &writer); + }); +} + +TEST_P(GraphicsComposerAidlCommandV3Test, frameIntervalChangeAtPresentFrame) { + if (hasCapability(Capability::PRESENT_FENCE_IS_NOT_RELIABLE)) { + GTEST_SUCCEED() << "Device has unreliable present fences capability, skipping"; + return; + } + forEachNotifyExpectedPresentConfig([&](VtsDisplay& display, + const DisplayConfiguration& config) { + const auto displayId = display.getDisplayId(); + const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888); + ASSERT_NE(nullptr, buffer); + const auto layer = createOnScreenLayer(display); + auto& writer = getWriter(displayId); + writer.setLayerBuffer(displayId, layer, /*slot*/ 0, buffer->handle, + /*acquireFence*/ -1); + auto minFrameIntervalNs = config.vrrConfig->minFrameIntervalNs; + + auto vsyncPeriod = config.vsyncPeriod; + int32_t highestDivisor = VtsComposerClient::kMaxFrameIntervalNs / vsyncPeriod; + int32_t lowestDivisor = minFrameIntervalNs / vsyncPeriod; + const auto headsUpNs = config.vrrConfig->notifyExpectedPresentConfig->headsUpNs; + float totalDivisorsPassed = 0.f; + int divisor = lowestDivisor; + auto frameIntervalNs = vsyncPeriod * divisor; + sp<::android::Fence> presentFence = + presentAndGetFence(ComposerClientWriter::kNoTimestamp, displayId, frameIntervalNs); + presentFence->waitForever(LOG_TAG); + auto lastPresentTimeNs = presentFence->getSignalTime(); + do { + frameIntervalNs = vsyncPeriod * divisor; + ++divisor; + const auto nextFrameIntervalNs = vsyncPeriod * divisor; + const auto frameAfterHeadsUp = frameIntervalNs * (headsUpNs / frameIntervalNs); + auto presentTime = lastPresentTimeNs + frameIntervalNs + frameAfterHeadsUp; + const auto expectedPresentTimestamp = ClockMonotonicTimestamp{presentTime}; + presentFence = + presentAndGetFence(expectedPresentTimestamp, displayId, nextFrameIntervalNs); + presentFence->waitForever(LOG_TAG); + lastPresentTimeNs = presentFence->getSignalTime(); + if (lastPresentTimeNs >= expectedPresentTimestamp.timestampNanos - vsyncPeriod / 2) { + ++totalDivisorsPassed; + } + } while (divisor < highestDivisor); + EXPECT_TRUE(totalDivisorsPassed > + (static_cast(highestDivisor - lowestDivisor)) * 0.75f); + mComposerClient->destroyLayer(displayId, layer, &writer); + }); +} + GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(GraphicsComposerAidlCommandTest); INSTANTIATE_TEST_SUITE_P( PerInstance, GraphicsComposerAidlCommandTest, @@ -3015,6 +3260,11 @@ INSTANTIATE_TEST_SUITE_P( PerInstance, GraphicsComposerAidlCommandV2Test, testing::ValuesIn(::android::getAidlHalInstanceNames(IComposer::descriptor)), ::android::PrintInstanceNameToString); +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(GraphicsComposerAidlCommandV3Test); +INSTANTIATE_TEST_SUITE_P( + PerInstance, GraphicsComposerAidlCommandV3Test, + testing::ValuesIn(::android::getAidlHalInstanceNames(IComposer::descriptor)), + ::android::PrintInstanceNameToString); } // namespace aidl::android::hardware::graphics::composer3::vts int main(int argc, char** argv) { diff --git a/graphics/mapper/2.0/Android.bp b/graphics/mapper/2.0/Android.bp index 6c3ef543fbc4a7a6e88d78343ce432ce061a939b..81040ab5b01d70f94583cf1d9e614f2dd0731ac5 100644 --- a/graphics/mapper/2.0/Android.bp +++ b/graphics/mapper/2.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.0/default/Android.bp b/graphics/mapper/2.0/default/Android.bp index fffea3b5f2e14673cf3f7ecf6d7468561d9a5ab3..337e29e97c72aa1d262860fbed34c3979a091580 100644 --- a/graphics/mapper/2.0/default/Android.bp +++ b/graphics/mapper/2.0/default/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -29,7 +30,7 @@ cc_library_shared { relative_install_path: "hw", srcs: ["passthrough.cpp"], header_libs: [ - "android.hardware.graphics.mapper@2.0-passthrough" + "android.hardware.graphics.mapper@2.0-passthrough", ], shared_libs: [ "android.hardware.graphics.mapper@2.0", diff --git a/graphics/mapper/2.0/utils/hal/Android.bp b/graphics/mapper/2.0/utils/hal/Android.bp index f5d4506100d97a2320965a9326a4f2a447cb7fbe..c4a0b11a4730164beda6a69250cce95af3cf9d52 100644 --- a/graphics/mapper/2.0/utils/hal/Android.bp +++ b/graphics/mapper/2.0/utils/hal/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.0/utils/passthrough/Android.bp b/graphics/mapper/2.0/utils/passthrough/Android.bp index 23450fb0a7a50579b901688295db0056a9d109ee..257eab90cf09390d8c3323476b818aa371a160b7 100644 --- a/graphics/mapper/2.0/utils/passthrough/Android.bp +++ b/graphics/mapper/2.0/utils/passthrough/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.0/utils/vts/Android.bp b/graphics/mapper/2.0/utils/vts/Android.bp index 03f925d7bf52b1cbce692c93b1450ba4cf38e9b1..4fb78db9d5ebe0c7d1c52b2ecc416425aa357aae 100644 --- a/graphics/mapper/2.0/utils/vts/Android.bp +++ b/graphics/mapper/2.0/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.0/vts/functional/Android.bp b/graphics/mapper/2.0/vts/functional/Android.bp index 43e61565fb7fc0d1e9b1d945e6c12782d913cb86..01bb6157a475c970566a18cc62d9d32b549ccc8d 100644 --- a/graphics/mapper/2.0/vts/functional/Android.bp +++ b/graphics/mapper/2.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -33,5 +34,8 @@ cc_test { "android.hardware.graphics.mapper@2.0", "android.hardware.graphics.mapper@2.0-vts", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/graphics/mapper/2.1/Android.bp b/graphics/mapper/2.1/Android.bp index cc74156cbe34c695c32a7546dcffa4f149cc4fde..1308a6cb678ac64e09a6a4145e66d38db1e2ec58 100644 --- a/graphics/mapper/2.1/Android.bp +++ b/graphics/mapper/2.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.1/default/Android.bp b/graphics/mapper/2.1/default/Android.bp index 4f080c417f251f23f3e310269f410027a7bb82a7..8dfdbbd5fec24f1f86c054f58bba726afca14745 100644 --- a/graphics/mapper/2.1/default/Android.bp +++ b/graphics/mapper/2.1/default/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.1/utils/hal/Android.bp b/graphics/mapper/2.1/utils/hal/Android.bp index aff497cea0a1563a2aa8fd228f43e9c42813739b..47f797126fcc05d5e39c183115dafb9a404459db 100644 --- a/graphics/mapper/2.1/utils/hal/Android.bp +++ b/graphics/mapper/2.1/utils/hal/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.1/utils/passthrough/Android.bp b/graphics/mapper/2.1/utils/passthrough/Android.bp index d46041b37a2aeef0216d0536f6487e81f3be9dfb..ddfc57de545661d85dbb96de2d739567eaea665b 100644 --- a/graphics/mapper/2.1/utils/passthrough/Android.bp +++ b/graphics/mapper/2.1/utils/passthrough/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/2.1/utils/vts/Android.bp b/graphics/mapper/2.1/utils/vts/Android.bp index 5c67df9443ad00929d96fbfc2768cf15ee29f953..a0957336270f8bdd3a8c2f40c090a1eafaf0dc5b 100644 --- a/graphics/mapper/2.1/utils/vts/Android.bp +++ b/graphics/mapper/2.1/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -25,7 +26,10 @@ package { cc_library_static { name: "android.hardware.graphics.mapper@2.1-vts", - defaults: ["hidl_defaults", "VtsHalTargetTestDefaults"], + defaults: [ + "hidl_defaults", + "VtsHalTargetTestDefaults", + ], srcs: ["MapperVts.cpp"], cflags: [ "-O0", diff --git a/graphics/mapper/2.1/vts/functional/Android.bp b/graphics/mapper/2.1/vts/functional/Android.bp index 7bbc9a44f7908f09e13f25ee5c2c5aafab9d66eb..acfd52a7eeec95b7257eb0e84331d47fa3dc5a4a 100644 --- a/graphics/mapper/2.1/vts/functional/Android.bp +++ b/graphics/mapper/2.1/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -35,5 +36,8 @@ cc_test { "android.hardware.graphics.mapper@2.0-vts", "android.hardware.graphics.mapper@2.1-vts", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/graphics/mapper/3.0/Android.bp b/graphics/mapper/3.0/Android.bp index 88992a39231e7ddfefca9c97e4a1fbd60da3fd8d..b49806f9edea4d637c42b1ee2413fbe4d20f28ae 100644 --- a/graphics/mapper/3.0/Android.bp +++ b/graphics/mapper/3.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/3.0/utils/vts/Android.bp b/graphics/mapper/3.0/utils/vts/Android.bp index c0d56de1abccd37bc38bffbe1b4ce6f6f50fc5ed..d4b803535d20ab930e6d5a5704f49023cff00d79 100644 --- a/graphics/mapper/3.0/utils/vts/Android.bp +++ b/graphics/mapper/3.0/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/3.0/vts/functional/Android.bp b/graphics/mapper/3.0/vts/functional/Android.bp index e83702703ce8db2ad1a4fc3e914fdf63bcc2bcdf..57cd09b104efc00138bdb6b4a2d047018a25b5fc 100644 --- a/graphics/mapper/3.0/vts/functional/Android.bp +++ b/graphics/mapper/3.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -35,5 +36,8 @@ cc_test { "android.hardware.graphics.mapper@3.0", "android.hardware.graphics.mapper@3.0-vts", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/graphics/mapper/4.0/Android.bp b/graphics/mapper/4.0/Android.bp index 0cffce4508e61e3feecff0e5edd91785b4813069..c07f73c51a8172df7d49a3c2fcf20e3ff3c06b1d 100644 --- a/graphics/mapper/4.0/Android.bp +++ b/graphics/mapper/4.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/4.0/utils/vts/Android.bp b/graphics/mapper/4.0/utils/vts/Android.bp index 7815d41b5bba846502bd5cb8e7eb5c83fa8f24fd..c5f124c45fcf703090a4689adb7ac73a237048f0 100644 --- a/graphics/mapper/4.0/utils/vts/Android.bp +++ b/graphics/mapper/4.0/utils/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/4.0/vts/functional/Android.bp b/graphics/mapper/4.0/vts/functional/Android.bp index 6208ae9ab250e87308a40846da3b34b1403326f4..181408bcfee3ce5323fd98ec29a27761355014ef 100644 --- a/graphics/mapper/4.0/vts/functional/Android.bp +++ b/graphics/mapper/4.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/stable-c/Android.bp b/graphics/mapper/stable-c/Android.bp index 1d01a02707e1f6d29a9eda39005baa30aca2fb84..40486fd10528470d335c12254f1bff839b3353c9 100644 --- a/graphics/mapper/stable-c/Android.bp +++ b/graphics/mapper/stable-c/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_core_graphics_stack", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/graphics/mapper/stable-c/vts/VtsHalGraphicsMapperStableC_TargetTest.cpp b/graphics/mapper/stable-c/vts/VtsHalGraphicsMapperStableC_TargetTest.cpp index b329de26a31a2454833946d43687565b3f37bf65..1e0c42771500754ea7f8a4e2a0e89644cbba88b1 100644 --- a/graphics/mapper/stable-c/vts/VtsHalGraphicsMapperStableC_TargetTest.cpp +++ b/graphics/mapper/stable-c/vts/VtsHalGraphicsMapperStableC_TargetTest.cpp @@ -166,7 +166,8 @@ class GraphicsTestsBase { auto status = mAllocator->getIMapperLibrarySuffix(&mapperSuffix); ASSERT_TRUE(status.isOk()) << "Failed to get IMapper library suffix"; std::string lib_name = "mapper." + mapperSuffix + ".so"; - void* so = android_load_sphal_library(lib_name.c_str(), RTLD_LOCAL | RTLD_NOW); + void* so = AServiceManager_openDeclaredPassthroughHal("mapper", mapperSuffix.c_str(), + RTLD_LOCAL | RTLD_NOW); ASSERT_NE(nullptr, so) << "Failed to load " << lib_name; mIMapperLoader = (AIMapper_loadIMapperFn)dlsym(so, "AIMapper_loadIMapper"); ASSERT_NE(nullptr, mIMapperLoader) << "AIMapper_locaIMapper missing from " << lib_name; diff --git a/health/2.0/README.md b/health/2.0/README.md index 8a7c922e141db4667b30825a28b56c22482b9af6..1c636c74cd216378dbfd1fe63c8eea941e639c7c 100644 --- a/health/2.0/README.md +++ b/health/2.0/README.md @@ -1,181 +1,7 @@ -# Implement the 2.1 HAL instead! +# Deprecated. -It is strongly recommended that you implement the 2.1 HAL directly. See -`hardware/interfaces/health/2.1/README.md` for more details. +Health HIDL HAL 2.0 is deprecated and subject to removal. Please +implement the Health AIDL HAL instead. -# Upgrading from Health 1.0 HAL - -1. Remove `android.hardware.health@1.0*` from `PRODUCT_PACKAGES` - in `device///device.mk` - -1. If the device does not have a vendor-specific `libhealthd` AND does not - implement storage-related APIs, just do the following: - - ```mk - PRODUCT_PACKAGES += android.hardware.health@2.0-service - ``` - - Otherwise, continue to the next step. - -1. Create directory - `device///health` - -1. Create `device///health/Android.bp` - (or equivalent `device///health/Android.mk`) - - ```bp - cc_binary { - name: "android.hardware.health@2.0-service.", - init_rc: ["android.hardware.health@2.0-service..rc"], - proprietary: true, - relative_install_path: "hw", - srcs: [ - "HealthService.cpp", - ], - - cflags: [ - "-Wall", - "-Werror", - ], - - static_libs: [ - "android.hardware.health@2.0-impl", - "android.hardware.health@1.0-convert", - "libhealthservice", - "libbatterymonitor", - ], - - shared_libs: [ - "libbase", - "libcutils", - "libhidlbase", - "libutils", - "android.hardware.health@2.0", - ], - - header_libs: ["libhealthd_headers"], - - overrides: [ - "healthd", - ], - } - ``` - - 1. (recommended) To remove `healthd` from the build, keep "overrides" section. - 1. To keep `healthd` in the build, remove "overrides" section. - -1. Create `device///health/android.hardware.health@2.0-service..rc` - - ```rc - service vendor.health-hal-2-0 /vendor/bin/hw/android.hardware.health@2.0-service. - class hal - user system - group system - capabilities WAKE_ALARM - file /dev/kmsg w - ``` - -1. Create `device///health/HealthService.cpp`: - - ```c++ - #include - int main() { return health_service_main(); } - ``` - -1. `libhealthd` dependency: - - 1. If the device has a vendor-specific `libhealthd.`, add it to static_libs. - - 1. If the device does not have a vendor-specific `libhealthd`, add the following - lines to `HealthService.cpp`: - - ```c++ - #include - void healthd_board_init(struct healthd_config*) {} - - int healthd_board_battery_update(struct android::BatteryProperties*) { - // return 0 to log periodic polled battery status to kernel log - return 0; - } - ``` - -1. Storage related APIs: - - 1. If the device does not implement `IHealth.getDiskStats` and - `IHealth.getStorageInfo`, add `libhealthstoragedefault` to `static_libs`. - - 1. If the device implements one of these two APIs, add and implement the - following functions in `HealthService.cpp`: - - ```c++ - void get_storage_info(std::vector& info) { - // ... - } - void get_disk_stats(std::vector& stats) { - // ... - } - ``` - -1. Update necessary SELinux permissions. For example, - - ``` - # device///sepolicy/vendor/file_contexts - /vendor/bin/hw/android\.hardware\.health@2\.0-service\. u:object_r:hal_health_default_exec:s0 - - # device///sepolicy/vendor/hal_health_default.te - # Add device specific permissions to hal_health_default domain, especially - # if a device-specific libhealthd is used and/or device-specific storage related - # APIs are implemented. - ``` - -1. Implementing health HAL in recovery. The health HAL is used for battery -status checks during OTA for non-A/B devices. If the health HAL is not -implemented in recovery, `is_battery_ok()` will always return `true`. - - 1. If the device does not have a vendor-specific `libhealthd`, nothing needs to - be done. A "backup" implementation is provided in - `android.hardware.health@2.0-impl-default`, which is always installed to recovery - image by default. - - 1. If the device does have a vendor-specific `libhealthd`, implement the following - module and include it in `PRODUCT_PACKAGES` (replace `` with appropriate - strings): - - ```bp - // Android.bp - cc_library_shared { - name: "android.hardware.health@2.0-impl-", - recovery_available: true, - relative_install_path: "hw", - static_libs: [ - "android.hardware.health@2.0-impl", - "libhealthd." - // Include the following or implement device-specific storage APIs - "libhealthstoragedefault", - ], - srcs: [ - "HealthImpl.cpp", - ], - overrides: [ - "android.hardware.health@2.0-impl-default", - ], - } - ``` - - ```c++ - // HealthImpl.cpp - #include - #include - using android::hardware::health::V2_0::IHealth; - using android::hardware::health::V2_0::implementation::Health; - extern "C" IHealth* HIDL_FETCH_IHealth(const char* name) { - const static std::string providedInstance{"default"}; - if (providedInstance != name) return nullptr; - return Health::initInstance(&gHealthdConfig).get(); - } - ``` - - ```mk - # device.mk - PRODUCT_PACKAGES += android.hardware.health@2.0-impl- - ``` +See [`hardware/interfaces/health/aidl/README.md`](../aidl/README.md) for +details. diff --git a/health/2.0/default/Android.bp b/health/2.0/default/Android.bp deleted file mode 100644 index 73cd55305874db0a052c3c70a2a74f6d87ad211f..0000000000000000000000000000000000000000 --- a/health/2.0/default/Android.bp +++ /dev/null @@ -1,72 +0,0 @@ -package { - // See: http://go/android-license-faq - // A large-scale-change added 'default_applicable_licenses' to import - // all of the 'license_kinds' from "hardware_interfaces_license" - // to get the below license kinds: - // SPDX-license-identifier-Apache-2.0 - default_applicable_licenses: ["hardware_interfaces_license"], -} - -cc_defaults { - name: "android.hardware.health@2.0-impl_defaults", - - recovery_available: true, - cflags: [ - "-Wall", - "-Werror", - ], - - shared_libs: [ - "libbase", - "libhidlbase", - "liblog", - "libutils", - "libcutils", - "android.hardware.health@2.0", - ], - - static_libs: [ - "libbatterymonitor", - "android.hardware.health@1.0-convert", - ], -} - -// Helper library for implementing health HAL. It is recommended that a health -// service or passthrough HAL link to this library. -cc_library_static { - name: "android.hardware.health@2.0-impl", - defaults: ["android.hardware.health@2.0-impl_defaults"], - - vendor_available: true, - srcs: [ - "Health.cpp", - "healthd_common_adapter.cpp", - ], - - whole_static_libs: [ - "libhealthloop", - ], - - export_include_dirs: ["include"], -} - -// Default passthrough implementation for recovery. Vendors can implement -// android.hardware.health@2.0-impl-recovery- to customize the behavior -// of the HAL in recovery. -// The implementation does NOT start the uevent loop for polling. -cc_library_shared { - name: "android.hardware.health@2.0-impl-default", - defaults: ["android.hardware.health@2.0-impl_defaults"], - - recovery_available: true, - relative_install_path: "hw", - - static_libs: [ - "android.hardware.health@2.0-impl", - "libhealthstoragedefault", - ], - - srcs: [ - "HealthImplDefault.cpp", - ], -} diff --git a/health/2.0/default/Health.cpp b/health/2.0/default/Health.cpp deleted file mode 100644 index 65eada85d0e824dfb68e925852456d1445564393..0000000000000000000000000000000000000000 --- a/health/2.0/default/Health.cpp +++ /dev/null @@ -1,306 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#define LOG_TAG "android.hardware.health@2.0-impl" -#include - -#include -#include -#include - -#include -#include - -using HealthInfo_1_0 = android::hardware::health::V1_0::HealthInfo; -using android::hardware::health::V1_0::hal_conversion::convertFromHealthInfo; - -extern void healthd_battery_update_internal(bool); - -namespace android { -namespace hardware { -namespace health { -namespace V2_0 { -namespace implementation { - -sp Health::instance_; - -Health::Health(struct healthd_config* c) { - // TODO(b/69268160): remove when libhealthd is removed. - healthd_board_init(c); - battery_monitor_ = std::make_unique(); - battery_monitor_->init(c); -} - -// Methods from IHealth follow. -Return Health::registerCallback(const sp& callback) { - if (callback == nullptr) { - return Result::SUCCESS; - } - - { - std::lock_guard lock(callbacks_lock_); - callbacks_.push_back(callback); - // unlock - } - - auto linkRet = callback->linkToDeath(this, 0u /* cookie */); - if (!linkRet.withDefault(false)) { - LOG(WARNING) << __func__ << "Cannot link to death: " - << (linkRet.isOk() ? "linkToDeath returns false" : linkRet.description()); - // ignore the error - } - - return updateAndNotify(callback); -} - -bool Health::unregisterCallbackInternal(const sp& callback) { - if (callback == nullptr) return false; - - bool removed = false; - std::lock_guard lock(callbacks_lock_); - for (auto it = callbacks_.begin(); it != callbacks_.end();) { - if (interfacesEqual(*it, callback)) { - it = callbacks_.erase(it); - removed = true; - } else { - ++it; - } - } - (void)callback->unlinkToDeath(this).isOk(); // ignore errors - return removed; -} - -Return Health::unregisterCallback(const sp& callback) { - return unregisterCallbackInternal(callback) ? Result::SUCCESS : Result::NOT_FOUND; -} - -template -void getProperty(const std::unique_ptr& monitor, int id, T defaultValue, - const std::function& callback) { - struct BatteryProperty prop; - T ret = defaultValue; - Result result = Result::SUCCESS; - status_t err = monitor->getProperty(static_cast(id), &prop); - if (err != OK) { - LOG(DEBUG) << "getProperty(" << id << ")" - << " fails: (" << err << ") " << strerror(-err); - } else { - ret = static_cast(prop.valueInt64); - } - switch (err) { - case OK: - result = Result::SUCCESS; - break; - case NAME_NOT_FOUND: - result = Result::NOT_SUPPORTED; - break; - default: - result = Result::UNKNOWN; - break; - } - callback(result, static_cast(ret)); -} - -Return Health::getChargeCounter(getChargeCounter_cb _hidl_cb) { - getProperty(battery_monitor_, BATTERY_PROP_CHARGE_COUNTER, 0, _hidl_cb); - return Void(); -} - -Return Health::getCurrentNow(getCurrentNow_cb _hidl_cb) { - getProperty(battery_monitor_, BATTERY_PROP_CURRENT_NOW, 0, _hidl_cb); - return Void(); -} - -Return Health::getCurrentAverage(getCurrentAverage_cb _hidl_cb) { - getProperty(battery_monitor_, BATTERY_PROP_CURRENT_AVG, 0, _hidl_cb); - return Void(); -} - -Return Health::getCapacity(getCapacity_cb _hidl_cb) { - getProperty(battery_monitor_, BATTERY_PROP_CAPACITY, 0, _hidl_cb); - return Void(); -} - -Return Health::getEnergyCounter(getEnergyCounter_cb _hidl_cb) { - getProperty(battery_monitor_, BATTERY_PROP_ENERGY_COUNTER, 0, _hidl_cb); - return Void(); -} - -Return Health::getChargeStatus(getChargeStatus_cb _hidl_cb) { - getProperty(battery_monitor_, BATTERY_PROP_BATTERY_STATUS, BatteryStatus::UNKNOWN, _hidl_cb); - return Void(); -} - -Return Health::update() { - if (!healthd_mode_ops || !healthd_mode_ops->battery_update) { - LOG(WARNING) << "health@2.0: update: not initialized. " - << "update() should not be called in charger"; - return Result::UNKNOWN; - } - - // Retrieve all information and call healthd_mode_ops->battery_update, which calls - // notifyListeners. - battery_monitor_->updateValues(); - const HealthInfo_1_0& health_info = battery_monitor_->getHealthInfo_1_0(); - struct BatteryProperties props; - convertFromHealthInfo(health_info, &props); - bool log = (healthd_board_battery_update(&props) == 0); - if (log) { - battery_monitor_->logValues(); - } - healthd_mode_ops->battery_update(&props); - bool chargerOnline = battery_monitor_->isChargerOnline(); - - // adjust uevent / wakealarm periods - healthd_battery_update_internal(chargerOnline); - - return Result::SUCCESS; -} - -Return Health::updateAndNotify(const sp& callback) { - std::lock_guard lock(callbacks_lock_); - std::vector> storedCallbacks{std::move(callbacks_)}; - callbacks_.clear(); - if (callback != nullptr) { - callbacks_.push_back(callback); - } - Return result = update(); - callbacks_ = std::move(storedCallbacks); - return result; -} - -void Health::notifyListeners(HealthInfo* healthInfo) { - std::vector info; - get_storage_info(info); - - std::vector stats; - get_disk_stats(stats); - - int32_t currentAvg = 0; - - struct BatteryProperty prop; - status_t ret = battery_monitor_->getProperty(BATTERY_PROP_CURRENT_AVG, &prop); - if (ret == OK) { - currentAvg = static_cast(prop.valueInt64); - } - - healthInfo->batteryCurrentAverage = currentAvg; - healthInfo->diskStats = stats; - healthInfo->storageInfos = info; - - std::lock_guard lock(callbacks_lock_); - for (auto it = callbacks_.begin(); it != callbacks_.end();) { - auto ret = (*it)->healthInfoChanged(*healthInfo); - if (!ret.isOk() && ret.isDeadObject()) { - it = callbacks_.erase(it); - } else { - ++it; - } - } -} - -Return Health::debug(const hidl_handle& handle, const hidl_vec&) { - if (handle != nullptr && handle->numFds >= 1) { - int fd = handle->data[0]; - battery_monitor_->dumpState(fd); - - getHealthInfo([fd](auto res, const auto& info) { - android::base::WriteStringToFd("\ngetHealthInfo -> ", fd); - if (res == Result::SUCCESS) { - android::base::WriteStringToFd(toString(info), fd); - } else { - android::base::WriteStringToFd(toString(res), fd); - } - android::base::WriteStringToFd("\n", fd); - }); - - fsync(fd); - } - return Void(); -} - -Return Health::getStorageInfo(getStorageInfo_cb _hidl_cb) { - std::vector info; - get_storage_info(info); - hidl_vec info_vec(info); - if (!info.size()) { - _hidl_cb(Result::NOT_SUPPORTED, info_vec); - } else { - _hidl_cb(Result::SUCCESS, info_vec); - } - return Void(); -} - -Return Health::getDiskStats(getDiskStats_cb _hidl_cb) { - std::vector stats; - get_disk_stats(stats); - hidl_vec stats_vec(stats); - if (!stats.size()) { - _hidl_cb(Result::NOT_SUPPORTED, stats_vec); - } else { - _hidl_cb(Result::SUCCESS, stats_vec); - } - return Void(); -} - -Return Health::getHealthInfo(getHealthInfo_cb _hidl_cb) { - using android::hardware::health::V1_0::hal_conversion::convertToHealthInfo; - - updateAndNotify(nullptr); - HealthInfo healthInfo = battery_monitor_->getHealthInfo_2_0(); - - std::vector info; - get_storage_info(info); - - std::vector stats; - get_disk_stats(stats); - - int32_t currentAvg = 0; - - struct BatteryProperty prop; - status_t ret = battery_monitor_->getProperty(BATTERY_PROP_CURRENT_AVG, &prop); - if (ret == OK) { - currentAvg = static_cast(prop.valueInt64); - } - - healthInfo.batteryCurrentAverage = currentAvg; - healthInfo.diskStats = stats; - healthInfo.storageInfos = info; - - _hidl_cb(Result::SUCCESS, healthInfo); - return Void(); -} - -void Health::serviceDied(uint64_t /* cookie */, const wp& who) { - (void)unregisterCallbackInternal(who.promote()); -} - -sp Health::initInstance(struct healthd_config* c) { - if (instance_ == nullptr) { - instance_ = new Health(c); - } - return instance_; -} - -sp Health::getImplementation() { - CHECK(instance_ != nullptr); - return instance_; -} - -} // namespace implementation -} // namespace V2_0 -} // namespace health -} // namespace hardware -} // namespace android diff --git a/health/2.0/default/HealthImplDefault.cpp b/health/2.0/default/HealthImplDefault.cpp deleted file mode 100644 index 08fee9ea71744b012b6e9735a8f8ee952d1de66c..0000000000000000000000000000000000000000 --- a/health/2.0/default/HealthImplDefault.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include - -using android::hardware::health::V2_0::IHealth; -using android::hardware::health::V2_0::implementation::Health; - -static struct healthd_config gHealthdConfig = { - .energyCounter = nullptr, - .boot_min_cap = 0, - .screen_on = nullptr}; - -void healthd_board_init(struct healthd_config*) { - // use defaults -} - -int healthd_board_battery_update(struct android::BatteryProperties*) { - // return 0 to log periodic polled battery status to kernel log - return 0; -} - -void healthd_mode_default_impl_init(struct healthd_config*) { - // noop -} - -int healthd_mode_default_impl_preparetowait(void) { - return -1; -} - -void healthd_mode_default_impl_heartbeat(void) { - // noop -} - -void healthd_mode_default_impl_battery_update(struct android::BatteryProperties*) { - // noop -} - -static struct healthd_mode_ops healthd_mode_default_impl_ops = { - .init = healthd_mode_default_impl_init, - .preparetowait = healthd_mode_default_impl_preparetowait, - .heartbeat = healthd_mode_default_impl_heartbeat, - .battery_update = healthd_mode_default_impl_battery_update, -}; - -extern "C" IHealth* HIDL_FETCH_IHealth(const char* name) { - const static std::string providedInstance{"backup"}; - healthd_mode_ops = &healthd_mode_default_impl_ops; - if (providedInstance == name) { - // use defaults - // Health class stores static instance - return Health::initInstance(&gHealthdConfig).get(); - } - return nullptr; -} diff --git a/health/2.0/default/healthd_common_adapter.cpp b/health/2.0/default/healthd_common_adapter.cpp deleted file mode 100644 index 0b5d869496e5fb27860ca7669aaf9e6caca70715..0000000000000000000000000000000000000000 --- a/health/2.0/default/healthd_common_adapter.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (C) 2019 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// Support legacy functions in healthd/healthd.h using healthd_mode_ops. -// New code should use HealthLoop directly instead. - -#include - -#include -#include -#include -#include - -using android::hardware::health::HealthLoop; -using android::hardware::health::V2_0::implementation::Health; - -struct healthd_mode_ops* healthd_mode_ops = nullptr; - -// Adapter of HealthLoop to use legacy healthd_mode_ops. -class HealthLoopAdapter : public HealthLoop { - public: - // Expose internal functions, assuming clients calls them in the same thread - // where StartLoop is called. - int RegisterEvent(int fd, BoundFunction func, EventWakeup wakeup) { - return HealthLoop::RegisterEvent(fd, func, wakeup); - } - void AdjustWakealarmPeriods(bool charger_online) { - return HealthLoop::AdjustWakealarmPeriods(charger_online); - } - protected: - void Init(healthd_config* config) override { healthd_mode_ops->init(config); } - void Heartbeat() override { healthd_mode_ops->heartbeat(); } - int PrepareToWait() override { return healthd_mode_ops->preparetowait(); } - void ScheduleBatteryUpdate() override { Health::getImplementation()->update(); } -}; -static std::unique_ptr health_loop; - -int healthd_register_event(int fd, void (*handler)(uint32_t), EventWakeup wakeup) { - if (!health_loop) return -1; - - auto wrapped_handler = [handler](auto*, uint32_t epevents) { handler(epevents); }; - return health_loop->RegisterEvent(fd, wrapped_handler, wakeup); -} - -void healthd_battery_update_internal(bool charger_online) { - if (!health_loop) return; - health_loop->AdjustWakealarmPeriods(charger_online); -} - -int healthd_main() { - if (!healthd_mode_ops) { - KLOG_ERROR("healthd ops not set, exiting\n"); - exit(1); - } - - health_loop = std::make_unique(); - - int ret = health_loop->StartLoop(); - - // Should not reach here. The following will exit(). - health_loop.reset(); - - return ret; -} diff --git a/health/2.0/default/include/health2/Health.h b/health/2.0/default/include/health2/Health.h deleted file mode 100644 index 6410474511fbfbf41264daf4b61696c35f032a53..0000000000000000000000000000000000000000 --- a/health/2.0/default/include/health2/Health.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef ANDROID_HARDWARE_HEALTH_V2_0_HEALTH_H -#define ANDROID_HARDWARE_HEALTH_V2_0_HEALTH_H - -#include -#include - -#include -#include -#include -#include - -using android::hardware::health::V2_0::StorageInfo; -using android::hardware::health::V2_0::DiskStats; - -void get_storage_info(std::vector& info); -void get_disk_stats(std::vector& stats); - -namespace android { -namespace hardware { -namespace health { -namespace V2_0 { -namespace implementation { - -using V1_0::BatteryStatus; - -using ::android::hidl::base::V1_0::IBase; - -struct Health : public IHealth, hidl_death_recipient { - public: - static sp initInstance(struct healthd_config* c); - // Should only be called by implementation itself (-impl, -service). - // Clients should not call this function. Instead, initInstance() initializes and returns the - // global instance that has fewer functions. - static sp getImplementation(); - - Health(struct healthd_config* c); - - void notifyListeners(HealthInfo* info); - - // Methods from IHealth follow. - Return registerCallback(const sp& callback) override; - Return unregisterCallback(const sp& callback) override; - Return update() override; - Return getChargeCounter(getChargeCounter_cb _hidl_cb) override; - Return getCurrentNow(getCurrentNow_cb _hidl_cb) override; - Return getCurrentAverage(getCurrentAverage_cb _hidl_cb) override; - Return getCapacity(getCapacity_cb _hidl_cb) override; - Return getEnergyCounter(getEnergyCounter_cb _hidl_cb) override; - Return getChargeStatus(getChargeStatus_cb _hidl_cb) override; - Return getStorageInfo(getStorageInfo_cb _hidl_cb) override; - Return getDiskStats(getDiskStats_cb _hidl_cb) override; - Return getHealthInfo(getHealthInfo_cb _hidl_cb) override; - - // Methods from ::android::hidl::base::V1_0::IBase follow. - Return debug(const hidl_handle& fd, const hidl_vec& args) override; - - void serviceDied(uint64_t cookie, const wp& /* who */) override; - - private: - static sp instance_; - - std::recursive_mutex callbacks_lock_; - std::vector> callbacks_; - std::unique_ptr battery_monitor_; - - bool unregisterCallbackInternal(const sp& cb); - - // update() and only notify the given callback, but none of the other callbacks. - // If cb is null, do not notify any callback at all. - Return updateAndNotify(const sp& cb); -}; - -} // namespace implementation -} // namespace V2_0 -} // namespace health -} // namespace hardware -} // namespace android - -#endif // ANDROID_HARDWARE_HEALTH_V2_0_HEALTH_H diff --git a/health/2.0/utils/README.md b/health/2.0/utils/README.md index c59b3f34df2b4465450e7292ce1f5eaefa4e9dfb..3fc8dabe3ea4717d99ceec2f3859ca10fcf22b91 100644 --- a/health/2.0/utils/README.md +++ b/health/2.0/utils/README.md @@ -6,25 +6,3 @@ by healthd). C++ clients of health HAL should use this library instead of calling `IHealth::getService()` directly. Its Java equivalent can be found in `BatteryService.HealthServiceWrapper`. - -# libhealthservice - -Common code for all (hwbinder) services of the health HAL, including healthd and -vendor health service `android.hardware.health@2.0-service(.)`. `main()` in -those binaries calls `health_service_main()` directly. - -# libhealthstoragedefault - -Default implementation for storage related APIs for (hwbinder) services of the -health HAL. If an implementation of the health HAL do not wish to provide any -storage info, include this library. Otherwise, it should implement the following -two functions: - -```c++ -void get_storage_info(std::vector& info) { - // ... -} -void get_disk_stats(std::vector& stats) { - // ... -} -``` diff --git a/health/2.0/utils/libhealthhalutils/HealthHalUtils.cpp b/health/2.0/utils/libhealthhalutils/HealthHalUtils.cpp index 3c353e6a78f1fdf05e9df6f27799bf40b92e2d4d..67f0ecc38271b6c4abeb531e6c72221026a8ca4e 100644 --- a/health/2.0/utils/libhealthhalutils/HealthHalUtils.cpp +++ b/health/2.0/utils/libhealthhalutils/HealthHalUtils.cpp @@ -24,34 +24,14 @@ namespace hardware { namespace health { namespace V2_0 { +// Deprecated. Kept to minimize migration cost. +// The function can be removed once Health 2.1 is removed +// (i.e. compatibility_matrix.7.xml is the lowest supported level). sp get_health_service() { - // For the core and vendor variant, the "backup" instance points to healthd, - // which is removed. - // For the recovery variant, the "backup" instance has a different - // meaning. It points to android.hardware.health@2.0-impl-default.recovery - // which was assumed by OEMs to be always installed when a - // vendor-specific libhealthd is not necessary. Hence, its behavior - // is kept. See health/2.0/README.md. - // android.hardware.health@2.0-impl-default.recovery, and subsequently the - // special handling of recovery mode below, can be removed once health@2.1 - // is the minimum required version (i.e. compatibility matrix level 5 is the - // minimum supported level). Health 2.1 requires OEMs to install the + // Health 2.1 requires OEMs to install the // implementation to the recovery partition when it is necessary (i.e. on // non-A/B devices, where IsBatteryOk() is needed in recovery). - for (auto&& instanceName : -#ifdef __ANDROID_RECOVERY__ - { "default", "backup" } -#else - {"default"} -#endif - ) { - auto ret = IHealth::getService(instanceName); - if (ret != nullptr) { - return ret; - } - LOG(INFO) << "health: cannot get " << instanceName << " service"; - } - return nullptr; + return IHealth::getService(); } } // namespace V2_0 diff --git a/health/2.0/utils/libhealthservice/Android.bp b/health/2.0/utils/libhealthservice/Android.bp deleted file mode 100644 index 8023692247219f3359cc86a054fc7ae2774a9f37..0000000000000000000000000000000000000000 --- a/health/2.0/utils/libhealthservice/Android.bp +++ /dev/null @@ -1,38 +0,0 @@ -// Reasonable defaults for android.hardware.health@2.0-service.. -// Vendor service can customize by implementing functions defined in -// libhealthd and libhealthstoragedefault. - - -package { - // See: http://go/android-license-faq - // A large-scale-change added 'default_applicable_licenses' to import - // all of the 'license_kinds' from "hardware_interfaces_license" - // to get the below license kinds: - // SPDX-license-identifier-Apache-2.0 - default_applicable_licenses: ["hardware_interfaces_license"], -} - -cc_library_static { - name: "libhealthservice", - vendor_available: true, - srcs: ["HealthServiceCommon.cpp"], - - export_include_dirs: ["include"], - - cflags: [ - "-Wall", - "-Werror", - ], - shared_libs: [ - "android.hardware.health@2.0", - ], - static_libs: [ - "android.hardware.health@2.0-impl", - "android.hardware.health@1.0-convert", - ], - export_static_lib_headers: [ - "android.hardware.health@1.0-convert", - ], - header_libs: ["libhealthd_headers"], - export_header_lib_headers: ["libhealthd_headers"], -} diff --git a/health/2.0/utils/libhealthservice/HealthServiceCommon.cpp b/health/2.0/utils/libhealthservice/HealthServiceCommon.cpp deleted file mode 100644 index 039570a7c077dc25762b06d9c0c543d043df13a5..0000000000000000000000000000000000000000 --- a/health/2.0/utils/libhealthservice/HealthServiceCommon.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define LOG_TAG "health@2.0/" -#include - -#include -#include -#include -#include -#include -#include -#include - -using android::hardware::IPCThreadState; -using android::hardware::configureRpcThreadpool; -using android::hardware::handleTransportPoll; -using android::hardware::setupTransportPolling; -using android::hardware::health::V2_0::HealthInfo; -using android::hardware::health::V1_0::hal_conversion::convertToHealthInfo; -using android::hardware::health::V2_0::IHealth; -using android::hardware::health::V2_0::implementation::Health; - -extern int healthd_main(void); - -static int gBinderFd = -1; -static std::string gInstanceName; - -static void binder_event(uint32_t /*epevents*/) { - if (gBinderFd >= 0) handleTransportPoll(gBinderFd); -} - -void healthd_mode_service_2_0_init(struct healthd_config* config) { - LOG(INFO) << LOG_TAG << gInstanceName << " Hal is starting up..."; - - gBinderFd = setupTransportPolling(); - - if (gBinderFd >= 0) { - if (healthd_register_event(gBinderFd, binder_event)) - LOG(ERROR) << LOG_TAG << gInstanceName << ": Register for binder events failed"; - } - - android::sp service = Health::initInstance(config); - CHECK_EQ(service->registerAsService(gInstanceName), android::OK) - << LOG_TAG << gInstanceName << ": Failed to register HAL"; - - LOG(INFO) << LOG_TAG << gInstanceName << ": Hal init done"; -} - -int healthd_mode_service_2_0_preparetowait(void) { - IPCThreadState::self()->flushCommands(); - return -1; -} - -void healthd_mode_service_2_0_heartbeat(void) { - // noop -} - -void healthd_mode_service_2_0_battery_update(struct android::BatteryProperties* prop) { - HealthInfo info; - convertToHealthInfo(prop, info.legacy); - Health::getImplementation()->notifyListeners(&info); -} - -static struct healthd_mode_ops healthd_mode_service_2_0_ops = { - .init = healthd_mode_service_2_0_init, - .preparetowait = healthd_mode_service_2_0_preparetowait, - .heartbeat = healthd_mode_service_2_0_heartbeat, - .battery_update = healthd_mode_service_2_0_battery_update, -}; - -int health_service_main(const char* instance) { - gInstanceName = instance; - if (gInstanceName.empty()) { - gInstanceName = "default"; - } - healthd_mode_ops = &healthd_mode_service_2_0_ops; - LOG(INFO) << LOG_TAG << gInstanceName << ": Hal starting main loop..."; - return healthd_main(); -} diff --git a/health/OWNERS b/health/OWNERS index 1d4d0864c2110d005a4697978c578d11a5488ee7..e540d559e680d762f009b066bd40644cd7b4adee 100644 --- a/health/OWNERS +++ b/health/OWNERS @@ -1,6 +1,6 @@ # Bug component: 30545 apelosi@google.com -elsk@google.com +dvander@google.com smoreland@google.com wjack@google.com diff --git a/health/aidl/Android.bp b/health/aidl/Android.bp index 4691dd6432a274ea3be40b7734ef880804588684..97de0e2698979e79a2c9ec0c10f0159843041f80 100644 --- a/health/aidl/Android.bp +++ b/health/aidl/Android.bp @@ -46,9 +46,13 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, ], - frozen: false, + frozen: true, } diff --git a/health/aidl/aidl_api/android.hardware.health/3/.hash b/health/aidl/aidl_api/android.hardware.health/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..40b6dbf1198eca2a87177608ed78f37b866911da --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/.hash @@ -0,0 +1 @@ +3bab6273a5491102b29c9d7a1f0efa749533f46d diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryCapacityLevel.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryCapacityLevel.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4d705887e5ba153997630aad3aa6f0f3bb60d3b1 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryCapacityLevel.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@Backing(type="int") @VintfStability +enum BatteryCapacityLevel { + UNSUPPORTED = (-1) /* -1 */, + UNKNOWN, + CRITICAL, + LOW, + NORMAL, + HIGH, + FULL, +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingPolicy.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingPolicy.aidl new file mode 100644 index 0000000000000000000000000000000000000000..42fbf950904b41a0175fba3cbec38221b0833348 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingPolicy.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@Backing(type="int") @VintfStability +enum BatteryChargingPolicy { + INVALID = 0, + DEFAULT = 1, + LONG_LIFE = 2, + ADAPTIVE = 3, +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingState.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e21eb2813339faa76a84f69c94ad52b77b5edb0c --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryChargingState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@Backing(type="int") @VintfStability +enum BatteryChargingState { + INVALID = 0, + NORMAL = 1, + TOO_COLD = 2, + TOO_HOT = 3, + LONG_LIFE = 4, + ADAPTIVE = 5, +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealth.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealth.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8d13198440d4d017b6cdd3361c30e51c1a804c4c --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealth.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@Backing(type="int") @VintfStability +enum BatteryHealth { + UNKNOWN = 1, + GOOD = 2, + OVERHEAT = 3, + DEAD = 4, + OVER_VOLTAGE = 5, + UNSPECIFIED_FAILURE = 6, + COLD = 7, + FAIR = 8, + NOT_AVAILABLE = 11, + INCONSISTENT = 12, +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealthData.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealthData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..089c8ac3ae5e60f663c2c63880f07a45d1d1d123 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryHealthData.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@VintfStability +parcelable BatteryHealthData { + long batteryManufacturingDateSeconds; + long batteryFirstUsageSeconds; + long batteryStateOfHealth; + @nullable String batterySerialNumber; + android.hardware.health.BatteryPartStatus batteryPartStatus = android.hardware.health.BatteryPartStatus.UNSUPPORTED; +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryPartStatus.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryPartStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..93037679758bc85a2095ab055d007f59ce85c904 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryPartStatus.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@Backing(type="int") @VintfStability +enum BatteryPartStatus { + UNSUPPORTED = 0, + ORIGINAL = 1, + REPLACED = 2, +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryStatus.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..340b2ecc3f2401013c442b07068a85e3f9cc9e89 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/BatteryStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@Backing(type="int") @VintfStability +enum BatteryStatus { + UNKNOWN = 1, + CHARGING = 2, + DISCHARGING = 3, + NOT_CHARGING = 4, + FULL = 5, +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/DiskStats.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/DiskStats.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5aa58900bb3544c8853751cef35f9192baf98e23 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/DiskStats.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@VintfStability +parcelable DiskStats { + long reads; + long readMerges; + long readSectors; + long readTicks; + long writes; + long writeMerges; + long writeSectors; + long writeTicks; + long ioInFlight; + long ioTicks; + long ioInQueue; +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/HealthInfo.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/HealthInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bfa14758f3406edaff15080303652cd10b1e9b03 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/HealthInfo.aidl @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@VintfStability +parcelable HealthInfo { + boolean chargerAcOnline; + boolean chargerUsbOnline; + boolean chargerWirelessOnline; + boolean chargerDockOnline; + int maxChargingCurrentMicroamps; + int maxChargingVoltageMicrovolts; + android.hardware.health.BatteryStatus batteryStatus; + android.hardware.health.BatteryHealth batteryHealth; + boolean batteryPresent; + int batteryLevel; + int batteryVoltageMillivolts; + int batteryTemperatureTenthsCelsius; + int batteryCurrentMicroamps; + int batteryCycleCount; + int batteryFullChargeUah; + int batteryChargeCounterUah; + String batteryTechnology; + int batteryCurrentAverageMicroamps; + android.hardware.health.DiskStats[] diskStats; + android.hardware.health.StorageInfo[] storageInfos; + android.hardware.health.BatteryCapacityLevel batteryCapacityLevel; + long batteryChargeTimeToFullNowSeconds; + int batteryFullChargeDesignCapacityUah; + android.hardware.health.BatteryChargingState chargingState; + android.hardware.health.BatteryChargingPolicy chargingPolicy; + @nullable android.hardware.health.BatteryHealthData batteryHealthData; + const int BATTERY_CHARGE_TIME_TO_FULL_NOW_SECONDS_UNSUPPORTED = (-1) /* -1 */; +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealth.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealth.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b49dfffbe44c8af6dad5f052c591c816b064a249 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealth.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@VintfStability +interface IHealth { + void registerCallback(in android.hardware.health.IHealthInfoCallback callback); + void unregisterCallback(in android.hardware.health.IHealthInfoCallback callback); + void update(); + int getChargeCounterUah(); + int getCurrentNowMicroamps(); + int getCurrentAverageMicroamps(); + int getCapacity(); + long getEnergyCounterNwh(); + android.hardware.health.BatteryStatus getChargeStatus(); + android.hardware.health.StorageInfo[] getStorageInfo(); + android.hardware.health.DiskStats[] getDiskStats(); + android.hardware.health.HealthInfo getHealthInfo(); + void setChargingPolicy(android.hardware.health.BatteryChargingPolicy in_value); + android.hardware.health.BatteryChargingPolicy getChargingPolicy(); + android.hardware.health.BatteryHealthData getBatteryHealthData(); + const int STATUS_UNKNOWN = 2; + const int STATUS_CALLBACK_DIED = 4; +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealthInfoCallback.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealthInfoCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1b6366fa7a29dba4637ea6598c9d6694db7135cb --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/IHealthInfoCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@VintfStability +interface IHealthInfoCallback { + oneway void healthInfoChanged(in android.hardware.health.HealthInfo info); +} diff --git a/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/StorageInfo.aidl b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/StorageInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..eaae5a611049de99505a2cf9cc5a439d3616d0c9 --- /dev/null +++ b/health/aidl/aidl_api/android.hardware.health/3/android/hardware/health/StorageInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.health; +@VintfStability +parcelable StorageInfo { + int eol; + int lifetimeA; + int lifetimeB; + String version; +} diff --git a/health/aidl/default/Health.cpp b/health/aidl/default/Health.cpp index 6df623a3f8dfcaa5dbfae923589eca26080d0d44..37662eacf32493e605938362c2f40a1cec286fea 100644 --- a/health/aidl/default/Health.cpp +++ b/health/aidl/default/Health.cpp @@ -36,6 +36,11 @@ void OnCallbackDiedWrapped(void* cookie) { LinkedCallback* linked = reinterpret_cast(cookie); linked->OnCallbackDied(); } +// Delete the owned cookie. +void onCallbackUnlinked(void* cookie) { + LinkedCallback* linked = reinterpret_cast(cookie); + delete linked; +} } // namespace /* @@ -57,6 +62,7 @@ Health::Health(std::string_view instance_name, std::unique_ptr Health::ShouldKeepScreenOn() { return healthd_config_->screen_on(&props); } -namespace { -bool IsDeadObjectLogged(const ndk::ScopedAStatus& ret) { - if (ret.isOk()) return false; - if (ret.getStatus() == ::STATUS_DEAD_OBJECT) return true; - LOG(ERROR) << "Cannot call healthInfoChanged on callback: " << ret.getDescription(); - return false; -} -} // namespace - // // Subclass helpers / overrides // @@ -295,7 +292,7 @@ ndk::ScopedAStatus Health::registerCallback(const std::shared_ptrhealthInfoChanged(health_info); IsDeadObjectLogged(res)) { - (void)unregisterCallback(callback); + auto res = callback->healthInfoChanged(health_info); + if (!res.isOk()) { + LOG(DEBUG) << "Cannot call healthInfoChanged:" << res.getDescription() + << ". Do nothing here if callback is dead as it will be cleaned up later."; } return ndk::ScopedAStatus::ok(); } @@ -321,12 +320,24 @@ ndk::ScopedAStatus Health::unregisterCallback( std::lock_guard lock(callbacks_lock_); - auto matches = [callback](const auto& linked) { - return linked->callback()->asBinder() == callback->asBinder(); // compares binder object + auto matches = [callback](const auto& cb) { + return cb->asBinder() == callback->asBinder(); // compares binder object }; - auto it = std::remove_if(callbacks_.begin(), callbacks_.end(), matches); - bool removed = (it != callbacks_.end()); - callbacks_.erase(it, callbacks_.end()); // calls unlinkToDeath on deleted callbacks. + bool removed = false; + for (auto it = callbacks_.begin(); it != callbacks_.end();) { + if (it->second->asBinder() == callback->asBinder()) { + auto status = AIBinder_unlinkToDeath(callback->asBinder().get(), death_recipient_.get(), + reinterpret_cast(it->first)); + if (status != STATUS_OK && status != STATUS_DEAD_OBJECT) { + LOG(WARNING) << __func__ + << "Cannot unlink to death: " << ::android::statusToString(status); + } + it = callbacks_.erase(it); + removed = true; + } else { + it++; + } + } return removed ? ndk::ScopedAStatus::ok() : ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); } @@ -354,13 +365,13 @@ ndk::ScopedAStatus Health::update() { void Health::OnHealthInfoChanged(const HealthInfo& health_info) { // Notify all callbacks std::unique_lock lock(callbacks_lock_); - // is_dead notifies a callback and return true if it is dead. - auto is_dead = [&](const auto& linked) { - auto res = linked->callback()->healthInfoChanged(health_info); - return IsDeadObjectLogged(res); - }; - auto it = std::remove_if(callbacks_.begin(), callbacks_.end(), is_dead); - callbacks_.erase(it, callbacks_.end()); // calls unlinkToDeath on deleted callbacks. + for (const auto& [_, callback] : callbacks_) { + auto res = callback->healthInfoChanged(health_info); + if (!res.isOk()) { + LOG(DEBUG) << "Cannot call healthInfoChanged:" << res.getDescription() + << ". Do nothing here if callback is dead as it will be cleaned up later."; + } + } lock.unlock(); // Let HalHealthLoop::OnHealthInfoChanged() adjusts uevent / wakealarm periods diff --git a/health/aidl/default/LinkedCallback.cpp b/health/aidl/default/LinkedCallback.cpp index 26e99f95d32a1b4b8f513637710b78a96b46634c..df471a37bd2fb1254d4eaf3b5823ac1a01d48f21 100644 --- a/health/aidl/default/LinkedCallback.cpp +++ b/health/aidl/default/LinkedCallback.cpp @@ -24,35 +24,24 @@ namespace aidl::android::hardware::health { -::android::base::Result> LinkedCallback::Make( +::android::base::Result LinkedCallback::Make( std::shared_ptr service, std::shared_ptr callback) { - std::unique_ptr ret(new LinkedCallback()); + LinkedCallback* ret(new LinkedCallback()); + // pass ownership of this object to the death recipient binder_status_t linkRet = AIBinder_linkToDeath(callback->asBinder().get(), service->death_recipient_.get(), - reinterpret_cast(ret.get())); + reinterpret_cast(ret)); if (linkRet != ::STATUS_OK) { LOG(WARNING) << __func__ << "Cannot link to death: " << linkRet; return ::android::base::Error(-linkRet); } ret->service_ = service; - ret->callback_ = std::move(callback); + ret->callback_ = callback; return ret; } LinkedCallback::LinkedCallback() = default; -LinkedCallback::~LinkedCallback() { - if (callback_ == nullptr) { - return; - } - auto status = - AIBinder_unlinkToDeath(callback_->asBinder().get(), service()->death_recipient_.get(), - reinterpret_cast(this)); - if (status != STATUS_OK && status != STATUS_DEAD_OBJECT) { - LOG(WARNING) << __func__ << "Cannot unlink to death: " << ::android::statusToString(status); - } -} - std::shared_ptr LinkedCallback::service() { auto service_sp = service_.lock(); CHECK_NE(nullptr, service_sp); @@ -60,7 +49,10 @@ std::shared_ptr LinkedCallback::service() { } void LinkedCallback::OnCallbackDied() { - service()->unregisterCallback(callback_); + auto sCb = callback_.lock(); + if (sCb) { + service()->unregisterCallback(sCb); + } } } // namespace aidl::android::hardware::health diff --git a/health/aidl/default/LinkedCallback.h b/health/aidl/default/LinkedCallback.h index da494c91910fc1d07788921aa628fb803d8fa8e4..8c9c997302869593903bac45dfcf7c745dff84ba 100644 --- a/health/aidl/default/LinkedCallback.h +++ b/health/aidl/default/LinkedCallback.h @@ -32,19 +32,10 @@ namespace aidl::android::hardware::health { class LinkedCallback { public: // Automatically linkToDeath upon construction with the returned object as the cookie. - // service->death_reciepient() should be from CreateDeathRecipient(). - // Not using a strong reference to |service| to avoid circular reference. The lifetime - // of |service| must be longer than this LinkedCallback object. - static ::android::base::Result> Make( + // The deathRecipient owns the LinkedCallback object and will delete it with + // cookie when it's unlinked. + static ::android::base::Result Make( std::shared_ptr service, std::shared_ptr callback); - - // Automatically unlinkToDeath upon destruction. So, it is always safe to reinterpret_cast - // the cookie back to the LinkedCallback object. - ~LinkedCallback(); - - // The wrapped IHealthInfoCallback object. - const std::shared_ptr& callback() const { return callback_; } - // On callback died, unreigster it from the service. void OnCallbackDied(); @@ -55,7 +46,7 @@ class LinkedCallback { std::shared_ptr service(); std::weak_ptr service_; - std::shared_ptr callback_; + std::weak_ptr callback_; }; } // namespace aidl::android::hardware::health diff --git a/health/aidl/default/include/health-impl/Health.h b/health/aidl/default/include/health-impl/Health.h index dc3a0ef8fe39b535e40507249dce7ada0d677f7d..429ae2ab96473c3025c2bee32d93d71e7d67c737 100644 --- a/health/aidl/default/include/health-impl/Health.h +++ b/health/aidl/default/include/health-impl/Health.h @@ -16,6 +16,7 @@ #pragma once +#include #include #include @@ -112,7 +113,7 @@ class Health : public BnHealth, public HalHealthLoopCallback { ndk::ScopedAIBinder_DeathRecipient death_recipient_; int binder_fd_ = -1; std::mutex callbacks_lock_; - std::vector> callbacks_; + std::map> callbacks_; }; } // namespace aidl::android::hardware::health diff --git a/input/classifier/1.0/default/Android.bp b/input/classifier/1.0/default/Android.bp index 8ab2ba8b9aec9f77ca4544b8ce53b00c5be1754c..264292becdea1fd013df655388d40a0eeae594d9 100644 --- a/input/classifier/1.0/default/Android.bp +++ b/input/classifier/1.0/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_input_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/input/classifier/1.0/vts/functional/Android.bp b/input/classifier/1.0/vts/functional/Android.bp index 22346ed8b4fbd7ac38f2cf69f88ae63bf82fae14..dcf68b90fa2b5ffaa23f03adf8394be52d4ff3a1 100644 --- a/input/classifier/1.0/vts/functional/Android.bp +++ b/input/classifier/1.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_input_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/input/common/1.0/Android.bp b/input/common/1.0/Android.bp index ed0ab9875bfc2e1c5f41deef9ea166714a7b70eb..ffa3441b9e6c1885e1eaae0905562a1c516e6c9b 100644 --- a/input/common/1.0/Android.bp +++ b/input/common/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_input_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/input/common/aidl/Android.bp b/input/common/aidl/Android.bp index f23f270e0b73567dc90a4b643895969b160a5444..0759d2e0f3cdb5a8d9abee6fb1705bf0d733c5f8 100644 --- a/input/common/aidl/Android.bp +++ b/input/common/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_input_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/input/processor/aidl/Android.bp b/input/processor/aidl/Android.bp index f1a73d2e3bc10175724017a2f225796c5f885b36..68adf32c4971dcc0a282d9320ee040ac8055c5c7 100644 --- a/input/processor/aidl/Android.bp +++ b/input/processor/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_input_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/input/processor/aidl/default/Android.bp b/input/processor/aidl/default/Android.bp index bdd27e2bcac6c6cb2eb1f03906ac0cc9ab660bd3..f5163a7144a624b592ba5afb526c1e4200241cb6 100644 --- a/input/processor/aidl/default/Android.bp +++ b/input/processor/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_input_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/keymaster/4.0/vts/functional/HmacKeySharingTest.cpp b/keymaster/4.0/vts/functional/HmacKeySharingTest.cpp index 1bff076859f8bbd218a2d1e7b925ad869b98fed7..a07643800024e86073a883806e08aa449122ad0f 100644 --- a/keymaster/4.0/vts/functional/HmacKeySharingTest.cpp +++ b/keymaster/4.0/vts/functional/HmacKeySharingTest.cpp @@ -51,7 +51,7 @@ class HmacKeySharingTest : public KeymasterHidlTest { }; using KeymasterVec = std::vector>; - using ByteString = std::basic_string; + using ByteString = std::vector; // using NonceVec = std::vector; GetParamsResult getHmacSharingParameters(IKeymasterDevice& keymaster) { @@ -98,7 +98,7 @@ class HmacKeySharingTest : public KeymasterHidlTest { std::vector copyNonces(const hidl_vec& paramsVec) { std::vector nonces; for (auto& param : paramsVec) { - nonces.emplace_back(param.nonce.data(), param.nonce.size()); + nonces.emplace_back(param.nonce.data(), param.nonce.data() + param.nonce.size()); } return nonces; } diff --git a/light/aidl/default/main.rs b/light/aidl/default/main.rs index 8f3247089b143a06cdbb343946bb295ad6f83959..b5452d68d7729de3f81c3a6393e267108dfe9f5d 100644 --- a/light/aidl/default/main.rs +++ b/light/aidl/default/main.rs @@ -23,11 +23,11 @@ use lights::LightsService; const LOG_TAG: &str = "lights_service_example_rust"; -use log::Level; +use log::LevelFilter; fn main() { let logger_success = logger::init( - logger::Config::default().with_tag_on_device(LOG_TAG).with_min_level(Level::Trace), + logger::Config::default().with_tag_on_device(LOG_TAG).with_max_level(LevelFilter::Trace), ); if !logger_success { panic!("{LOG_TAG}: Failed to start logger."); diff --git a/macsec/aidl/Android.bp b/macsec/aidl/Android.bp index 5e47999bceefc777896fe1c202838078b105a63d..361baf4ada64a2e5493c4203970b168bb5db0bc6 100644 --- a/macsec/aidl/Android.bp +++ b/macsec/aidl/Android.bp @@ -37,4 +37,12 @@ aidl_interface { enabled: false, }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + } diff --git a/macsec/aidl/aidl_api/android.hardware.macsec/1/.hash b/macsec/aidl/aidl_api/android.hardware.macsec/1/.hash new file mode 100644 index 0000000000000000000000000000000000000000..60e8fa87073ece5dabe0369cb3c4885a2ecf4018 --- /dev/null +++ b/macsec/aidl/aidl_api/android.hardware.macsec/1/.hash @@ -0,0 +1 @@ +9caeb6282adc082009c1f24f04d011723deed6d5 diff --git a/macsec/aidl/aidl_api/android.hardware.macsec/1/android/hardware/macsec/IMacsecPskPlugin.aidl b/macsec/aidl/aidl_api/android.hardware.macsec/1/android/hardware/macsec/IMacsecPskPlugin.aidl new file mode 100644 index 0000000000000000000000000000000000000000..02fd6e98889abe87da922eeb12e9a00c045b151e --- /dev/null +++ b/macsec/aidl/aidl_api/android.hardware.macsec/1/android/hardware/macsec/IMacsecPskPlugin.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.macsec; +@VintfStability +interface IMacsecPskPlugin { + void addTestKey(in byte[] keyId, in byte[] CAK, in byte[] CKN); + byte[] calcIcv(in byte[] keyId, in byte[] data); + byte[] generateSak(in byte[] keyId, in byte[] data, in int sakLength); + byte[] wrapSak(in byte[] keyId, in byte[] sak); + byte[] unwrapSak(in byte[] keyId, in byte[] sak); +} diff --git a/media/bufferpool/1.0/Android.bp b/media/bufferpool/1.0/Android.bp index 175b8a5ae794adddda775ac9318333df83a1b8f8..60bcf7b5b3d432d3714b9e5060d731c175e76c91 100644 --- a/media/bufferpool/1.0/Android.bp +++ b/media/bufferpool/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/bufferpool/2.0/Android.bp b/media/bufferpool/2.0/Android.bp index 56597db3967c1d9827e6bc7ec6a4474762f6d209..fd6f08b1997921878fa5c06a78d024b0f033e595 100644 --- a/media/bufferpool/2.0/Android.bp +++ b/media/bufferpool/2.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/bufferpool/aidl/Android.bp b/media/bufferpool/aidl/Android.bp index 8e013e0535a9a2da623502e99230ca529399b236..829971d50bea19d34608d4f1d3ca30e30544ea1a 100644 --- a/media/bufferpool/aidl/Android.bp +++ b/media/bufferpool/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -26,6 +27,9 @@ aidl_interface { vendor_available: true, double_loadable: true, srcs: ["android/hardware/media/bufferpool2/*.aidl"], + headers: [ + "HardwareBuffer_aidl", + ], imports: [ "android.hardware.common-V2", "android.hardware.common.fmq-V1", @@ -44,10 +48,13 @@ aidl_interface { "//apex_available:platform", "com.android.media.swcodec", ], + additional_shared_libraries: [ + "libnativewindow", + ], min_sdk_version: "29", }, rust: { - enabled: true, + enabled: false, }, }, versions_with_info: [ @@ -58,6 +65,14 @@ aidl_interface { "android.hardware.common.fmq-V1", ], }, + { + version: "2", + imports: [ + "android.hardware.common-V2", + "android.hardware.common.fmq-V1", + ], + }, + ], frozen: true, diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/.hash b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/.hash new file mode 100644 index 0000000000000000000000000000000000000000..44623f8b8b96a4d2e8896eb0e4aa5d8a19e82bbf --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/.hash @@ -0,0 +1 @@ +c12818c51418fbfc76f1b81eba6678d75cf526c1 diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/Buffer.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/Buffer.aidl new file mode 100644 index 0000000000000000000000000000000000000000..85a78ad6ee7f6532fa3bfefbbe24baa0bdea25c0 --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/Buffer.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@VintfStability +parcelable Buffer { + int id; + @nullable android.hardware.common.NativeHandle buffer; + @nullable android.hardware.HardwareBuffer hwbBuffer; +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferInvalidationMessage.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferInvalidationMessage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..181286c19706c492ff89f81e471384ca8b2d04af --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferInvalidationMessage.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@FixedSize @VintfStability +parcelable BufferInvalidationMessage { + int messageId; + int fromBufferId; + int toBufferId; +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatus.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..13174ffe09762bed6c5b54ba80ff0a70cf94316d --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatus.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@Backing(type="int") @VintfStability +enum BufferStatus { + NOT_USED = 0, + USED = 1, + TRANSFER_TO = 2, + TRANSFER_FROM = 3, + TRANSFER_TIMEOUT = 4, + TRANSFER_LOST = 5, + TRANSFER_FETCH = 6, + TRANSFER_OK = 7, + TRANSFER_ERROR = 8, + INVALIDATION_ACK = 9, +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatusMessage.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatusMessage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7e79a368d16c938255314d520b5dea6d70c47975 --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/BufferStatusMessage.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@FixedSize @VintfStability +parcelable BufferStatusMessage { + long transactionId; + int bufferId; + android.hardware.media.bufferpool2.BufferStatus status; + long connectionId; + long targetConnectionId; + long timestampUs; +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IAccessor.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IAccessor.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4053797dcf1f5baa79fd672d7b3b75cda180eae3 --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IAccessor.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@VintfStability +interface IAccessor { + android.hardware.media.bufferpool2.IAccessor.ConnectionInfo connect(in android.hardware.media.bufferpool2.IObserver observer); + @VintfStability + parcelable ConnectionInfo { + android.hardware.media.bufferpool2.IConnection connection; + long connectionId; + int msgId; + android.hardware.common.fmq.MQDescriptor toFmqDesc; + android.hardware.common.fmq.MQDescriptor fromFmqDesc; + } +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IClientManager.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IClientManager.aidl new file mode 100644 index 0000000000000000000000000000000000000000..298cb13ec3af0dd32cadb0541090da36e8b892ca --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IClientManager.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@VintfStability +interface IClientManager { + android.hardware.media.bufferpool2.IClientManager.Registration registerSender(in android.hardware.media.bufferpool2.IAccessor bufferPool); + android.hardware.media.bufferpool2.IClientManager.Registration registerPassiveSender(in android.hardware.media.bufferpool2.IAccessor bufferPool); + @VintfStability + parcelable Registration { + long connectionId; + boolean isNew = true; + } +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IConnection.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IConnection.aidl new file mode 100644 index 0000000000000000000000000000000000000000..844e920df0b5de9461bab3de51282af0774b0948 --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IConnection.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@VintfStability +interface IConnection { + android.hardware.media.bufferpool2.IConnection.FetchResult[] fetch(in android.hardware.media.bufferpool2.IConnection.FetchInfo[] fetchInfos); + void sync(); + parcelable FetchInfo { + long transactionId; + int bufferId; + } + union FetchResult { + android.hardware.media.bufferpool2.Buffer buffer; + int failure; + } +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IObserver.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IObserver.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2d8cffe70c108210a678e9bc233a07357e1184fc --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/IObserver.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@VintfStability +interface IObserver { + oneway void onMessage(in long connectionId, in int msgId); +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/ResultStatus.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/ResultStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4bc3889e3f241146dec5d65e95883ceb4091f99a --- /dev/null +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/2/android/hardware/media/bufferpool2/ResultStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.bufferpool2; +@VintfStability +parcelable ResultStatus { + const int OK = 0; + const int NO_MEMORY = 1; + const int ALREADY_EXISTS = 2; + const int NOT_FOUND = 3; + const int CRITICAL_ERROR = 4; +} diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/Buffer.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/Buffer.aidl index 4ea0bba7fc9fabf7042c4ba7228dc951e18b95f2..85a78ad6ee7f6532fa3bfefbbe24baa0bdea25c0 100644 --- a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/Buffer.aidl +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/Buffer.aidl @@ -35,5 +35,6 @@ package android.hardware.media.bufferpool2; @VintfStability parcelable Buffer { int id; - android.hardware.common.NativeHandle buffer; + @nullable android.hardware.common.NativeHandle buffer; + @nullable android.hardware.HardwareBuffer hwbBuffer; } diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IClientManager.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IClientManager.aidl index 5899a403a69c5408abdf7631d20be3f63d3f9f6b..298cb13ec3af0dd32cadb0541090da36e8b892ca 100644 --- a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IClientManager.aidl +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IClientManager.aidl @@ -35,6 +35,7 @@ package android.hardware.media.bufferpool2; @VintfStability interface IClientManager { android.hardware.media.bufferpool2.IClientManager.Registration registerSender(in android.hardware.media.bufferpool2.IAccessor bufferPool); + android.hardware.media.bufferpool2.IClientManager.Registration registerPassiveSender(in android.hardware.media.bufferpool2.IAccessor bufferPool); @VintfStability parcelable Registration { long connectionId; diff --git a/media/bufferpool/aidl/android/hardware/media/bufferpool2/Buffer.aidl b/media/bufferpool/aidl/android/hardware/media/bufferpool2/Buffer.aidl index 976f674878618e098cf8eadb5b0018bfac856c62..79b3f23ad2f93d1c4d718dc0d7644f0fc822e246 100644 --- a/media/bufferpool/aidl/android/hardware/media/bufferpool2/Buffer.aidl +++ b/media/bufferpool/aidl/android/hardware/media/bufferpool2/Buffer.aidl @@ -17,6 +17,7 @@ package android.hardware.media.bufferpool2; import android.hardware.common.NativeHandle; +import android.hardware.HardwareBuffer; /** * Generic buffer for fast recycling for media/stagefright. @@ -26,10 +27,14 @@ import android.hardware.common.NativeHandle; * by a buffer pool, and are recycled to the buffer pool when they are * no longer referenced by the clients. * + * Initially all buffers in media HAL should be NativeHandle(actually native_handle_t). + * HardwareBuffer(actually AHardwareBuffer) for GraphicBuffer is added from V2. + * * E.g. ion or gralloc buffer */ @VintfStability parcelable Buffer { int id; - NativeHandle buffer; + @nullable NativeHandle buffer; + @nullable HardwareBuffer hwbBuffer; } diff --git a/media/bufferpool/aidl/android/hardware/media/bufferpool2/IClientManager.aidl b/media/bufferpool/aidl/android/hardware/media/bufferpool2/IClientManager.aidl index a3054cb1316fbe64cc09ac61e6e880787a85e888..2bc77bcd68a8a12d7169b4fb4d92fee9eb569458 100644 --- a/media/bufferpool/aidl/android/hardware/media/bufferpool2/IClientManager.aidl +++ b/media/bufferpool/aidl/android/hardware/media/bufferpool2/IClientManager.aidl @@ -40,7 +40,8 @@ interface IClientManager { /** * Sets up a buffer receiving communication node for the specified * buffer pool. A manager must create a IConnection to the buffer - * pool if it does not already have a connection. + * pool if it does not already have a connection. To transfer buffers + * using the interface, the sender must initiates transfer. * * @param bufferPool a buffer pool which is specified with the IAccessor. * The specified buffer pool is the owner of received buffers. @@ -52,4 +53,21 @@ interface IClientManager { * ResultStatus::CRITICAL_ERROR - Other errors. */ Registration registerSender(in IAccessor bufferPool); + + /** + * Sets up a buffer receiving communication node for the specified + * buffer pool. A manager must create a IConnection to the buffer + * pool if it does not already have a connection. To transfer buffers + * using the interface, the receiver must initiates transfer(on demand). + * + * @param bufferPool a buffer pool which is specified with the IAccessor. + * The specified buffer pool is the owner of received buffers. + * @return the Id of the communication node to the buffer pool. + * This id is used in FMQ to notify IAccessor that a buffer has been + * sent to that connection during transfers. + * @throws ServiceSpecificException with one of the following values: + * ResultStatus::NO_MEMORY - Memory allocation failure occurred. + * ResultStatus::CRITICAL_ERROR - Other errors. + */ + Registration registerPassiveSender(in IAccessor bufferPool); } diff --git a/media/bufferpool/aidl/default/Android.bp b/media/bufferpool/aidl/default/Android.bp index 11a616373e936b8390df61bd148a35ed1d7b9f07..72cd9031e94464d6a16a0c2402fe24e0d1759f6d 100644 --- a/media/bufferpool/aidl/default/Android.bp +++ b/media/bufferpool/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "frameworks_av_license" @@ -33,15 +34,16 @@ cc_library { "libcutils", "libfmq", "liblog", + "libnativewindow", "libutils", - "android.hardware.media.bufferpool2-V1-ndk", + "android.hardware.media.bufferpool2-V2-ndk", ], static_libs: [ "libaidlcommonsupport", ], export_shared_lib_headers: [ "libfmq", - "android.hardware.media.bufferpool2-V1-ndk", + "android.hardware.media.bufferpool2-V2-ndk", ], double_loadable: true, cflags: [ diff --git a/media/bufferpool/aidl/default/BufferPoolClient.cpp b/media/bufferpool/aidl/default/BufferPoolClient.cpp index e9777d8c41a5a610576e44fd57e65a0561e8f9e4..ce4ad8e37f6569d5fee97dde6897e10829aaf0a3 100644 --- a/media/bufferpool/aidl/default/BufferPoolClient.cpp +++ b/media/bufferpool/aidl/default/BufferPoolClient.cpp @@ -297,7 +297,7 @@ BufferPoolClient::Impl::Impl(const std::shared_ptr &accessor, mLastEvictCacheMs(::android::elapsedRealtime()) { IAccessor::ConnectionInfo conInfo; bool valid = false; - if(accessor->connect(observer, &conInfo).isOk()) { + if (accessor && accessor->connect(observer, &conInfo).isOk()) { auto channel = std::make_unique(conInfo.toFmqDesc); auto observer = std::make_unique(conInfo.fromFmqDesc); @@ -757,7 +757,13 @@ BufferPoolStatus BufferPoolClient::Impl::fetchBufferHandle( return svcSpecific ? svcSpecific : ResultStatus::CRITICAL_ERROR; } if (results[0].getTag() == FetchResult::buffer) { - *handle = ::android::dupFromAidl(results[0].get().buffer); + if (results[0].get().buffer.has_value()) { + *handle = ::android::dupFromAidl(results[0].get().buffer.value()); + } else { + // TODO: Support HardwareBuffer + ALOGW("handle nullptr"); + *handle = nullptr; + } return ResultStatus::OK; } return results[0].get(); diff --git a/media/bufferpool/aidl/default/ClientManager.cpp b/media/bufferpool/aidl/default/ClientManager.cpp index de1db50cd121d67acece03e4a9988f93c11bcb5d..138790d650d25ecb75f92ff4ac19fbfaf59d1858 100644 --- a/media/bufferpool/aidl/default/ClientManager.cpp +++ b/media/bufferpool/aidl/default/ClientManager.cpp @@ -422,6 +422,14 @@ void ClientManager::Impl::cleanUp(bool clearCache) { return ::ndk::ScopedAStatus::ok(); } +::ndk::ScopedAStatus ClientManager::registerPassiveSender( + const std::shared_ptr& in_bufferPool, Registration* _aidl_return) { + // TODO + (void) in_bufferPool; + (void) _aidl_return; + return ::ndk::ScopedAStatus::fromServiceSpecificError(ResultStatus::NOT_FOUND); +} + // Methods for local use. std::shared_ptr ClientManager::sInstance; std::mutex ClientManager::sInstanceLock; diff --git a/media/bufferpool/aidl/default/include/bufferpool2/ClientManager.h b/media/bufferpool/aidl/default/include/bufferpool2/ClientManager.h index bff75ba597f9e9b674e51ecdb47a7146128b9989..4b0916f3b8f52f30903fa410e3ed97e381d77720 100644 --- a/media/bufferpool/aidl/default/include/bufferpool2/ClientManager.h +++ b/media/bufferpool/aidl/default/include/bufferpool2/ClientManager.h @@ -34,6 +34,11 @@ struct ClientManager : public BnClientManager { ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration* _aidl_return) override; + ::ndk::ScopedAStatus registerPassiveSender( + const std::shared_ptr& in_bufferPool, + ::aidl::android::hardware::media::bufferpool2::IClientManager::Registration* _aidl_return) + override; + /** Gets an instance. */ static std::shared_ptr getInstance(); diff --git a/media/bufferpool/aidl/default/tests/Android.bp b/media/bufferpool/aidl/default/tests/Android.bp index 549af5739c243e537b2643dc11e643825dbfacc0..46aa4dad21e679a2d73bb0e4f5739bc3a3a4b1ed 100644 --- a/media/bufferpool/aidl/default/tests/Android.bp +++ b/media/bufferpool/aidl/default/tests/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "frameworks_av_license" @@ -36,12 +37,13 @@ cc_test { "libcutils", "libfmq", "liblog", + "libnativewindow", "libutils", - "android.hardware.media.bufferpool2-V1-ndk", + "android.hardware.media.bufferpool2-V2-ndk", ], static_libs: [ "libaidlcommonsupport", - "libstagefright_aidl_bufferpool2" + "libstagefright_aidl_bufferpool2", ], compile_multilib: "both", } @@ -59,12 +61,13 @@ cc_test { "libcutils", "libfmq", "liblog", + "libnativewindow", "libutils", - "android.hardware.media.bufferpool2-V1-ndk", + "android.hardware.media.bufferpool2-V2-ndk", ], static_libs: [ "libaidlcommonsupport", - "libstagefright_aidl_bufferpool2" + "libstagefright_aidl_bufferpool2", ], compile_multilib: "both", } @@ -82,12 +85,13 @@ cc_test { "libcutils", "libfmq", "liblog", + "libnativewindow", "libutils", - "android.hardware.media.bufferpool2-V1-ndk", + "android.hardware.media.bufferpool2-V2-ndk", ], static_libs: [ "libaidlcommonsupport", - "libstagefright_aidl_bufferpool2" + "libstagefright_aidl_bufferpool2", ], compile_multilib: "both", } diff --git a/media/c2/aidl/Android.bp b/media/c2/aidl/Android.bp index 3c0915dd38f84974b05c2445d81c740e97386f48..c5ecacd516e5c1afdd0eed2d843dd8a1cf291340 100644 --- a/media/c2/aidl/Android.bp +++ b/media/c2/aidl/Android.bp @@ -20,7 +20,10 @@ aidl_interface { ], imports: [ "android.hardware.common-V2", - "android.hardware.media.bufferpool2-V1", + "android.hardware.media.bufferpool2-V2", + ], + include_dirs: [ + "frameworks/native/aidl/gui", ], stability: "vintf", backend: { @@ -42,11 +45,19 @@ aidl_interface { ], }, rust: { - min_sdk_version: "31", - enabled: true, - additional_rustlibs: [ - "libnativewindow_rs", - ], + // No users, and no rust implementation of android.os.Surface yet + enabled: false, }, }, + versions_with_info: [ + { + version: "1", + imports: [ + "android.hardware.common-V2", + "android.hardware.media.bufferpool2-V2", + ], + }, + ], + frozen: true, + } diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/.hash b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/.hash new file mode 100644 index 0000000000000000000000000000000000000000..fc8aa82ddf572afe221412d93f8919a41102486e --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/.hash @@ -0,0 +1 @@ +d4c3897135ef9475dee2021ac39a41ae79c7690e diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/BaseBlock.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/BaseBlock.aidl new file mode 100644 index 0000000000000000000000000000000000000000..069b2cf244a79fc46ba84bbf1377e9167e388807 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/BaseBlock.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +union BaseBlock { + android.hardware.common.NativeHandle nativeBlock; + android.hardware.HardwareBuffer hwbBlock; + android.hardware.media.bufferpool2.BufferStatusMessage pooledBlock; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Block.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Block.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7b3005e22dd785f1460a312f1256dd3766ebfc51 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Block.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable Block { + int index; + android.hardware.media.c2.Params meta; + android.hardware.common.NativeHandle fence; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Buffer.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Buffer.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b632932cec54bd30b953cf3a6fa41e96ca22c542 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Buffer.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable Buffer { + android.hardware.media.c2.Params info; + android.hardware.media.c2.Block[] blocks; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldDescriptor.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldDescriptor.aidl new file mode 100644 index 0000000000000000000000000000000000000000..909476c39ea323426ac2a1a60eb2bd84404fc70a --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldDescriptor.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable FieldDescriptor { + android.hardware.media.c2.FieldId fieldId; + android.hardware.media.c2.FieldDescriptor.Type type; + int structIndex; + int extent; + String name; + android.hardware.media.c2.FieldDescriptor.NamedValue[] namedValues; + @Backing(type="int") @VintfStability + enum Type { + NO_INIT = 0, + INT32, + UINT32, + CNTR32, + INT64, + UINT64, + CNTR64, + FLOAT, + STRING = 0x100, + BLOB, + STRUCT = 0x20000, + } + @VintfStability + parcelable NamedValue { + String name; + long value; + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldId.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldId.aidl new file mode 100644 index 0000000000000000000000000000000000000000..935b85dbbfd095ef33df95fc7c5363d8eadc27b7 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldId.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable FieldId { + int offset; + int sizeBytes; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValues.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValues.aidl new file mode 100644 index 0000000000000000000000000000000000000000..69060bea1d1e2efb82c145de7f28b156489575fb --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValues.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +union FieldSupportedValues { + boolean empty; + android.hardware.media.c2.ValueRange range; + long[] values; + long[] flags; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQuery.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQuery.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6a5fbe26dec5653fe3da27611d14f071b62b6cf0 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQuery.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable FieldSupportedValuesQuery { + android.hardware.media.c2.ParamField field; + android.hardware.media.c2.FieldSupportedValuesQuery.Type type; + @Backing(type="int") @VintfStability + enum Type { + POSSIBLE = 0, + CURRENT, + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQueryResult.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQueryResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..187e3ebfeb49cdd885728fc1b9553b38fb4a6ebd --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FieldSupportedValuesQueryResult.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable FieldSupportedValuesQueryResult { + android.hardware.media.c2.Status status; + android.hardware.media.c2.FieldSupportedValues values; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FrameData.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FrameData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..07bfb7201a79c5a243ce6fc0d84faff8ca23f6b0 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/FrameData.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable FrameData { + int flags; + android.hardware.media.c2.WorkOrdinal ordinal; + android.hardware.media.c2.Buffer[] buffers; + android.hardware.media.c2.Params configUpdate; + android.hardware.media.c2.InfoBuffer[] infoBuffers; + const int DROP_FRAME = (1 << 0) /* 1 */; + const int END_OF_STREAM = (1 << 1) /* 2 */; + const int DISCARD_FRAME = (1 << 2) /* 4 */; + const int FLAG_INCOMPLETE = (1 << 3) /* 8 */; + const int CODEC_CONFIG = (1 << 31) /* -2147483648 */; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponent.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponent.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0a7e3c4b53dbf5a9c53eb2ab3e8de2b5484a22b8 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponent.aidl @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IComponent { + android.hardware.common.NativeHandle configureVideoTunnel(in int avSyncHwId); + android.hardware.media.c2.IComponent.BlockPool createBlockPool(in android.hardware.media.c2.IComponent.BlockPoolAllocator allocator); + void destroyBlockPool(in long blockPoolId); + void drain(in boolean withEos); + android.hardware.media.c2.WorkBundle flush(); + android.hardware.media.c2.IComponentInterface getInterface(); + void queue(in android.hardware.media.c2.WorkBundle workBundle); + void release(); + void reset(); + void start(); + void stop(); + android.hardware.media.c2.IInputSurfaceConnection connectToInputSurface(in android.hardware.media.c2.IInputSurface inputSurface); + android.hardware.media.c2.IInputSink asInputSink(); + parcelable BlockPool { + long blockPoolId; + android.hardware.media.c2.IConfigurable configurable; + } + parcelable GbAllocator { + ParcelFileDescriptor waitableFd; + android.hardware.media.c2.IGraphicBufferAllocator igba; + } + parcelable PooledGbAllocator { + ParcelFileDescriptor waitableFd; + long receiverId; + android.hardware.media.c2.IPooledGraphicBufferAllocator ipgba; + } + parcelable BlockPoolAllocator { + int allocatorId; + @nullable android.hardware.media.c2.IComponent.GbAllocator gbAllocator; + @nullable android.hardware.media.c2.IComponent.PooledGbAllocator pooledGbAllocator; + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentInterface.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentInterface.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2350daeec21cbb95f0618a8b1544a266c434d1e2 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentInterface.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IComponentInterface { + android.hardware.media.c2.IConfigurable getConfigurable(); +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentListener.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentListener.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f6f2a6391c83a49938ccc4c1ab72735040d06344 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentListener.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IComponentListener { + oneway void onError(in android.hardware.media.c2.Status status, in int errorCode); + oneway void onFramesRendered(in android.hardware.media.c2.IComponentListener.RenderedFrame[] renderedFrames); + oneway void onInputBuffersReleased(in android.hardware.media.c2.IComponentListener.InputBuffer[] inputBuffers); + oneway void onTripped(in android.hardware.media.c2.SettingResult[] settingResults); + oneway void onWorkDone(in android.hardware.media.c2.WorkBundle workBundle); + @VintfStability + parcelable InputBuffer { + long frameIndex; + int arrayIndex; + } + @VintfStability + parcelable RenderedFrame { + long bufferQueueId; + int slotId; + long timestampNs; + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentStore.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentStore.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d7a4706d19ea33f79ecc09c8a51a9523537bfdcd --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IComponentStore.aidl @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IComponentStore { + void copyBuffer(in android.hardware.media.c2.Buffer src, in android.hardware.media.c2.Buffer dst); + android.hardware.media.c2.IComponent createComponent(in String name, in android.hardware.media.c2.IComponentListener listener, in android.hardware.media.bufferpool2.IClientManager pool); + android.hardware.media.c2.IComponentInterface createInterface(in String name); + android.hardware.media.c2.IConfigurable getConfigurable(); + android.hardware.media.bufferpool2.IClientManager getPoolClientManager(); + android.hardware.media.c2.StructDescriptor[] getStructDescriptors(in int[] indices); + android.hardware.media.c2.IComponentStore.ComponentTraits[] listComponents(); + android.hardware.media.c2.IInputSurface createInputSurface(); + @VintfStability + parcelable ComponentTraits { + String name; + android.hardware.media.c2.IComponentStore.ComponentTraits.Domain domain; + android.hardware.media.c2.IComponentStore.ComponentTraits.Kind kind; + int rank; + String mediaType; + String[] aliases; + @Backing(type="int") @VintfStability + enum Kind { + OTHER = 0, + DECODER, + ENCODER, + } + @Backing(type="int") @VintfStability + enum Domain { + OTHER = 0, + VIDEO, + AUDIO, + IMAGE, + } + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IConfigurable.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IConfigurable.aidl new file mode 100644 index 0000000000000000000000000000000000000000..04e776ee3c48424be2109ad1f61a7fa5edc9f07c --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IConfigurable.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IConfigurable { + android.hardware.media.c2.IConfigurable.ConfigResult config(in android.hardware.media.c2.Params inParams, in boolean mayBlock); + int getId(); + String getName(); + android.hardware.media.c2.IConfigurable.QueryResult query(in int[] indices, in boolean mayBlock); + android.hardware.media.c2.ParamDescriptor[] querySupportedParams(in int start, in int count); + android.hardware.media.c2.IConfigurable.QuerySupportedValuesResult querySupportedValues(in android.hardware.media.c2.FieldSupportedValuesQuery[] inFields, in boolean mayBlock); + @VintfStability + parcelable ConfigResult { + android.hardware.media.c2.Params params; + android.hardware.media.c2.SettingResult[] failures; + android.hardware.media.c2.Status status; + } + @VintfStability + parcelable QueryResult { + android.hardware.media.c2.Params params; + android.hardware.media.c2.Status status; + } + @VintfStability + parcelable QuerySupportedValuesResult { + android.hardware.media.c2.FieldSupportedValuesQueryResult[] values; + android.hardware.media.c2.Status status; + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IGraphicBufferAllocator.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IGraphicBufferAllocator.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e13ba1f2aa0b4bb7cc145ba6b9b548085d53cd93 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IGraphicBufferAllocator.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IGraphicBufferAllocator { + android.hardware.media.c2.IGraphicBufferAllocator.Allocation allocate(in android.hardware.media.c2.IGraphicBufferAllocator.Description desc); + boolean deallocate(in long id); + ParcelFileDescriptor getWaitableFd(); + parcelable Allocation { + android.hardware.HardwareBuffer buffer; + @nullable ParcelFileDescriptor fence; + } + parcelable Description { + int width; + int height; + int format; + long usage; + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSink.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSink.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e6ea4d54e8bed85c8ddc91d4fb7c37b8d9d73bdb --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSink.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IInputSink { + void queue(in android.hardware.media.c2.WorkBundle workBundle); +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurface.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurface.aidl new file mode 100644 index 0000000000000000000000000000000000000000..14455cb71f57178d6e4525cdf84a445ba5775df8 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurface.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IInputSurface { + android.view.Surface getSurface(); + android.hardware.media.c2.IConfigurable getConfigurable(); + android.hardware.media.c2.IInputSurfaceConnection connect(in android.hardware.media.c2.IInputSink sink); +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurfaceConnection.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurfaceConnection.aidl new file mode 100644 index 0000000000000000000000000000000000000000..28fff65e14695da6c6a9fffa9bfcac1deec7a9b1 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IInputSurfaceConnection.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IInputSurfaceConnection { + void disconnect(); + void signalEndOfStream(); +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1a8c66d1db1ff03303567b3dc5d02d932faf4787 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IPooledGraphicBufferAllocator { + android.hardware.media.c2.IPooledGraphicBufferAllocator.Allocation allocate(in android.hardware.media.c2.IPooledGraphicBufferAllocator.Description desc); + boolean deallocate(in int id); + parcelable Allocation { + int bufferId; + @nullable ParcelFileDescriptor fence; + } + parcelable Description { + int widthPixels; + int heightPixels; + int format; + long usage; + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/InfoBuffer.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/InfoBuffer.aidl new file mode 100644 index 0000000000000000000000000000000000000000..94cd77d92557f49b23b6bb93c38f8d62722acd76 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/InfoBuffer.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable InfoBuffer { + int index; + android.hardware.media.c2.Buffer buffer; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamDescriptor.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamDescriptor.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6f0ac50bed9e97b8fc8fdf651bb71e04573c25a3 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamDescriptor.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable ParamDescriptor { + int index; + int attrib; + String name; + int[] dependencies; + const int ATTRIBUTE_REQUIRED = (1 << 0) /* 1 */; + const int ATTRIBUTE_PERSISTENT = (1 << 1) /* 2 */; + const int ATTRIBUTE_STRICT = (1 << 2) /* 4 */; + const int ATTRIBUTE_READ_ONLY = (1 << 3) /* 8 */; + const int ATTRIBUTE_HIDDEN = (1 << 4) /* 16 */; + const int ATTRIBUTE_INTERNAL = (1 << 5) /* 32 */; + const int ATTRIBUTE_CONST = (1 << 6) /* 64 */; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamField.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamField.aidl new file mode 100644 index 0000000000000000000000000000000000000000..13d252257e050225c3d2ed2cbbccca24d055774a --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamField.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable ParamField { + int index; + android.hardware.media.c2.FieldId fieldId; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamFieldValues.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamFieldValues.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5a2821cdb26945ba2092b95f6122d3105d1fca3b --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ParamFieldValues.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable ParamFieldValues { + android.hardware.media.c2.ParamField paramOrField; + android.hardware.media.c2.FieldSupportedValues[] values; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Params.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Params.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7d363c06b310d88328f07afe483ca5f49666245d --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Params.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable Params { + byte[] params; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/SettingResult.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/SettingResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..07fc1f35aa3afbe726693da666a1db5de0688179 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/SettingResult.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable SettingResult { + android.hardware.media.c2.SettingResult.Failure failure; + android.hardware.media.c2.ParamFieldValues field; + android.hardware.media.c2.ParamFieldValues[] conflicts; + @Backing(type="int") @VintfStability + enum Failure { + BAD_TYPE, + BAD_PORT, + BAD_INDEX, + READ_ONLY, + MISMATCH, + BAD_VALUE, + CONFLICT, + UNSUPPORTED, + INFO_BAD_VALUE, + INFO_CONFLICT, + } +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Status.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Status.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8b430d29f23eaa7e839f3c2dff9d055fc4ece5c9 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Status.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable Status { + int status; + const int OK = 0; + const int BAD_VALUE = (-22) /* -22 */; + const int BAD_INDEX = (-75) /* -75 */; + const int CANNOT_DO = (-2147483646) /* -2147483646 */; + const int DUPLICATE = (-17) /* -17 */; + const int NOT_FOUND = (-2) /* -2 */; + const int BAD_STATE = (-38) /* -38 */; + const int BLOCKING = (-9930) /* -9930 */; + const int NO_MEMORY = (-12) /* -12 */; + const int REFUSED = (-1) /* -1 */; + const int TIMED_OUT = (-110) /* -110 */; + const int OMITTED = (-74) /* -74 */; + const int CORRUPTED = (-2147483648) /* -2147483648 */; + const int NO_INIT = (-19) /* -19 */; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/StructDescriptor.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/StructDescriptor.aidl new file mode 100644 index 0000000000000000000000000000000000000000..58268e0b927a24bc4d8ebf1ec2669064c6e54871 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/StructDescriptor.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable StructDescriptor { + int type; + android.hardware.media.c2.FieldDescriptor[] fields; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ValueRange.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ValueRange.aidl new file mode 100644 index 0000000000000000000000000000000000000000..db71ce044ed88aa0aebc6ffe20b76acc1e3c3ac9 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/ValueRange.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable ValueRange { + long min; + long max; + long step; + long num; + long denom; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Work.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Work.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a5343488f518000f8ca3045573c8a5fa4eeb865e --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Work.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable Work { + byte[] chainInfo; + android.hardware.media.c2.FrameData input; + android.hardware.media.c2.Worklet[] worklets; + int workletsProcessed; + android.hardware.media.c2.Status result; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkBundle.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkBundle.aidl new file mode 100644 index 0000000000000000000000000000000000000000..84708a8556cc333da377ab22d6f7d03a08df6ca5 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkBundle.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable WorkBundle { + android.hardware.media.c2.Work[] works; + android.hardware.media.c2.BaseBlock[] baseBlocks; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkOrdinal.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkOrdinal.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2833df3a79adb11ca6de93352b04fb7a50b8c92e --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/WorkOrdinal.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable WorkOrdinal { + long timestampUs; + long frameIndex; + long customOrdinal; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Worklet.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Worklet.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a79abf202b2f3cb117850a8a6498cb4917e64e35 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/1/android/hardware/media/c2/Worklet.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +parcelable Worklet { + int componentId; + byte[] tunings; + android.hardware.media.c2.SettingResult[] failures; + android.hardware.media.c2.FrameData output; +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl index 7d58340923b8d987878b5a03d575c2f845e50bfd..0a7e3c4b53dbf5a9c53eb2ab3e8de2b5484a22b8 100644 --- a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl @@ -45,16 +45,24 @@ interface IComponent { void reset(); void start(); void stop(); + android.hardware.media.c2.IInputSurfaceConnection connectToInputSurface(in android.hardware.media.c2.IInputSurface inputSurface); + android.hardware.media.c2.IInputSink asInputSink(); parcelable BlockPool { long blockPoolId; android.hardware.media.c2.IConfigurable configurable; } - parcelable C2AidlGbAllocator { + parcelable GbAllocator { + ParcelFileDescriptor waitableFd; android.hardware.media.c2.IGraphicBufferAllocator igba; + } + parcelable PooledGbAllocator { ParcelFileDescriptor waitableFd; + long receiverId; + android.hardware.media.c2.IPooledGraphicBufferAllocator ipgba; } - union BlockPoolAllocator { + parcelable BlockPoolAllocator { int allocatorId; - android.hardware.media.c2.IComponent.C2AidlGbAllocator allocator; + @nullable android.hardware.media.c2.IComponent.GbAllocator gbAllocator; + @nullable android.hardware.media.c2.IComponent.PooledGbAllocator pooledGbAllocator; } } diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponentStore.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponentStore.aidl index d1b59157d4b2b053e744e88cfe350f87f4339921..d7a4706d19ea33f79ecc09c8a51a9523537bfdcd 100644 --- a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponentStore.aidl +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponentStore.aidl @@ -41,6 +41,7 @@ interface IComponentStore { android.hardware.media.bufferpool2.IClientManager getPoolClientManager(); android.hardware.media.c2.StructDescriptor[] getStructDescriptors(in int[] indices); android.hardware.media.c2.IComponentStore.ComponentTraits[] listComponents(); + android.hardware.media.c2.IInputSurface createInputSurface(); @VintfStability parcelable ComponentTraits { String name; diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IConfigurable.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IConfigurable.aidl index 32f5abdb511972a9d41cc163cd76f07027ddd459..04e776ee3c48424be2109ad1f61a7fa5edc9f07c 100644 --- a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IConfigurable.aidl +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IConfigurable.aidl @@ -37,12 +37,23 @@ interface IConfigurable { android.hardware.media.c2.IConfigurable.ConfigResult config(in android.hardware.media.c2.Params inParams, in boolean mayBlock); int getId(); String getName(); - android.hardware.media.c2.Params query(in int[] indices, in boolean mayBlock); + android.hardware.media.c2.IConfigurable.QueryResult query(in int[] indices, in boolean mayBlock); android.hardware.media.c2.ParamDescriptor[] querySupportedParams(in int start, in int count); - android.hardware.media.c2.FieldSupportedValuesQueryResult[] querySupportedValues(in android.hardware.media.c2.FieldSupportedValuesQuery[] inFields, in boolean mayBlock); + android.hardware.media.c2.IConfigurable.QuerySupportedValuesResult querySupportedValues(in android.hardware.media.c2.FieldSupportedValuesQuery[] inFields, in boolean mayBlock); @VintfStability parcelable ConfigResult { android.hardware.media.c2.Params params; android.hardware.media.c2.SettingResult[] failures; + android.hardware.media.c2.Status status; + } + @VintfStability + parcelable QueryResult { + android.hardware.media.c2.Params params; + android.hardware.media.c2.Status status; + } + @VintfStability + parcelable QuerySupportedValuesResult { + android.hardware.media.c2.FieldSupportedValuesQueryResult[] values; + android.hardware.media.c2.Status status; } } diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSink.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSink.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e6ea4d54e8bed85c8ddc91d4fb7c37b8d9d73bdb --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSink.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IInputSink { + void queue(in android.hardware.media.c2.WorkBundle workBundle); +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurface.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurface.aidl new file mode 100644 index 0000000000000000000000000000000000000000..14455cb71f57178d6e4525cdf84a445ba5775df8 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurface.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IInputSurface { + android.view.Surface getSurface(); + android.hardware.media.c2.IConfigurable getConfigurable(); + android.hardware.media.c2.IInputSurfaceConnection connect(in android.hardware.media.c2.IInputSink sink); +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurfaceConnection.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurfaceConnection.aidl new file mode 100644 index 0000000000000000000000000000000000000000..28fff65e14695da6c6a9fffa9bfcac1deec7a9b1 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IInputSurfaceConnection.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IInputSurfaceConnection { + void disconnect(); + void signalEndOfStream(); +} diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1a8c66d1db1ff03303567b3dc5d02d932faf4787 --- /dev/null +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.media.c2; +@VintfStability +interface IPooledGraphicBufferAllocator { + android.hardware.media.c2.IPooledGraphicBufferAllocator.Allocation allocate(in android.hardware.media.c2.IPooledGraphicBufferAllocator.Description desc); + boolean deallocate(in int id); + parcelable Allocation { + int bufferId; + @nullable ParcelFileDescriptor fence; + } + parcelable Description { + int widthPixels; + int heightPixels; + int format; + long usage; + } +} diff --git a/media/c2/aidl/android/hardware/media/c2/IComponent.aidl b/media/c2/aidl/android/hardware/media/c2/IComponent.aidl index fc923ab87ae8f4098f8d7ee12e10c71b6438422c..387d70a73968a59e4b229282d092e4ac8e3d0049 100644 --- a/media/c2/aidl/android/hardware/media/c2/IComponent.aidl +++ b/media/c2/aidl/android/hardware/media/c2/IComponent.aidl @@ -21,6 +21,10 @@ import android.hardware.common.NativeHandle; import android.hardware.media.c2.IComponentInterface; import android.hardware.media.c2.IConfigurable; import android.hardware.media.c2.IGraphicBufferAllocator; +import android.hardware.media.c2.IInputSink; +import android.hardware.media.c2.IInputSurface; +import android.hardware.media.c2.IInputSurfaceConnection; +import android.hardware.media.c2.IPooledGraphicBufferAllocator; import android.hardware.media.c2.WorkBundle; import android.os.ParcelFileDescriptor; @@ -54,20 +58,36 @@ interface IComponent { * graphic blocks. the waitable fd is used to create a specific type of * C2Fence which can be used for waiting until to allocate is not blocked. */ - parcelable C2AidlGbAllocator { + parcelable GbAllocator { + ParcelFileDescriptor waitableFd; IGraphicBufferAllocator igba; + } + + /** + * C2AIDL allocator interface based on media.bufferpool2 along with a waitable fd. + * + * The interface is used from a specific type of C2BlockPool to allocate + * graphic blocks. the waitable fd is used to create a specific type of + * C2Fence which can be used for waiting until to allocate is not blocked. + * receiverId is id of receiver IConnection of media.bufferpool2. + */ + parcelable PooledGbAllocator { ParcelFileDescriptor waitableFd; + long receiverId; + IPooledGraphicBufferAllocator ipgba; } + /** * Allocator for C2BlockPool. * * C2BlockPool will use a C2Allocator which is specified by an id. - * or C2AIDL allocator interface directly. + * Based on allocator id, allocator is specified. */ - union BlockPoolAllocator { + parcelable BlockPoolAllocator { int allocatorId; - C2AidlGbAllocator allocator; + @nullable GbAllocator gbAllocator; + @nullable PooledGbAllocator pooledGbAllocator; } /** @@ -308,4 +328,32 @@ interface IComponent { * - `Status::CORRUPTED` - Some unknown error occurred. */ void stop(); + + /** + * Starts using an input surface. + * + * The component must be in running state. + * + * @param inputSurface Input surface to connect to. + * @return connection `IInputSurfaceConnection` object, which can be used to + * query and configure properties of the connection. This cannot be + * null. + * @throws ServiceSpecificException with one of the following values: + * - `Status::CANNOT_DO` - The component does not support an input surface. + * - `Status::BAD_STATE` - The component is not in running state. + * - `Status::DUPLICATE` - The component is already connected to an input surface. + * - `Status::REFUSED` - The input surface is already in use. + * - `Status::NO_MEMORY` - Not enough memory to start the component. + * - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner. + * - `Status::CORRUPTED` - Some unknown error occurred. + */ + IInputSurfaceConnection connectToInputSurface(in IInputSurface inputSurface); + + /** + * Returns an @ref IInputSink instance that has the component as the + * underlying implementation. + * + * @return sink `IInputSink` instance. + */ + IInputSink asInputSink(); } diff --git a/media/c2/aidl/android/hardware/media/c2/IComponentStore.aidl b/media/c2/aidl/android/hardware/media/c2/IComponentStore.aidl index 1435a7e4bc1c2bf75036e98562dc6265907337de..019405df4b53947e57e32b4653802bcbbd60f8f1 100644 --- a/media/c2/aidl/android/hardware/media/c2/IComponentStore.aidl +++ b/media/c2/aidl/android/hardware/media/c2/IComponentStore.aidl @@ -21,6 +21,7 @@ import android.hardware.media.c2.IComponent; import android.hardware.media.c2.IComponentInterface; import android.hardware.media.c2.IComponentListener; import android.hardware.media.c2.IConfigurable; +import android.hardware.media.c2.IInputSurface; import android.hardware.media.c2.StructDescriptor; /** @@ -182,4 +183,16 @@ interface IComponentStore { * - `Status::CORRUPTED` - Some unknown error occurred. */ ComponentTraits[] listComponents(); + + /** + * Creates a persistent input surface that can be used as an input surface + * for any IComponent instance + * + * @return IInputSurface A persistent input surface. + * @throws ServiceSpecificException with one of following values: + * - `Status::NO_MEMORY` - Not enough memory to complete this method. + * - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner. + * - `Status::CORRUPTED` - Some unknown error occurred. + */ + IInputSurface createInputSurface(); } diff --git a/media/c2/aidl/android/hardware/media/c2/IConfigurable.aidl b/media/c2/aidl/android/hardware/media/c2/IConfigurable.aidl index 7fdb8259b8f660674dfbec14fb5d16ffb0ff27a0..1481c151ef3a17742c603f75ce1792f0461905bf 100644 --- a/media/c2/aidl/android/hardware/media/c2/IConfigurable.aidl +++ b/media/c2/aidl/android/hardware/media/c2/IConfigurable.aidl @@ -21,6 +21,7 @@ import android.hardware.media.c2.FieldSupportedValuesQueryResult; import android.hardware.media.c2.ParamDescriptor; import android.hardware.media.c2.Params; import android.hardware.media.c2.SettingResult; +import android.hardware.media.c2.Status; /** * Generic configuration interface presented by all configurable Codec2 objects. @@ -34,12 +35,42 @@ interface IConfigurable { * Return parcelable for config() interface. * * This includes the successful config settings along with the failure reasons of - * the specified setting. + * the specified setting. @p status is for the compatibility with HIDL interface. + * (The value is defined in Status.aidl, and possible values are enumerated + * in config() interface definition) */ @VintfStability parcelable ConfigResult { Params params; SettingResult[] failures; + Status status; + } + + /** + * Return parcelable for query() interface. + * + * @p params is the parameter descripion for queried configuration indices. + * @p status is for the compatibility with HIDL interface. (The value is defined in + * Status.aidl, and possible values are enumerated in query() interface definition) + */ + @VintfStability + parcelable QueryResult { + Params params; + Status status; + } + + /** + * Return parcelable for querySupportedValues() interface. + * + * @p values is the value descripion for queried configuration fields. + * @p status is for the compatibility with HIDL interface. (The value is defined in + * Status.aidl, and possible values are enumerated in querySupportedValues() + * interface definition) + */ + @VintfStability + parcelable QuerySupportedValuesResult { + FieldSupportedValuesQueryResult[] values; + Status status; } /** @@ -82,7 +113,8 @@ interface IConfigurable { * @param mayBlock Whether this call may block or not. * @return result of config. Params in the result should be in same order * with @p inParams. - * @throws ServiceSpecificException with one of the following values: + * + * Returned @p status will be one of the following. * - `Status::NO_MEMORY` - Some supported parameters could not be updated * successfully because they contained unsupported values. * These are returned in @p failures. @@ -146,17 +178,22 @@ interface IConfigurable { * * @param indices List of C2Param structure indices to query. * @param mayBlock Whether this call may block or not. - * @return Flattened representation of std::vector object. - * Unsupported settings are skipped in the results. The order in @p indices - * still be preserved except skipped settings. - * @throws ServiceSpecificException with one of the following values: + * @return @p params is the flattened representation of std::vector object. + * Technically unsupported settings can be either skipped or invalidated. + * (Invalidated params will be skipped during unflattening to make these identical.) + * In the future we will want these to be invalidated to make it easier + * for the framework code. + * + * The order in @p indices still be preserved except skipped settings. + * + * Returned @p status will be one of the following. * - `Status::NO_MEMORY` - Could not allocate memory for a supported parameter. * - `Status::BLOCKING` - Querying some parameters requires blocking, but * @p mayBlock is false. * - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner. * - `Status::CORRUPTED` - Some unknown error occurred. */ - Params query(in int[] indices, in boolean mayBlock); + QueryResult query(in int[] indices, in boolean mayBlock); /** * Returns a list of supported parameters within a selected range of C2Param @@ -197,9 +234,10 @@ interface IConfigurable { * * @param inFields List of field queries. * @param mayBlock Whether this call may block or not. - * @return List of supported values and results for the + * @return @p values is the list of supported values and results for the * supplied queries. - * @throws ServiceSpecificException with one of the following values: + * + * Returned @p status will be one of the following. * - `Status::BLOCKING` - Querying some parameters requires blocking, but * @p mayBlock is false. * - `Status::NO_MEMORY` - Not enough memory to complete this method. @@ -208,6 +246,6 @@ interface IConfigurable { * - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner. * - `Status::CORRUPTED` - Some unknown error occurred. */ - FieldSupportedValuesQueryResult[] querySupportedValues( + QuerySupportedValuesResult querySupportedValues( in FieldSupportedValuesQuery[] inFields, in boolean mayBlock); } diff --git a/media/c2/aidl/android/hardware/media/c2/IInputSink.aidl b/media/c2/aidl/android/hardware/media/c2/IInputSink.aidl new file mode 100644 index 0000000000000000000000000000000000000000..eb8ad3d4cf258b86eb185f9d34c7fd8076d2580b --- /dev/null +++ b/media/c2/aidl/android/hardware/media/c2/IInputSink.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.media.c2; + +import android.hardware.media.c2.WorkBundle; + +/** + * An `IInputSink` is a receiver of work items. + * + * An @ref IComponent instance can present itself as an `IInputSink` via a thin + * wrapper. + * + * @sa IInputSurface, IComponent. + */ +@VintfStability +interface IInputSink { + /** + * Feeds work to the sink. + * + * @param workBundle `WorkBundle` object containing a list of `Work` objects + * to queue to the component. + * @throws ServiceSpecificException with one of the following values: + * - `Status::BAD_INDEX` - Some component id in some `Worklet` is not valid. + * - `Status::CANNOT_DO` - Tunneling has not been set up for this sink, but some + * `Work` object contains tunneling information. + * - `Status::NO_MEMORY` - Not enough memory to queue @p workBundle. + * - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner. + * - `Status::CORRUPTED` - Some unknown error occurred. + */ + void queue(in WorkBundle workBundle); +} diff --git a/media/c2/aidl/android/hardware/media/c2/IInputSurface.aidl b/media/c2/aidl/android/hardware/media/c2/IInputSurface.aidl new file mode 100644 index 0000000000000000000000000000000000000000..77cb1fd4a5ab830ce1209ada4231cf7351e9d815 --- /dev/null +++ b/media/c2/aidl/android/hardware/media/c2/IInputSurface.aidl @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.media.c2; + +import android.hardware.media.c2.IConfigurable; +import android.hardware.media.c2.IInputSink; +import android.hardware.media.c2.IInputSurfaceConnection; +import android.view.Surface; + +/** + * Input surface for a Codec2 component. + * + * An input surface is an instance of `IInputSurface`, which may be + * created by calling IComponentStore::createInputSurface(). Once created, the + * client may + * 1. write data to it via the `NativeWindow` interface; and + * 2. use it as input to a Codec2 encoder. + * + * @sa IInputSurfaceConnection, IComponentStore::createInputSurface(), + * IComponent::connectToInputSurface(). + */ +@VintfStability +interface IInputSurface { + /** + * Returns the producer interface into the internal buffer queue. + * + * @return producer `Surface` instance(actually ANativeWindow). This must not + * be null. + */ + Surface getSurface(); + + /** + * Returns the @ref IConfigurable instance associated to this input surface. + * + * @return configurable `IConfigurable` instance. This must not be null. + */ + IConfigurable getConfigurable(); + + /** + * Connects the input surface to an input sink. + * + * This function is generally called from inside the implementation of + * IComponent::connectToInputSurface(), where @p sink is a thin wrapper of + * the component that consumes buffers from this surface. + * + * @param sink Input sink. See `IInputSink` for more information. + * @return connection `IInputSurfaceConnection` object. This must not be + * null if @p status is `OK`. + * @throws ServiceSpecificException with one of following values: + * - `Status::BAD_VALUE` - @p sink is invalid. + * - `Status::CORRUPTED` - Some unknown error occurred. + */ + IInputSurfaceConnection connect(in IInputSink sink); +} diff --git a/media/c2/aidl/android/hardware/media/c2/IInputSurfaceConnection.aidl b/media/c2/aidl/android/hardware/media/c2/IInputSurfaceConnection.aidl new file mode 100644 index 0000000000000000000000000000000000000000..36524ebfe461b1c6c2f425078c107daf9c8e41c7 --- /dev/null +++ b/media/c2/aidl/android/hardware/media/c2/IInputSurfaceConnection.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.media.c2; + +/** + * Connection between an IInputSink and an IInpuSurface. + */ +@VintfStability +interface IInputSurfaceConnection { + /** + * Destroys the connection between an input surface and a component. + * + * @throws ServiceSpecificException with one of following values: + * - `Status::BAD_STATE` - The component is not in running state. + * - `Status::NOT_FOUND` - The surface is not connected to a component. + * - `Status::CORRUPTED` - Some unknown error occurred. + */ + void disconnect(); + + /** + * Signal the end of stream. + + * @throws ServiceSpecificException with one of following values: + * - `Status::BAD_STATE` - The component is not in running state. + */ + void signalEndOfStream(); +} diff --git a/media/c2/aidl/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl b/media/c2/aidl/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b599d524191d823e39cf9c9b9b82b14cc7373ac5 --- /dev/null +++ b/media/c2/aidl/android/hardware/media/c2/IPooledGraphicBufferAllocator.aidl @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.media.c2; + +import android.os.ParcelFileDescriptor; + +/** + * Interface for decoder output buffer allocator for HAL process + * + * A graphic buffer for decoder output is allocated by the interface. + */ +@VintfStability +interface IPooledGraphicBufferAllocator { + /** + * A graphic buffer allocation. + * + * bufferId is id of buffer from a media.bufferpool2. The buffer is + * android.hardware.HardwareBuffer. + * fence is provided in order to signal readiness of the buffer I/O inside + * underlying Graphics subsystem. This is called a sync fence throughout Android framework. + */ + parcelable Allocation { + int bufferId; + @nullable ParcelFileDescriptor fence; + } + + /** + * Parameters for a graphic buffer allocation. + * + * Refer to AHardwareBuffer_Desc(libnativewindow) for details. + */ + parcelable Description { + int widthPixels; + int heightPixels; + int format; // AHardwareBuffer_Format + long usage; // AHardwareBuffer_UsageFlags + } + + /** + * Allocate a graphic buffer. + * deallocate() must be called after the allocated buffer is no longer needed. + * + * @param desc Allocation parameters. + * @return an id of a buffer, the id is created from media.bufferpool2 in order for + * caching and recycling, + * If underlying allocator is blocked, c2::Status::Blocked will be returned. + * Waitable fd must be obtained using the ndk object locally. The waitable fd must + * be passed to the receiver during BlockPool creation request via AIDL. + * @throws ServiceSpecificException with one of the following values: + * - `c2::Status::BAD_STATE` - The client is not in running states. + * - `c2::Status::BLOCKED` - Underlying graphics system is blocked. + * - `c2::Status::CORRUPTED` - Some unknown error occurred. + */ + Allocation allocate(in Description desc); + + /** + * De-allocate a graphic buffer by graphic buffer's unique id. + * + * @param id buffer id. + * @return {@code true} when de-allocate happened, {@code false} otherwise. + */ + boolean deallocate(in int id); +} diff --git a/media/omx/1.0/vts/functional/audio/Android.bp b/media/omx/1.0/vts/functional/audio/Android.bp index a2733c92f11a95aba00e680ffb6ad62b3be1160a..1be82f8e0bbff19190c4a0d3f48f04ff3d8563de 100644 --- a/media/omx/1.0/vts/functional/audio/Android.bp +++ b/media/omx/1.0/vts/functional/audio/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/omx/1.0/vts/functional/common/Android.bp b/media/omx/1.0/vts/functional/common/Android.bp index 12b6fb292fecc2822c422a2036ac770c8c39ae1f..7c23d61c95bb6c11c121044b6847d72a54f379ca 100644 --- a/media/omx/1.0/vts/functional/common/Android.bp +++ b/media/omx/1.0/vts/functional/common/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/omx/1.0/vts/functional/component/Android.bp b/media/omx/1.0/vts/functional/component/Android.bp index 7b8ec9ddf40c036ddb2dfb4720b884d2cc58b61e..fddbb8eebc9c1e23818452b024dc9421784a4872 100644 --- a/media/omx/1.0/vts/functional/component/Android.bp +++ b/media/omx/1.0/vts/functional/component/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/omx/1.0/vts/functional/store/Android.bp b/media/omx/1.0/vts/functional/store/Android.bp index b34fff1b7bf0e9c2ff6f4f9aa03874a9406e7b1c..ebe42930dca67b00588848f7f6a374a14640aec9 100644 --- a/media/omx/1.0/vts/functional/store/Android.bp +++ b/media/omx/1.0/vts/functional/store/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/omx/1.0/vts/functional/video/Android.bp b/media/omx/1.0/vts/functional/video/Android.bp index 5454f16c67133f4712ae451ac1a3912146244001..0eac78e7bb78effc7512f680d08bb347a480d346 100644 --- a/media/omx/1.0/vts/functional/video/Android.bp +++ b/media/omx/1.0/vts/functional/video/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_media_codec_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/media/omx/1.0/vts/functional/video/VtsHalMediaOmxV1_0TargetVideoEncTest.cpp b/media/omx/1.0/vts/functional/video/VtsHalMediaOmxV1_0TargetVideoEncTest.cpp index f24c6d1be2bc6fd5f1e0fd717c68c77d043595e1..9a75e6ed838b1f31c56d9e5c196ead56cac79ad0 100644 --- a/media/omx/1.0/vts/functional/video/VtsHalMediaOmxV1_0TargetVideoEncTest.cpp +++ b/media/omx/1.0/vts/functional/video/VtsHalMediaOmxV1_0TargetVideoEncTest.cpp @@ -630,10 +630,7 @@ int colorFormatConversion(BufferInfo* buffer, buffer_handle_t buff, PixelFormat if (error != android::NO_ERROR) return 1; } else { void* data; - int32_t outBytesPerPixel; - int32_t outBytesPerStride; - error = gbmapper.lock(buff, buffer->omxBuffer.attr.anwBuffer.usage, rect, &data, - &outBytesPerPixel, &outBytesPerStride); + error = gbmapper.lock(buff, buffer->omxBuffer.attr.anwBuffer.usage, rect, &data); EXPECT_EQ(error, android::NO_ERROR); if (error != android::NO_ERROR) return 1; diff --git a/neuralnetworks/aidl/utils/src/Conversions.cpp b/neuralnetworks/aidl/utils/src/Conversions.cpp index 47c72b47af4007b038aeb72b50bb111310f0c48f..9f920bb122bb8d221ecce29bb2179fa1e9d5cae1 100644 --- a/neuralnetworks/aidl/utils/src/Conversions.cpp +++ b/neuralnetworks/aidl/utils/src/Conversions.cpp @@ -421,7 +421,7 @@ GeneralResult unvalidatedConvert(const aidl_hal::Memory& memory) { return createSharedMemoryFromAHWB(ahwb, /*takeOwnership=*/true); #else // __ANDROID__ - LOG(FATAL) << "GeneralResult unvalidatedConvert(const aidl_hal::Memory& " + LOG(ERROR) << "GeneralResult unvalidatedConvert(const aidl_hal::Memory& " "memory): Not Available on Host Build"; return NN_ERROR() << "createFromHandle failed"; #endif // __ANDROID__ @@ -732,7 +732,7 @@ nn::GeneralResult unvalidatedConvert(const nn::Memory::HardwareBuffer& m }; return Memory::make(std::move(hardwareBuffer)); #else // __ANDROID__ - LOG(FATAL) << "nn::GeneralResult unvalidatedConvert(const nn::Memory::HardwareBuffer& " + LOG(ERROR) << "nn::GeneralResult unvalidatedConvert(const nn::Memory::HardwareBuffer& " "memory): Not Available on Host Build"; (void)memory; return (NN_ERROR() << "unvalidatedConvert failed").operator nn::GeneralResult(); diff --git a/nfc/1.0/vts/functional/Android.bp b/nfc/1.0/vts/functional/Android.bp index 0d3f0c95d6a643ef128393f40b8ce2c285ac3365..2e9a6fa0ff91bbd9cbab360bad88ddb7e0a63e5b 100644 --- a/nfc/1.0/vts/functional/Android.bp +++ b/nfc/1.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_nfc", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -30,5 +31,8 @@ cc_test { static_libs: [ "android.hardware.nfc@1.0", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp index 4d997e65692dd21e4e1630a1905388e0345f7de8..8210ff04cf3051eca6663ae39864ed582bc8d218 100644 --- a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp +++ b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp @@ -296,12 +296,6 @@ TEST_P(NfcHidlTest, WriteInvalidAndThenValidCommand) { res = nfc_cb_->WaitForCallback(kCallbackNameSendData); EXPECT_TRUE(res.no_timeout); EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]); - if (nci_version == NCI_VERSION_2 && res.args->last_data_.size() > 13 && - res.args->last_data_[13] == 0x00) { - // Wait for CORE_CONN_CREDITS_NTF - res = nfc_cb_->WaitForCallback(kCallbackNameSendData); - EXPECT_TRUE(res.no_timeout); - } // Send an Error Data Packet cmd = INVALID_COMMAND; data = cmd; @@ -360,13 +354,6 @@ TEST_P(NfcHidlTest, Bandwidth) { res = nfc_cb_->WaitForCallback(kCallbackNameSendData); EXPECT_TRUE(res.no_timeout); EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]); - if (nci_version == NCI_VERSION_2 && res.args->last_data_.size() > 13 && - res.args->last_data_[13] == 0x00) { - // Wait for CORE_CONN_CREDITS_NTF - res = nfc_cb_->WaitForCallback(kCallbackNameSendData); - EXPECT_TRUE(res.no_timeout); - } - cmd = CORE_CONN_CREATE_CMD; data = cmd; EXPECT_EQ(data.size(), nfc_->write(data)); diff --git a/nfc/1.1/vts/functional/Android.bp b/nfc/1.1/vts/functional/Android.bp index 4439531d9f0799315b1de70e078c51ce5be1a6e1..cffe84ab6a7ca5d93ba88759cec24091d106143d 100644 --- a/nfc/1.1/vts/functional/Android.bp +++ b/nfc/1.1/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_nfc", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -31,5 +32,8 @@ cc_test { "android.hardware.nfc@1.0", "android.hardware.nfc@1.1", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/nfc/1.2/vts/functional/Android.bp b/nfc/1.2/vts/functional/Android.bp index ff7bd3a8d850fa4ad7005753fb447782ec11b723..394dc261dc8827e25889eee6ac8cb9c555b2b1a6 100644 --- a/nfc/1.2/vts/functional/Android.bp +++ b/nfc/1.2/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_nfc", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -32,5 +33,8 @@ cc_test { "android.hardware.nfc@1.1", "android.hardware.nfc@1.2", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/nfc/aidl/Android.bp b/nfc/aidl/Android.bp index dae9f29a116e43eb23af8c0866656fb7eee983c0..ae68f17cdc2f94d4a5625d3bb7fc63334f262e17 100644 --- a/nfc/aidl/Android.bp +++ b/nfc/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_nfc", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -34,7 +35,7 @@ aidl_interface { sdk_version: "module_current", enabled: false, }, - ndk: { + ndk: { enabled: true, apex_available: [ "//apex_available:platform", diff --git a/nfc/aidl/default/Android.bp b/nfc/aidl/default/Android.bp index 6daebe56978a984cf875dd044fd007fc77c2f238..0cda51ddb7db654da227af8121657ffde9278155 100644 --- a/nfc/aidl/default/Android.bp +++ b/nfc/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_nfc", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/nfc/aidl/vts/functional/Android.bp b/nfc/aidl/vts/functional/Android.bp index 99eecd060d44d50e3ff1b42320d0d83ca9f02956..0dab2d804f652fc256314ebb68de90caf2292a6c 100644 --- a/nfc/aidl/vts/functional/Android.bp +++ b/nfc/aidl/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_nfc", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/power/aidl/Android.bp b/power/aidl/Android.bp index 76439265afbf53ef8ee7e8cbc3ed40f6107e1a2d..dc5761312b14cc00ff56519c50a05222f5432b73 100644 --- a/power/aidl/Android.bp +++ b/power/aidl/Android.bp @@ -28,11 +28,20 @@ aidl_interface { "android/hardware/power/*.aidl", ], stability: "vintf", + imports: [ + "android.hardware.common.fmq-V1", + "android.hardware.common-V2", + ], backend: { cpp: { + enabled: false, + }, + ndk: { enabled: true, }, java: { + sdk_version: "module_current", + enabled: true, platform_apis: true, }, }, @@ -53,9 +62,16 @@ aidl_interface { version: "4", imports: [], }, + { + version: "5", + imports: [ + "android.hardware.common.fmq-V1", + "android.hardware.common-V2", + ], + }, ], - frozen: false, + frozen: true, } diff --git a/power/aidl/aidl_api/android.hardware.power/5/.hash b/power/aidl/aidl_api/android.hardware.power/5/.hash new file mode 100644 index 0000000000000000000000000000000000000000..da156b24eb9776c79e6ff6a2aeafe6dcc55808a0 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/.hash @@ -0,0 +1 @@ +d111735ed2b89b6c32443aac9b162b1afbbea3f2 diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Boost.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Boost.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8ee15eff7ffe06e893256002cc4731797107856c --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Boost.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@Backing(type="int") @VintfStability +enum Boost { + INTERACTION, + DISPLAY_UPDATE_IMMINENT, + ML_ACC, + AUDIO_LAUNCH, + CAMERA_LAUNCH, + CAMERA_SHOT, +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelConfig.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d3caca413ba40931bc5f0c90c868660232c2953b --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelConfig.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +parcelable ChannelConfig { + android.hardware.common.fmq.MQDescriptor channelDescriptor; + @nullable android.hardware.common.fmq.MQDescriptor eventFlagDescriptor; + int readFlagBitmask; + int writeFlagBitmask; +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelMessage.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelMessage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ab38fcc21f46d16fee5e935f2d87d50b3c500874 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/ChannelMessage.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@FixedSize @VintfStability +parcelable ChannelMessage { + int sessionID; + long timeStampNanos; + android.hardware.power.ChannelMessage.ChannelMessageContents data; + @FixedSize @VintfStability + union ChannelMessageContents { + long[16] reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + long targetDuration; + android.hardware.power.SessionHint hint; + android.hardware.power.ChannelMessage.ChannelMessageContents.SessionModeSetter mode; + android.hardware.power.WorkDurationFixedV1 workDuration; + @FixedSize @VintfStability + parcelable SessionModeSetter { + android.hardware.power.SessionMode modeInt; + boolean enabled; + } + } +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPower.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPower.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8acdaf20143ed466b043f46a31ac88c50d324bb9 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPower.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +interface IPower { + oneway void setMode(in android.hardware.power.Mode type, in boolean enabled); + boolean isModeSupported(in android.hardware.power.Mode type); + oneway void setBoost(in android.hardware.power.Boost type, in int durationMs); + boolean isBoostSupported(in android.hardware.power.Boost type); + android.hardware.power.IPowerHintSession createHintSession(in int tgid, in int uid, in int[] threadIds, in long durationNanos); + long getHintSessionPreferredRate(); + android.hardware.power.IPowerHintSession createHintSessionWithConfig(in int tgid, in int uid, in int[] threadIds, in long durationNanos, in android.hardware.power.SessionTag tag, out android.hardware.power.SessionConfig config); + android.hardware.power.ChannelConfig getSessionChannel(in int tgid, in int uid); + oneway void closeSessionChannel(in int tgid, in int uid); +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPowerHintSession.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPowerHintSession.aidl new file mode 100644 index 0000000000000000000000000000000000000000..010f815476486666797cd1fc0dcf943a2685bb3b --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/IPowerHintSession.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +interface IPowerHintSession { + oneway void updateTargetWorkDuration(long targetDurationNanos); + oneway void reportActualWorkDuration(in android.hardware.power.WorkDuration[] durations); + oneway void pause(); + oneway void resume(); + oneway void close(); + oneway void sendHint(android.hardware.power.SessionHint hint); + void setThreads(in int[] threadIds); + oneway void setMode(android.hardware.power.SessionMode type, boolean enabled); + android.hardware.power.SessionConfig getSessionConfig(); +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Mode.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Mode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..46eca69309e755d79b65898281005f8e62afd426 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/Mode.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@Backing(type="int") @VintfStability +enum Mode { + DOUBLE_TAP_TO_WAKE, + LOW_POWER, + SUSTAINED_PERFORMANCE, + FIXED_PERFORMANCE, + VR, + LAUNCH, + EXPENSIVE_RENDERING, + INTERACTIVE, + DEVICE_IDLE, + DISPLAY_INACTIVE, + AUDIO_STREAMING_LOW_LATENCY, + CAMERA_STREAMING_SECURE, + CAMERA_STREAMING_LOW, + CAMERA_STREAMING_MID, + CAMERA_STREAMING_HIGH, + GAME, + GAME_LOADING, + DISPLAY_CHANGE, + AUTOMOTIVE_PROJECTION, +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionConfig.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b03cfb2db1eaa190ea02efb6a6a4e185f8c6cda8 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionConfig.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +parcelable SessionConfig { + long id; +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionHint.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionHint.aidl new file mode 100644 index 0000000000000000000000000000000000000000..df316189a4a5330f7a780ea8e7ec2af063c9ac1c --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionHint.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@Backing(type="int") @VintfStability +enum SessionHint { + CPU_LOAD_UP = 0, + CPU_LOAD_DOWN = 1, + CPU_LOAD_RESET = 2, + CPU_LOAD_RESUME = 3, + POWER_EFFICIENCY = 4, + GPU_LOAD_UP = 5, + GPU_LOAD_DOWN = 6, + GPU_LOAD_RESET = 7, +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionMode.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d0ae0bab708f15d33703d8ffb2d5f7742d708baa --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionMode.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@Backing(type="int") @VintfStability +enum SessionMode { + POWER_EFFICIENCY, +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionTag.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionTag.aidl new file mode 100644 index 0000000000000000000000000000000000000000..862fbc5a07a325c7378ba0a3ff8b018751aa5f0d --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/SessionTag.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@Backing(type="int") @VintfStability +enum SessionTag { + OTHER, + SURFACEFLINGER, + HWUI, + GAME, + APP, +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDuration.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDuration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..45013ddf77f3bd74bd38a44160a0fb15cf5c212b --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDuration.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +parcelable WorkDuration { + long timeStampNanos; + long durationNanos; + long workPeriodStartTimestampNanos; + long cpuDurationNanos; + long gpuDurationNanos; +} diff --git a/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDurationFixedV1.aidl b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDurationFixedV1.aidl new file mode 100644 index 0000000000000000000000000000000000000000..45310b89276ee98e469720a1d3afd88bfad0676d --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/5/android/hardware/power/WorkDurationFixedV1.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@FixedSize @VintfStability +parcelable WorkDurationFixedV1 { + long durationNanos; + long workPeriodStartTimestampNanos; + long cpuDurationNanos; + long gpuDurationNanos; +} diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelConfig.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d3caca413ba40931bc5f0c90c868660232c2953b --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelConfig.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +parcelable ChannelConfig { + android.hardware.common.fmq.MQDescriptor channelDescriptor; + @nullable android.hardware.common.fmq.MQDescriptor eventFlagDescriptor; + int readFlagBitmask; + int writeFlagBitmask; +} diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelMessage.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelMessage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ab38fcc21f46d16fee5e935f2d87d50b3c500874 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/ChannelMessage.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@FixedSize @VintfStability +parcelable ChannelMessage { + int sessionID; + long timeStampNanos; + android.hardware.power.ChannelMessage.ChannelMessageContents data; + @FixedSize @VintfStability + union ChannelMessageContents { + long[16] reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + long targetDuration; + android.hardware.power.SessionHint hint; + android.hardware.power.ChannelMessage.ChannelMessageContents.SessionModeSetter mode; + android.hardware.power.WorkDurationFixedV1 workDuration; + @FixedSize @VintfStability + parcelable SessionModeSetter { + android.hardware.power.SessionMode modeInt; + boolean enabled; + } + } +} diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPower.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPower.aidl index ae03313f11ed79eede8281bb92eef1e624408ebf..8acdaf20143ed466b043f46a31ac88c50d324bb9 100644 --- a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPower.aidl +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPower.aidl @@ -40,4 +40,7 @@ interface IPower { boolean isBoostSupported(in android.hardware.power.Boost type); android.hardware.power.IPowerHintSession createHintSession(in int tgid, in int uid, in int[] threadIds, in long durationNanos); long getHintSessionPreferredRate(); + android.hardware.power.IPowerHintSession createHintSessionWithConfig(in int tgid, in int uid, in int[] threadIds, in long durationNanos, in android.hardware.power.SessionTag tag, out android.hardware.power.SessionConfig config); + android.hardware.power.ChannelConfig getSessionChannel(in int tgid, in int uid); + oneway void closeSessionChannel(in int tgid, in int uid); } diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPowerHintSession.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPowerHintSession.aidl index 6bc663e1258ae4a02f247ce172ca210071f88b8d..010f815476486666797cd1fc0dcf943a2685bb3b 100644 --- a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPowerHintSession.aidl +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/IPowerHintSession.aidl @@ -42,4 +42,5 @@ interface IPowerHintSession { oneway void sendHint(android.hardware.power.SessionHint hint); void setThreads(in int[] threadIds); oneway void setMode(android.hardware.power.SessionMode type, boolean enabled); + android.hardware.power.SessionConfig getSessionConfig(); } diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionConfig.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b03cfb2db1eaa190ea02efb6a6a4e185f8c6cda8 --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionConfig.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@VintfStability +parcelable SessionConfig { + long id; +} diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionHint.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionHint.aidl index cb377191bdd7842fc8cd7784eb19a0be749b8eb1..df316189a4a5330f7a780ea8e7ec2af063c9ac1c 100644 --- a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionHint.aidl +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionHint.aidl @@ -41,4 +41,5 @@ enum SessionHint { POWER_EFFICIENCY = 4, GPU_LOAD_UP = 5, GPU_LOAD_DOWN = 6, + GPU_LOAD_RESET = 7, } diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionTag.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionTag.aidl new file mode 100644 index 0000000000000000000000000000000000000000..862fbc5a07a325c7378ba0a3ff8b018751aa5f0d --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/SessionTag.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@Backing(type="int") @VintfStability +enum SessionTag { + OTHER, + SURFACEFLINGER, + HWUI, + GAME, + APP, +} diff --git a/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/WorkDurationFixedV1.aidl b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/WorkDurationFixedV1.aidl new file mode 100644 index 0000000000000000000000000000000000000000..45310b89276ee98e469720a1d3afd88bfad0676d --- /dev/null +++ b/power/aidl/aidl_api/android.hardware.power/current/android/hardware/power/WorkDurationFixedV1.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.power; +@FixedSize @VintfStability +parcelable WorkDurationFixedV1 { + long durationNanos; + long workPeriodStartTimestampNanos; + long cpuDurationNanos; + long gpuDurationNanos; +} diff --git a/power/aidl/android/hardware/power/ChannelConfig.aidl b/power/aidl/android/hardware/power/ChannelConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4da292ed519875b952fc07a5891ea02385c5a4de --- /dev/null +++ b/power/aidl/android/hardware/power/ChannelConfig.aidl @@ -0,0 +1,52 @@ + +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.power; + +import android.hardware.common.fmq.MQDescriptor; +import android.hardware.common.fmq.SynchronizedReadWrite; +import android.hardware.power.ChannelMessage; + +@VintfStability +parcelable ChannelConfig { + /** + * The message queue descriptor that provides the information necessary for + * a client to write to this channel. + */ + MQDescriptor channelDescriptor; + + /** + * A message queue descriptor used to pass an optional event flag to clients, + * used to synchronize multiple message queues using the same flag. If not + * defined, the flag from the channelDescriptor should be used. + */ + @nullable MQDescriptor eventFlagDescriptor; + + /** + * The read flag bitmask to be used with the event flag, specifying the + * bits used by this channel to mark that the buffer has been read from. + * If set to 0, the default bitmask will be used. + */ + int readFlagBitmask; + + /** + * The write flag bitmask to be used with the event flag, specifying the + * bits used by this channel to mark that the buffer has been written to. + * If set to 0, the default bitmask will be used. + */ + int writeFlagBitmask; +} diff --git a/power/aidl/android/hardware/power/ChannelMessage.aidl b/power/aidl/android/hardware/power/ChannelMessage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fa169114bc49302d8cf8fe00b2d86c68b8cd1a4d --- /dev/null +++ b/power/aidl/android/hardware/power/ChannelMessage.aidl @@ -0,0 +1,97 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.power; + +import android.hardware.power.SessionHint; +import android.hardware.power.SessionMode; +import android.hardware.power.WorkDurationFixedV1; + +/** + * Data sent through the FMQ must follow this structure. It's important to note + * that such data may come from the app itself, so the HAL must validate all + * data received through this interface, and reject any calls not guaranteed to be + * valid. Each of the types defined in the inner union maps to an equivalent call + * on IPowerHintSession, and is merely being used to expedite the use of that API + * in cases where it is safe to bypass the HintManagerService. + */ +@FixedSize +@VintfStability +parcelable ChannelMessage { + /** + * The ID of the specific session sending the hint, used to enable a single + * channel to be multiplexed across all sessions in a single process. + */ + int sessionID; + + /** + * Timestamp in nanoseconds based on CLOCK_MONOTONIC when the message was sent, + * used to ensure all messages can be processed in a coherent order. + */ + long timeStampNanos; + + /** + * A union defining the different messages that can be passed through the + * channel. Each type corresponds to a different call in IPowerHintSession. + */ + ChannelMessageContents data; + + @FixedSize + @VintfStability + union ChannelMessageContents { + /** + * Reserves the maximum fixed size for the ChannelMessage. + */ + long[16] reserved = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + /** + * Setting this field will update the session’s target duration, equivalent + * to calling updateTargetWorkDuration(targetDuration). + */ + long targetDuration; + + /** + * Setting this field will send a hint to the session, equivalent to + * calling sendHint(hint). + */ + SessionHint hint; + + /** + * Setting this field will send a hint to the session, equivalent to + * calling setMode(mode.modeInt, mode.enabled). + */ + SessionModeSetter mode; + + /** + * Setting this field will update the session’s actual duration, equivalent + * to calling reportActualWorkDuration([workDuration]). Only one duration + * can be passed at a time; this API expects durations to be reported + * immediately each frame, since the overhead of this call is much lower. + */ + WorkDurationFixedV1 workDuration; + + /** + * This structure is used to fit both the mode and the state within one + * entry in the union. + */ + @FixedSize + @VintfStability + parcelable SessionModeSetter { + SessionMode modeInt; + boolean enabled; + } + } +} diff --git a/power/aidl/android/hardware/power/IPower.aidl b/power/aidl/android/hardware/power/IPower.aidl index ee8e5a3a61cd291e35ec7519def491ed4bb332f4..e25714fda50efdbc52f78b342d7f53fe2c437bac 100644 --- a/power/aidl/android/hardware/power/IPower.aidl +++ b/power/aidl/android/hardware/power/IPower.aidl @@ -17,8 +17,11 @@ package android.hardware.power; import android.hardware.power.Boost; +import android.hardware.power.ChannelConfig; import android.hardware.power.IPowerHintSession; import android.hardware.power.Mode; +import android.hardware.power.SessionConfig; +import android.hardware.power.SessionTag; @VintfStability interface IPower { @@ -103,4 +106,42 @@ interface IPower { * EX_UNSUPPORTED_OPERATION if hint session is not supported. */ long getHintSessionPreferredRate(); + + /** + * A version of createHintSession that returns an additional bundle of session + * data, useful to help the session immediately communicate via an FMQ channel + * for more efficient updates. + * + * @return the new session if it is supported on this device, otherwise return + * with EX_UNSUPPORTED_OPERATION error if hint session is not + * supported on this device. + * @param tgid The TGID to be associated with this session. + * @param uid The UID to be associated with this session. + * @param threadIds The list of threads to be associated with this session. + * @param durationNanos The desired duration in nanoseconds for this session. + * @param config Extra session metadata to be returned to the caller. + */ + IPowerHintSession createHintSessionWithConfig(in int tgid, in int uid, in int[] threadIds, + in long durationNanos, in SessionTag tag, out SessionConfig config); + + /** + * Used to get an FMQ channel, per-process. The channel should be unique to + * that process, and should return the same ChannelConfig if called multiple + * times from that same process. + * + * @return the channel config if hint sessions are supported on this device, + * otherwise return with EX_UNSUPPORTED_OPERATION. + * @param tgid The TGID to be associated with this channel. + * @param uid The UID to be associated with this channel. + */ + ChannelConfig getSessionChannel(in int tgid, in int uid); + + /** + * Used to close a channel once it is no longer needed by a process, or that + * process dies. + * + * @param tgid The TGID to be associated with this channel. + * @param uid The UID to be associated with this channel. + */ + oneway void closeSessionChannel(in int tgid, in int uid); } diff --git a/power/aidl/android/hardware/power/IPowerHintSession.aidl b/power/aidl/android/hardware/power/IPowerHintSession.aidl index 62263c8aa9d5ef078185c17e569d53ce51773364..9dd251fba93586cfc9c39030535b60582f7cc7d6 100644 --- a/power/aidl/android/hardware/power/IPowerHintSession.aidl +++ b/power/aidl/android/hardware/power/IPowerHintSession.aidl @@ -16,6 +16,7 @@ package android.hardware.power; +import android.hardware.power.SessionConfig; import android.hardware.power.SessionHint; import android.hardware.power.SessionMode; import android.hardware.power.WorkDuration; @@ -91,4 +92,11 @@ interface IPowerHintSession { * @param enabled True to enable the mode, false to disable it */ oneway void setMode(SessionMode type, boolean enabled); + + /** + * This method provides direct access to a session's config data. + * + * @return the config data for this session + */ + SessionConfig getSessionConfig(); } diff --git a/power/aidl/android/hardware/power/SessionConfig.aidl b/power/aidl/android/hardware/power/SessionConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..93dc9a278e9c5b865a22f7deabb583601dd1a9d0 --- /dev/null +++ b/power/aidl/android/hardware/power/SessionConfig.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.power; + +/** + * Additional session to be passed to the hint session during creation, or acquired + * after creation from the session directly. + */ +@VintfStability +parcelable SessionConfig { + /** + * The session's unique ID, used to identify the session for debugging and + * for multiplexing on the per-process FMQ channel. + */ + long id; +} diff --git a/power/aidl/android/hardware/power/SessionHint.aidl b/power/aidl/android/hardware/power/SessionHint.aidl index ae91061c6055f8c4c0c50cfc0056c0dcb7740259..1a8c50557488f57df496e244dcc2268d2a0753d6 100644 --- a/power/aidl/android/hardware/power/SessionHint.aidl +++ b/power/aidl/android/hardware/power/SessionHint.aidl @@ -65,4 +65,11 @@ enum SessionHint { * this hint session can reduce GPU resources and still meet the target duration. */ GPU_LOAD_DOWN = 6, + + /** + * This hint indicates an upcoming GPU workload that is completely changed and + * unknown. It means that the hint session should reset GPU resources to a known + * baseline to prepare for an arbitrary load, and must wake up if inactive. + */ + GPU_LOAD_RESET = 7, } diff --git a/power/aidl/android/hardware/power/SessionTag.aidl b/power/aidl/android/hardware/power/SessionTag.aidl new file mode 100644 index 0000000000000000000000000000000000000000..27bf3e3c6796f6a40f4b5fb6e811bcbe99ef6a1c --- /dev/null +++ b/power/aidl/android/hardware/power/SessionTag.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. + */ + +package android.hardware.power; + +@VintfStability +@Backing(type="int") +enum SessionTag { + /** + * This tag is used to mark uncategorized hint sessions. + */ + OTHER, + + /** + * This tag is used to mark the SurfaceFlinger hint session. + */ + SURFACEFLINGER, + + /** + * This tag is used to mark hint sessions created by HWUI. + */ + HWUI, + + /** + * This tag is used to mark hint sessions created by applications that are + * categorized as games. + */ + GAME, + + /** + * This tag is used to mark the hint session is created by the application. + * If an applications is categorized as game, then GAME should be used + * instead. + */ + APP, +} diff --git a/power/aidl/android/hardware/power/WorkDurationFixedV1.aidl b/power/aidl/android/hardware/power/WorkDurationFixedV1.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ef5c755cdb53f65eb75551565a78db44bc9fa9fa --- /dev/null +++ b/power/aidl/android/hardware/power/WorkDurationFixedV1.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.power; + +@FixedSize +@VintfStability +parcelable WorkDurationFixedV1 { + /** + * Total work duration in nanoseconds. + */ + long durationNanos; + + /** + * Timestamp in nanoseconds based on CLOCK_MONOTONIC when the work starts. + * The work period start timestamp could be zero if the call is from + * the legacy SDK/NDK reportActualWorkDuration API. + */ + long workPeriodStartTimestampNanos; + + /** + * CPU work duration in nanoseconds. + * The CPU work duration could be the same as the total work duration if + * the call is from the legacy SDK/NDK reportActualWorkDuration API. + */ + long cpuDurationNanos; + + /** + * GPU work duration in nanoseconds. + * The GPU work duration could be zero if the call is from the legacy + * SDK/NDK reportActualWorkDuration API. + */ + long gpuDurationNanos; +} diff --git a/power/aidl/default/Android.bp b/power/aidl/default/Android.bp index e3af179ea9108272966393b934a5cfb02faf6f93..4926b9183051c746bb07910638855ef79309f137 100644 --- a/power/aidl/default/Android.bp +++ b/power/aidl/default/Android.bp @@ -29,8 +29,13 @@ cc_binary { vintf_fragments: [":android.hardware.power.xml"], vendor: true, shared_libs: [ + "android.hardware.common-V2-ndk", + "android.hardware.common.fmq-V1-ndk", "libbase", "libbinder_ndk", + "libcutils", + "libfmq", + "libutils", ], srcs: [ "main.cpp", diff --git a/power/aidl/default/Power.cpp b/power/aidl/default/Power.cpp index 8fe370c3e4b1f551583a20826dd293c7205a1ab0..64294e52299887dcd579c77879f3c8e0b78be115 100644 --- a/power/aidl/default/Power.cpp +++ b/power/aidl/default/Power.cpp @@ -18,6 +18,9 @@ #include "PowerHintSession.h" #include +#include +#include +#include namespace aidl { namespace android { @@ -27,6 +30,10 @@ namespace impl { namespace example { using namespace std::chrono_literals; +using ::aidl::android::hardware::common::fmq::MQDescriptor; +using ::aidl::android::hardware::common::fmq::SynchronizedReadWrite; +using ::aidl::android::hardware::power::ChannelMessage; +using ::android::AidlMessageQueue; using ndk::ScopedAStatus; @@ -70,6 +77,34 @@ ScopedAStatus Power::createHintSession(int32_t, int32_t, const std::vector& threadIds, int64_t durationNanos, + SessionTag, SessionConfig* config, std::shared_ptr* _aidl_return) { + auto out = createHintSession(tgid, uid, threadIds, durationNanos, _aidl_return); + static_cast(_aidl_return->get())->getSessionConfig(config); + return out; +} + +ndk::ScopedAStatus Power::getSessionChannel(int32_t, int32_t, ChannelConfig* _aidl_return) { + static AidlMessageQueue stubQueue{20, true}; + static std::thread stubThread([&] { + ChannelMessage data; + // This loop will only run while there is data waiting + // to be processed, and blocks on a futex all other times + while (stubQueue.readBlocking(&data, 1, 0)) { + } + }); + _aidl_return->channelDescriptor = stubQueue.dupeDesc(); + _aidl_return->readFlagBitmask = 0x01; + _aidl_return->writeFlagBitmask = 0x02; + _aidl_return->eventFlagDescriptor = std::nullopt; + return ndk::ScopedAStatus::ok(); +} + +ndk::ScopedAStatus Power::closeSessionChannel(int32_t, int32_t) { + return ndk::ScopedAStatus::ok(); +} + ScopedAStatus Power::getHintSessionPreferredRate(int64_t* outNanoseconds) { *outNanoseconds = std::chrono::nanoseconds(1ms).count(); return ScopedAStatus::ok(); diff --git a/power/aidl/default/Power.h b/power/aidl/default/Power.h index 7f8405eff335c7644e44a437252ca1c540eae7e5..baabaa72713351c0480ba17206c22185ad9e36ce 100644 --- a/power/aidl/default/Power.h +++ b/power/aidl/default/Power.h @@ -17,6 +17,7 @@ #pragma once #include +#include "aidl/android/hardware/power/SessionTag.h" namespace aidl { namespace android { @@ -35,7 +36,14 @@ class Power : public BnPower { const std::vector& threadIds, int64_t durationNanos, std::shared_ptr* _aidl_return) override; + ndk::ScopedAStatus createHintSessionWithConfig( + int32_t tgid, int32_t uid, const std::vector& threadIds, int64_t durationNanos, + SessionTag tag, SessionConfig* config, + std::shared_ptr* _aidl_return) override; ndk::ScopedAStatus getHintSessionPreferredRate(int64_t* outNanoseconds) override; + ndk::ScopedAStatus getSessionChannel(int32_t tgid, int32_t uid, + ChannelConfig* _aidl_return) override; + ndk::ScopedAStatus closeSessionChannel(int32_t tgid, int32_t uid) override; private: std::vector> mPowerHintSessions; diff --git a/power/aidl/default/PowerHintSession.cpp b/power/aidl/default/PowerHintSession.cpp index 452e435c2990e585a9a6df3a58ec8ceaca04ab3f..847a42e7c3db9e3c57432b307b1c9e0653df4491 100644 --- a/power/aidl/default/PowerHintSession.cpp +++ b/power/aidl/default/PowerHintSession.cpp @@ -17,6 +17,7 @@ #include "PowerHintSession.h" #include +#include "android/binder_auto_utils.h" namespace aidl::android::hardware::power::impl::example { @@ -63,4 +64,9 @@ ScopedAStatus PowerHintSession::setMode(SessionMode /* mode */, bool /* enabled return ScopedAStatus::ok(); } +ScopedAStatus PowerHintSession::getSessionConfig(SessionConfig* _aidl_return) { + _aidl_return->id = 1; + return ScopedAStatus::ok(); +} + } // namespace aidl::android::hardware::power::impl::example diff --git a/power/aidl/default/PowerHintSession.h b/power/aidl/default/PowerHintSession.h index b488bf108eb16de697d92218a336f401b1861b7d..2ed55885f4995efb981517e4584d5025b201214a 100644 --- a/power/aidl/default/PowerHintSession.h +++ b/power/aidl/default/PowerHintSession.h @@ -35,6 +35,7 @@ class PowerHintSession : public BnPowerHintSession { ndk::ScopedAStatus sendHint(SessionHint hint) override; ndk::ScopedAStatus setThreads(const std::vector& threadIds) override; ndk::ScopedAStatus setMode(SessionMode mode, bool enabled) override; + ndk::ScopedAStatus getSessionConfig(SessionConfig* _aidl_return) override; }; } // namespace aidl::android::hardware::power::impl::example diff --git a/power/aidl/vts/Android.bp b/power/aidl/vts/Android.bp index eb98b8b5bf0b77355ddeaf7c18ab73b2198a6eb6..c9285f4eaa28bbe82b6401a3f2691463546741bd 100644 --- a/power/aidl/vts/Android.bp +++ b/power/aidl/vts/Android.bp @@ -31,6 +31,11 @@ cc_test { srcs: ["VtsHalPowerTargetTest.cpp"], shared_libs: [ "libbinder_ndk", + "libfmq", + ], + static_libs: [ + "android.hardware.common.fmq-V1-ndk", + "android.hardware.common-V2-ndk", ], test_suites: [ "general-tests", diff --git a/power/aidl/vts/VtsHalPowerTargetTest.cpp b/power/aidl/vts/VtsHalPowerTargetTest.cpp index 96995a0acc28365bc5dd29a3a4693459e88b6a3b..272674f1942002676afd99e8a661135e58b6f9e0 100644 --- a/power/aidl/vts/VtsHalPowerTargetTest.cpp +++ b/power/aidl/vts/VtsHalPowerTargetTest.cpp @@ -24,18 +24,34 @@ #include #include +#include +#include + #include +#include +#include "aidl/android/hardware/common/fmq/SynchronizedReadWrite.h" namespace aidl::android::hardware::power { namespace { +using ::aidl::android::hardware::common::fmq::SynchronizedReadWrite; +using ::android::AidlMessageQueue; +using ::android::hardware::EventFlag; using android::hardware::power::Boost; +using android::hardware::power::ChannelConfig; +using android::hardware::power::ChannelMessage; using android::hardware::power::IPower; using android::hardware::power::IPowerHintSession; using android::hardware::power::Mode; using android::hardware::power::SessionHint; using android::hardware::power::SessionMode; using android::hardware::power::WorkDuration; +using ChannelMessageContents = ChannelMessage::ChannelMessageContents; +using ModeSetter = ChannelMessage::ChannelMessageContents::SessionModeSetter; +using MessageTag = ChannelMessage::ChannelMessageContents::Tag; + +using SessionMessageQueue = AidlMessageQueue; +using FlagMessageQueue = AidlMessageQueue; const std::vector kBoosts{ndk::enum_range().begin(), ndk::enum_range().end()}; @@ -81,8 +97,6 @@ const std::vector kSelfTids = { const std::vector kEmptyTids = {}; -const std::vector kNoDurations = {}; - const std::vector kDurationsWithZero = { DurationWrapper(1000L, 1L), DurationWrapper(0L, 2L), @@ -108,10 +122,16 @@ class PowerAidl : public testing::TestWithParam { power = IPower::fromBinder(ndk::SpAIBinder(binder)); auto status = power->getInterfaceVersion(&mServiceVersion); ASSERT_TRUE(status.isOk()); + if (mServiceVersion >= 2) { + status = power->createHintSession(getpid(), getuid(), kSelfTids, 16666666L, &mSession); + mSessionSupport = status.isOk(); + } } std::shared_ptr power; int32_t mServiceVersion; + std::shared_ptr mSession; + bool mSessionSupport = false; }; class HintSessionAidl : public PowerAidl { @@ -121,12 +141,63 @@ class HintSessionAidl : public PowerAidl { if (mServiceVersion < 2) { GTEST_SKIP() << "DEVICE not launching with Power V2 and beyond."; } + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } + ASSERT_NE(nullptr, mSession); + } +}; - auto status = power->createHintSession(getpid(), getuid(), kSelfTids, 16666666L, &mSession); - ASSERT_TRUE(status.isOk()); +class FMQAidl : public PowerAidl { + public: + virtual void SetUp() override { + PowerAidl::SetUp(); + if (mServiceVersion < 5) { + GTEST_SKIP() << "DEVICE not launching with Power V5 and beyond."; + } + + auto status = + power->createHintSessionWithConfig(getpid(), getuid(), kSelfTids, 16666666L, + SessionTag::OTHER, &mSessionConfig, &mSession); + mSessionSupport = status.isOk(); + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } ASSERT_NE(nullptr, mSession); + + status = power->getSessionChannel(getpid(), getuid(), &mChannelConfig); + ASSERT_TRUE(status.isOk()); + mChannel = std::make_shared(mChannelConfig.channelDescriptor, true); + ASSERT_TRUE(mChannel->isValid()); + + if (mChannelConfig.eventFlagDescriptor.has_value()) { + mFlagChannel = + std::make_shared(*mChannelConfig.eventFlagDescriptor, true); + ASSERT_EQ(EventFlag::createEventFlag(mFlagChannel->getEventFlagWord(), &mEventFlag), + ::android::OK); + } else { + ASSERT_EQ(EventFlag::createEventFlag(mChannel->getEventFlagWord(), &mEventFlag), + ::android::OK); + } + + ASSERT_NE(mEventFlag, nullptr); + } + virtual void TearDown() { + if (mSession) { + mSession->close(); + if (mChannel->isValid()) { + ASSERT_TRUE(power->closeSessionChannel(getpid(), getuid()).isOk()); + } + } } + + protected: std::shared_ptr mSession; + std::shared_ptr mChannel; + std::shared_ptr mFlagChannel; + SessionConfig mSessionConfig; + ChannelConfig mChannelConfig; + ::android::hardware::EventFlag* mEventFlag; }; TEST_P(PowerAidl, setMode) { @@ -180,6 +251,9 @@ TEST_P(PowerAidl, isBoostSupported) { } TEST_P(PowerAidl, getHintSessionPreferredRate) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } if (mServiceVersion < 2) { GTEST_SKIP() << "DEVICE not launching with Power V2 and beyond."; } @@ -190,7 +264,34 @@ TEST_P(PowerAidl, getHintSessionPreferredRate) { ASSERT_GE(rate, 1000000); } +TEST_P(PowerAidl, createHintSessionWithConfig) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } + if (mServiceVersion < 5) { + GTEST_SKIP() << "DEVICE not launching with Power V5 and beyond."; + } + std::shared_ptr session; + SessionConfig config; + + auto status = power->createHintSessionWithConfig(getpid(), getuid(), kSelfTids, 16666666L, + SessionTag::OTHER, &config, &session); + ASSERT_TRUE(status.isOk()); + ASSERT_NE(nullptr, session); +} + +// FIXED_PERFORMANCE mode is required for all devices which ship on Android 11 +// or later +TEST_P(PowerAidl, hasFixedPerformance) { + bool supported; + ASSERT_TRUE(power->isModeSupported(Mode::FIXED_PERFORMANCE, &supported).isOk()); + ASSERT_TRUE(supported); +} + TEST_P(HintSessionAidl, createAndCloseHintSession) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } ASSERT_TRUE(mSession->pause().isOk()); ASSERT_TRUE(mSession->resume().isOk()); // Test normal destroy operation @@ -199,6 +300,9 @@ TEST_P(HintSessionAidl, createAndCloseHintSession) { } TEST_P(HintSessionAidl, createHintSessionFailed) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } std::shared_ptr session; auto status = power->createHintSession(getpid(), getuid(), kEmptyTids, 16666666L, &session); @@ -208,11 +312,17 @@ TEST_P(HintSessionAidl, createHintSessionFailed) { } TEST_P(HintSessionAidl, updateAndReportDurations) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } ASSERT_TRUE(mSession->updateTargetWorkDuration(16666667LL).isOk()); ASSERT_TRUE(mSession->reportActualWorkDuration(kDurations).isOk()); } TEST_P(HintSessionAidl, sendSessionHint) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } if (mServiceVersion < 4) { GTEST_SKIP() << "DEVICE not launching with Power V4 and beyond."; } @@ -226,6 +336,9 @@ TEST_P(HintSessionAidl, sendSessionHint) { } TEST_P(HintSessionAidl, setThreads) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } if (mServiceVersion < 4) { GTEST_SKIP() << "DEVICE not launching with Power V4 and beyond."; } @@ -238,6 +351,9 @@ TEST_P(HintSessionAidl, setThreads) { } TEST_P(HintSessionAidl, setSessionMode) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } if (mServiceVersion < 5) { GTEST_SKIP() << "DEVICE not launching with Power V5 and beyond."; } @@ -252,16 +368,72 @@ TEST_P(HintSessionAidl, setSessionMode) { } } -// FIXED_PERFORMANCE mode is required for all devices which ship on Android 11 -// or later -TEST_P(PowerAidl, hasFixedPerformance) { - bool supported; - ASSERT_TRUE(power->isModeSupported(Mode::FIXED_PERFORMANCE, &supported).isOk()); - ASSERT_TRUE(supported); +TEST_P(HintSessionAidl, getSessionConfig) { + if (!mSessionSupport) { + GTEST_SKIP() << "DEVICE not support Hint Session."; + } + if (mServiceVersion < 5) { + GTEST_SKIP() << "DEVICE not launching with Power V5 and beyond."; + } + SessionConfig config; + ASSERT_TRUE(mSession->getSessionConfig(&config).isOk()); +} + +TEST_P(FMQAidl, getAndCloseSessionChannel) {} + +TEST_P(FMQAidl, writeItems) { + std::vector messages{ + {.sessionID = static_cast(mSessionConfig.id), + .timeStampNanos = 1000, + .data = ChannelMessageContents::make( + {.durationNanos = 1000, + .workPeriodStartTimestampNanos = 10, + .cpuDurationNanos = 900, + .gpuDurationNanos = 100})}, + {.sessionID = static_cast(mSessionConfig.id), + .timeStampNanos = 1000, + .data = ChannelMessageContents::make( + {.modeInt = SessionMode::POWER_EFFICIENCY, .enabled = true})}, + {.sessionID = static_cast(mSessionConfig.id), + .timeStampNanos = 1000, + .data = ChannelMessageContents::make( + SessionHint::CPU_LOAD_UP)}, + {.sessionID = static_cast(mSessionConfig.id), + .timeStampNanos = 1000, + .data = ChannelMessageContents::make( + 10000000 /* 10ms */)}, + }; + for (auto& message : messages) { + ASSERT_TRUE(mChannel->writeBlocking(&message, 1, mChannelConfig.readFlagBitmask, + mChannelConfig.writeFlagBitmask, 100000000, + mEventFlag)); + } + // Make sure this still works after everything else is done to check crash + ASSERT_TRUE(mSession->setThreads(kSelfTids).isOk()); +} + +TEST_P(FMQAidl, writeExcess) { + std::vector messages; + size_t channelSize = mChannel->getQuantumCount(); + for (size_t i = 0; i < channelSize; ++i) { + messages.push_back({.sessionID = static_cast(mSessionConfig.id), + .timeStampNanos = 1000, + .data = ChannelMessageContents::make( + SessionHint::CPU_LOAD_UP)}); + } + ASSERT_TRUE(mChannel->writeBlocking(messages.data(), messages.size(), + mChannelConfig.readFlagBitmask, + mChannelConfig.writeFlagBitmask, 100000000, mEventFlag)); + ASSERT_TRUE(mChannel->writeBlocking(messages.data(), messages.size(), + mChannelConfig.readFlagBitmask, + mChannelConfig.writeFlagBitmask, 1000000000, mEventFlag)); + // Make sure this still works after everything else is done to check crash + ASSERT_TRUE(mSession->setThreads(kSelfTids).isOk()); } GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(PowerAidl); GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(HintSessionAidl); +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(FMQAidl); INSTANTIATE_TEST_SUITE_P(Power, PowerAidl, testing::ValuesIn(::android::getAidlHalInstanceNames(IPower::descriptor)), @@ -269,6 +441,9 @@ INSTANTIATE_TEST_SUITE_P(Power, PowerAidl, INSTANTIATE_TEST_SUITE_P(Power, HintSessionAidl, testing::ValuesIn(::android::getAidlHalInstanceNames(IPower::descriptor)), ::android::PrintInstanceNameToString); +INSTANTIATE_TEST_SUITE_P(Power, FMQAidl, + testing::ValuesIn(::android::getAidlHalInstanceNames(IPower::descriptor)), + ::android::PrintInstanceNameToString); } // namespace } // namespace aidl::android::hardware::power diff --git a/power/stats/aidl/vts/VtsHalPowerStatsTargetTest.cpp b/power/stats/aidl/vts/VtsHalPowerStatsTargetTest.cpp index 4ee14e3bd9569506ad0fa020913467d8b6261bee..edc25b8996ca83b6fb6fd8d63fe08b6d276ff9ef 100644 --- a/power/stats/aidl/vts/VtsHalPowerStatsTargetTest.cpp +++ b/power/stats/aidl/vts/VtsHalPowerStatsTargetTest.cpp @@ -65,10 +65,10 @@ class PowerStatsAidl : public testing::TestWithParam { template void testMatching(std::vector const& c1, R T::*f1, std::vector const& c2, R S::*f2); - bool containsTimedEntity(const std::string& str); + bool isEntitySkipped(const std::string& str); - void excludeTimedEntities(std::vector* entities, - std::vector* results); + void excludeSkippedEntities(std::vector* entities, + std::vector* results); std::shared_ptr powerstats; }; @@ -116,15 +116,20 @@ void PowerStatsAidl::testMatching(std::vector const& c1, R T::*f1, std::vecto EXPECT_EQ(c1fields, c2fields); } -bool PowerStatsAidl::containsTimedEntity(const std::string& str) { +bool PowerStatsAidl::isEntitySkipped(const std::string& str) { + bool skip = false; // TODO(b/229698505): Extend PowerEntityInfo to identify timed power entity - return str.find("AoC") != std::string::npos; + skip |= str.find("AoC") != std::string::npos; + // Lassen GNSS power stats will be present after running GPS session once. + // Otherwise, VTS will fail due to missing GPS power stats. + skip |= str.find("GPS") != std::string::npos; + return skip; } -void PowerStatsAidl::excludeTimedEntities(std::vector* entities, - std::vector* results) { +void PowerStatsAidl::excludeSkippedEntities(std::vector* entities, + std::vector* results) { for (auto it = entities->begin(); it != entities->end(); it++) { - if (containsTimedEntity((*it).name)) { + if (isEntitySkipped((*it).name)) { auto entityId = (*it).id; entities->erase(it--); @@ -214,19 +219,19 @@ TEST_P(PowerStatsAidl, TestGetStateResidency) { } // State residency must return all results except timed power entities -TEST_P(PowerStatsAidl, TestGetStateResidencyAllResultsExceptTimedEntities) { +TEST_P(PowerStatsAidl, TestGetStateResidencyAllResultsExceptSkippedEntities) { std::vector entities; ASSERT_OK(powerstats->getPowerEntityInfo(&entities)); std::vector results; ASSERT_OK(powerstats->getStateResidency({}, &results)); - excludeTimedEntities(&entities, &results); + excludeSkippedEntities(&entities, &results); testMatching(entities, &PowerEntity::id, results, &StateResidencyResult::id); } // Each result must contain all state residencies except timed power entities -TEST_P(PowerStatsAidl, TestGetStateResidencyAllStateResidenciesExceptTimedEntities) { +TEST_P(PowerStatsAidl, TestGetStateResidencyAllStateResidenciesExceptSkippedEntities) { std::vector entities; ASSERT_OK(powerstats->getPowerEntityInfo(&entities)); @@ -234,7 +239,7 @@ TEST_P(PowerStatsAidl, TestGetStateResidencyAllStateResidenciesExceptTimedEntiti ASSERT_OK(powerstats->getStateResidency({}, &results)); for (auto entity : entities) { - if (!containsTimedEntity(entity.name)) { + if (!isEntitySkipped(entity.name)) { auto it = std::find_if(results.begin(), results.end(), [&entity](const auto& x) { return x.id == entity.id; }); ASSERT_NE(it, results.end()); @@ -255,7 +260,7 @@ TEST_P(PowerStatsAidl, TestGetStateResidencySelectedResultsExceptTimedEntities) std::vector selectedEntities = getRandomSubset(entities); std::vector selectedIds; for (auto it = selectedEntities.begin(); it != selectedEntities.end(); it++) { - if (!containsTimedEntity((*it).name)) { + if (!isEntitySkipped((*it).name)) { selectedIds.push_back((*it).id); } else { selectedEntities.erase(it--); diff --git a/radio/1.0/vts/functional/radio_hidl_hal_data.cpp b/radio/1.0/vts/functional/radio_hidl_hal_data.cpp index 38cb33b07e19be7428a441848405ec16a3e402d7..e89f4ee5df9d515de701a00adef2851dd4b188ba 100644 --- a/radio/1.0/vts/functional/radio_hidl_hal_data.cpp +++ b/radio/1.0/vts/functional/radio_hidl_hal_data.cpp @@ -16,6 +16,7 @@ #include #include +#include #include using namespace ::android::hardware::radio::V1_0; @@ -72,11 +73,16 @@ TEST_P(RadioHidlTest, getDataRegistrationState) { CellIdentityTdscdma cit = cellIdentities.cellIdentityTdscdma[0]; hidl_mcc = cit.mcc; hidl_mnc = cit.mnc; - } else { + } else if (cellInfoType == CellInfoType::CDMA) { // CellIndentityCdma has no mcc and mnc. EXPECT_EQ(CellInfoType::CDMA, cellInfoType); EXPECT_EQ(1, cellIdentities.cellIdentityCdma.size()); checkMccMnc = false; + } else { + // This test can be skipped for newer networks if a new RAT (e.g. 5g) that was not + // supported in this version is added to the response from a modem that supports a new + // version of this interface. + GTEST_SKIP() << "Exempt from 1.0 test: camped on a new network:" << (int)cellInfoType; } // Check only one CellIdentity is size 1, and others must be 0. diff --git a/radio/1.2/vts/functional/radio_hidl_hal_api.cpp b/radio/1.2/vts/functional/radio_hidl_hal_api.cpp index 2bce2f957b689c0d55e49099a92b2a841e48c421..51ca96734fe383c1aa45f5520697caa4253d9a5e 100644 --- a/radio/1.2/vts/functional/radio_hidl_hal_api.cpp +++ b/radio/1.2/vts/functional/radio_hidl_hal_api.cpp @@ -807,11 +807,16 @@ TEST_P(RadioHidlTest_v1_2, getDataRegistrationState) { cellIdentities.cellIdentityTdscdma[0]; hidl_mcc = cit.base.mcc; hidl_mnc = cit.base.mnc; - } else { + } else if (cellInfoType == CellInfoType::CDMA) { // CellIndentityCdma has no mcc and mnc. EXPECT_EQ(CellInfoType::CDMA, cellInfoType); EXPECT_EQ(1, cellIdentities.cellIdentityCdma.size()); checkMccMnc = false; + } else { + // This test can be skipped for newer networks if a new RAT (e.g. 5g) that was not + // supported in this version is added to the response from a modem that supports a new + // version of this interface. + GTEST_SKIP() << "Exempt from 1.2 test: camped on a new network:" << (int)cellInfoType; } // Check only one CellIdentity is size 1, and others must be 0. diff --git a/radio/aidl/Android.bp b/radio/aidl/Android.bp index 1971832465c0a626c734409f9f618108f6dda353..f60c484ee78c4e686e9772659a3ed30f6b033b62 100644 --- a/radio/aidl/Android.bp +++ b/radio/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -30,8 +31,13 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, ], + frozen: true, } @@ -59,8 +65,13 @@ aidl_interface { version: "2", imports: ["android.hardware.radio-V2"], }, + { + version: "3", + imports: ["android.hardware.radio-V3"], + }, ], + frozen: true, } @@ -88,8 +99,13 @@ aidl_interface { version: "2", imports: ["android.hardware.radio-V2"], }, + { + version: "3", + imports: ["android.hardware.radio-V3"], + }, ], + frozen: true, } aidl_interface { @@ -116,8 +132,13 @@ aidl_interface { version: "2", imports: ["android.hardware.radio-V2"], }, + { + version: "3", + imports: ["android.hardware.radio-V3"], + }, ], + frozen: true, } aidl_interface { @@ -144,8 +165,13 @@ aidl_interface { version: "2", imports: ["android.hardware.radio-V2"], }, + { + version: "3", + imports: ["android.hardware.radio-V3"], + }, ], + frozen: true, } aidl_interface { @@ -172,8 +198,13 @@ aidl_interface { version: "2", imports: ["android.hardware.radio-V2"], }, + { + version: "3", + imports: ["android.hardware.radio-V3"], + }, ], + frozen: true, } aidl_interface { @@ -237,8 +268,16 @@ aidl_interface { "android.hardware.radio.config-V2", ], }, + { + version: "3", + imports: [ + "android.hardware.radio-V3", + "android.hardware.radio.config-V3", + ], + }, ], + frozen: true, } aidl_interface { @@ -265,8 +304,13 @@ aidl_interface { version: "2", imports: ["android.hardware.radio-V2"], }, + { + version: "3", + imports: ["android.hardware.radio-V3"], + }, ], + frozen: true, } aidl_interface { @@ -294,7 +338,16 @@ aidl_interface { "android.hardware.radio.data-V2", ], }, + { + version: "2", + imports: [ + "android.hardware.radio-V3", + "android.hardware.radio.data-V3", + ], + }, + ], + frozen: true, } aidl_interface { @@ -316,5 +369,11 @@ aidl_interface { version: "1", imports: ["android.hardware.radio-V2"], }, + { + version: "2", + imports: ["android.hardware.radio-V3"], + }, + ], + frozen: true, } diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.config/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..5075e5b973ebca001af357530dd16a562febdb5b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/.hash @@ -0,0 +1 @@ +1e3dcfffc1e90fc886cf5a22ecaa94601b115710 diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bc1c29236f23ebf2ce354db9d18cfd32cdeb8cc4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfig.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + * This interface is used by telephony and telecom to talk to cellular radio for the purpose of + * radio configuration, and it is not associated with any specific modem or slot. + * All the functions have minimum one parameter: + * serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the + * duration of a method call. If clients provide colliding serials (including passing the same + * serial to different methods), multiple responses (one for each method call) must still be served. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@VintfStability +interface IRadioConfig { + oneway void getHalDeviceCapabilities(in int serial); + oneway void getNumOfLiveModems(in int serial); + oneway void getPhoneCapability(in int serial); + oneway void getSimSlotsStatus(in int serial); + oneway void setNumOfLiveModems(in int serial, in byte numOfLiveModems); + oneway void setPreferredDataModem(in int serial, in byte modemId); + oneway void setResponseFunctions(in android.hardware.radio.config.IRadioConfigResponse radioConfigResponse, in android.hardware.radio.config.IRadioConfigIndication radioConfigIndication); + oneway void setSimSlotsMapping(in int serial, in android.hardware.radio.config.SlotPortMapping[] slotMap); + oneway void getSimultaneousCallingSupport(in int serial); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigIndication.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f78637378585f41fdcea9430823dedaeb89b7571 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigIndication.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@VintfStability +interface IRadioConfigIndication { + oneway void simSlotsStatusChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.config.SimSlotStatus[] slotStatus); + oneway void onSimultaneousCallingSupportChanged(in int[] enabledLogicalSlots); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigResponse.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6ff7bd0b1b05394a36b5cfedbfc66b445fa1ca5a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/IRadioConfigResponse.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@VintfStability +interface IRadioConfigResponse { + oneway void getHalDeviceCapabilitiesResponse(in android.hardware.radio.RadioResponseInfo info, in boolean modemReducedFeatureSet1); + oneway void getNumOfLiveModemsResponse(in android.hardware.radio.RadioResponseInfo info, in byte numOfLiveModems); + oneway void getPhoneCapabilityResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.config.PhoneCapability phoneCapability); + oneway void getSimSlotsStatusResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.config.SimSlotStatus[] slotStatus); + oneway void setNumOfLiveModemsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setPreferredDataModemResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSimSlotsMappingResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getSimultaneousCallingSupportResponse(in android.hardware.radio.RadioResponseInfo info, in int[] enabledLogicalSlots); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/MultipleEnabledProfilesMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/MultipleEnabledProfilesMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..41c42016c242689345b1c69b066c48f550352619 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/MultipleEnabledProfilesMode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum MultipleEnabledProfilesMode { + NONE, + MEP_A1, + MEP_A2, + MEP_B, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/PhoneCapability.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/PhoneCapability.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2c66abda597cf79c3eb66ae148ade18373789a9e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/PhoneCapability.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable PhoneCapability { + byte maxActiveData; + byte maxActiveInternetData; + boolean isInternetLingeringSupported; + byte[] logicalModemIds; + byte maxActiveVoice = UNKNOWN /* -1 */; + const byte UNKNOWN = (-1) /* -1 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimPortInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimPortInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ede318931a722f6aed92929553d91dd527c6af87 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimPortInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SimPortInfo { + String iccId; + int logicalSlotId; + boolean portActive; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimSlotStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimSlotStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e84e7d45bd092d5bf326d6d01524c2fb4369339e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SimSlotStatus.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SimSlotStatus { + int cardState; + String atr; + String eid; + android.hardware.radio.config.SimPortInfo[] portInfo; + android.hardware.radio.config.MultipleEnabledProfilesMode supportedMepMode = android.hardware.radio.config.MultipleEnabledProfilesMode.NONE; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SlotPortMapping.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SlotPortMapping.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5278e79f1c822b832d01e179df0ca07fa192189e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.config/3/android/hardware/radio/config/SlotPortMapping.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.config; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SlotPortMapping { + int physicalSlotId; + int portId; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfig.aidl index 0f5e7e4f77c1f56f455be51920d3de212d662f76..bc1c29236f23ebf2ce354db9d18cfd32cdeb8cc4 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfig.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfig.aidl @@ -51,4 +51,5 @@ interface IRadioConfig { oneway void setPreferredDataModem(in int serial, in byte modemId); oneway void setResponseFunctions(in android.hardware.radio.config.IRadioConfigResponse radioConfigResponse, in android.hardware.radio.config.IRadioConfigIndication radioConfigIndication); oneway void setSimSlotsMapping(in int serial, in android.hardware.radio.config.SlotPortMapping[] slotMap); + oneway void getSimultaneousCallingSupport(in int serial); } diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigIndication.aidl index 9189f9062ff89c835c59b7328a2dfeee635e1524..f78637378585f41fdcea9430823dedaeb89b7571 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigIndication.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigIndication.aidl @@ -36,4 +36,5 @@ package android.hardware.radio.config; @VintfStability interface IRadioConfigIndication { oneway void simSlotsStatusChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.config.SimSlotStatus[] slotStatus); + oneway void onSimultaneousCallingSupportChanged(in int[] enabledLogicalSlots); } diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigResponse.aidl index 348aa348bf26c5dcc289f0ab31bb872b36a1bddc..6ff7bd0b1b05394a36b5cfedbfc66b445fa1ca5a 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigResponse.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/IRadioConfigResponse.aidl @@ -42,4 +42,5 @@ interface IRadioConfigResponse { oneway void setNumOfLiveModemsResponse(in android.hardware.radio.RadioResponseInfo info); oneway void setPreferredDataModemResponse(in android.hardware.radio.RadioResponseInfo info); oneway void setSimSlotsMappingResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getSimultaneousCallingSupportResponse(in android.hardware.radio.RadioResponseInfo info, in int[] enabledLogicalSlots); } diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/PhoneCapability.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/PhoneCapability.aidl index 3648866a13d745192664484ac5b7fa6280094a21..2c66abda597cf79c3eb66ae148ade18373789a9e 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/PhoneCapability.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/PhoneCapability.aidl @@ -39,4 +39,6 @@ parcelable PhoneCapability { byte maxActiveInternetData; boolean isInternetLingeringSupported; byte[] logicalModemIds; + byte maxActiveVoice = UNKNOWN /* -1 */; + const byte UNKNOWN = (-1) /* -1 */; } diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.data/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..b866bd6c37bdf8c887d885dec126bab95982078a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/.hash @@ -0,0 +1 @@ +cd8913a3f9d39f1cc0a5fcf9e90257be94ec38df diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnAuthType.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnAuthType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..eed81701b8244ab0cf41808105a6346101a39a15 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnAuthType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ApnAuthType { + NO_PAP_NO_CHAP, + PAP_NO_CHAP, + NO_PAP_CHAP, + PAP_CHAP, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnTypes.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnTypes.aidl new file mode 100644 index 0000000000000000000000000000000000000000..782dbbf0ceb9381c05e2d0f388028a41c8b23757 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/ApnTypes.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ApnTypes { + NONE = 0, + DEFAULT = (1 << 0) /* 1 */, + MMS = (1 << 1) /* 2 */, + SUPL = (1 << 2) /* 4 */, + DUN = (1 << 3) /* 8 */, + HIPRI = (1 << 4) /* 16 */, + FOTA = (1 << 5) /* 32 */, + IMS = (1 << 6) /* 64 */, + CBS = (1 << 7) /* 128 */, + IA = (1 << 8) /* 256 */, + EMERGENCY = (1 << 9) /* 512 */, + MCX = (1 << 10) /* 1024 */, + XCAP = (1 << 11) /* 2048 */, + VSIM = (1 << 12) /* 4096 */, + BIP = (1 << 13) /* 8192 */, + ENTERPRISE = (1 << 14) /* 16384 */, + RCS = (1 << 15) /* 32768 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataCallFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataCallFailCause.aidl new file mode 100644 index 0000000000000000000000000000000000000000..009b428273dac4e0405992b0407aafd0a7754d5a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataCallFailCause.aidl @@ -0,0 +1,382 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum DataCallFailCause { + NONE = 0, + OPERATOR_BARRED = 0x08, + NAS_SIGNALLING = 0x0E, + INSUFFICIENT_RESOURCES = 0x1A, + MISSING_UNKNOWN_APN = 0x1B, + UNKNOWN_PDP_ADDRESS_TYPE = 0x1C, + USER_AUTHENTICATION = 0x1D, + ACTIVATION_REJECT_GGSN = 0x1E, + ACTIVATION_REJECT_UNSPECIFIED = 0x1F, + SERVICE_OPTION_NOT_SUPPORTED = 0x20, + SERVICE_OPTION_NOT_SUBSCRIBED = 0x21, + SERVICE_OPTION_OUT_OF_ORDER = 0x22, + NSAPI_IN_USE = 0x23, + REGULAR_DEACTIVATION = 0x24, + QOS_NOT_ACCEPTED = 0x25, + NETWORK_FAILURE = 0x26, + UMTS_REACTIVATION_REQ = 0x27, + FEATURE_NOT_SUPP = 0x28, + TFT_SEMANTIC_ERROR = 0x29, + TFT_SYTAX_ERROR = 0x2A, + UNKNOWN_PDP_CONTEXT = 0x2B, + FILTER_SEMANTIC_ERROR = 0x2C, + FILTER_SYTAX_ERROR = 0x2D, + PDP_WITHOUT_ACTIVE_TFT = 0x2E, + ONLY_IPV4_ALLOWED = 0x32, + ONLY_IPV6_ALLOWED = 0x33, + ONLY_SINGLE_BEARER_ALLOWED = 0x34, + ESM_INFO_NOT_RECEIVED = 0x35, + PDN_CONN_DOES_NOT_EXIST = 0x36, + MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 0x37, + MAX_ACTIVE_PDP_CONTEXT_REACHED = 0x41, + UNSUPPORTED_APN_IN_CURRENT_PLMN = 0x42, + INVALID_TRANSACTION_ID = 0x51, + MESSAGE_INCORRECT_SEMANTIC = 0x5F, + INVALID_MANDATORY_INFO = 0x60, + MESSAGE_TYPE_UNSUPPORTED = 0x61, + MSG_TYPE_NONCOMPATIBLE_STATE = 0x62, + UNKNOWN_INFO_ELEMENT = 0x63, + CONDITIONAL_IE_ERROR = 0x64, + MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE = 0x65, + PROTOCOL_ERRORS = 0x6F, + APN_TYPE_CONFLICT = 0x70, + INVALID_PCSCF_ADDR = 0x71, + INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN = 0x72, + EMM_ACCESS_BARRED = 0x73, + EMERGENCY_IFACE_ONLY = 0x74, + IFACE_MISMATCH = 0x75, + COMPANION_IFACE_IN_USE = 0x76, + IP_ADDRESS_MISMATCH = 0x77, + IFACE_AND_POL_FAMILY_MISMATCH = 0x78, + EMM_ACCESS_BARRED_INFINITE_RETRY = 0x79, + AUTH_FAILURE_ON_EMERGENCY_CALL = 0x7A, + OEM_DCFAILCAUSE_1 = 0x1001, + OEM_DCFAILCAUSE_2 = 0x1002, + OEM_DCFAILCAUSE_3 = 0x1003, + OEM_DCFAILCAUSE_4 = 0x1004, + OEM_DCFAILCAUSE_5 = 0x1005, + OEM_DCFAILCAUSE_6 = 0x1006, + OEM_DCFAILCAUSE_7 = 0x1007, + OEM_DCFAILCAUSE_8 = 0x1008, + OEM_DCFAILCAUSE_9 = 0x1009, + OEM_DCFAILCAUSE_10 = 0x100A, + OEM_DCFAILCAUSE_11 = 0x100B, + OEM_DCFAILCAUSE_12 = 0x100C, + OEM_DCFAILCAUSE_13 = 0x100D, + OEM_DCFAILCAUSE_14 = 0x100E, + OEM_DCFAILCAUSE_15 = 0x100F, + VOICE_REGISTRATION_FAIL = (-1) /* -1 */, + DATA_REGISTRATION_FAIL = (-2) /* -2 */, + SIGNAL_LOST = (-3) /* -3 */, + PREF_RADIO_TECH_CHANGED = (-4) /* -4 */, + RADIO_POWER_OFF = (-5) /* -5 */, + TETHERED_CALL_ACTIVE = (-6) /* -6 */, + ERROR_UNSPECIFIED = 0xffff, + LLC_SNDCP = 0x19, + ACTIVATION_REJECTED_BCM_VIOLATION = 0x30, + COLLISION_WITH_NETWORK_INITIATED_REQUEST = 0x38, + ONLY_IPV4V6_ALLOWED = 0x39, + ONLY_NON_IP_ALLOWED = 0x3A, + UNSUPPORTED_QCI_VALUE = 0x3B, + BEARER_HANDLING_NOT_SUPPORTED = 0x3C, + INVALID_DNS_ADDR = 0x7B, + INVALID_PCSCF_OR_DNS_ADDRESS = 0x7C, + CALL_PREEMPT_BY_EMERGENCY_APN = 0x7F, + UE_INITIATED_DETACH_OR_DISCONNECT = 0x80, + MIP_FA_REASON_UNSPECIFIED = 0x7D0, + MIP_FA_ADMIN_PROHIBITED = 0x7D1, + MIP_FA_INSUFFICIENT_RESOURCES = 0x7D2, + MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE = 0x7D3, + MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE = 0x7D4, + MIP_FA_REQUESTED_LIFETIME_TOO_LONG = 0x7D5, + MIP_FA_MALFORMED_REQUEST = 0x7D6, + MIP_FA_MALFORMED_REPLY = 0x7D7, + MIP_FA_ENCAPSULATION_UNAVAILABLE = 0x7D8, + MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE = 0x7D9, + MIP_FA_REVERSE_TUNNEL_UNAVAILABLE = 0x7DA, + MIP_FA_REVERSE_TUNNEL_IS_MANDATORY = 0x7DB, + MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED = 0x7DC, + MIP_FA_MISSING_NAI = 0x7DD, + MIP_FA_MISSING_HOME_AGENT = 0x7DE, + MIP_FA_MISSING_HOME_ADDRESS = 0x7DF, + MIP_FA_UNKNOWN_CHALLENGE = 0x7E0, + MIP_FA_MISSING_CHALLENGE = 0x7E1, + MIP_FA_STALE_CHALLENGE = 0x7E2, + MIP_HA_REASON_UNSPECIFIED = 0x7E3, + MIP_HA_ADMIN_PROHIBITED = 0x7E4, + MIP_HA_INSUFFICIENT_RESOURCES = 0x7E5, + MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE = 0x7E6, + MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE = 0x7E7, + MIP_HA_REGISTRATION_ID_MISMATCH = 0x7E8, + MIP_HA_MALFORMED_REQUEST = 0x7E9, + MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS = 0x7EA, + MIP_HA_REVERSE_TUNNEL_UNAVAILABLE = 0x7EB, + MIP_HA_REVERSE_TUNNEL_IS_MANDATORY = 0x7EC, + MIP_HA_ENCAPSULATION_UNAVAILABLE = 0x7ED, + CLOSE_IN_PROGRESS = 0x7EE, + NETWORK_INITIATED_TERMINATION = 0x7EF, + MODEM_APP_PREEMPTED = 0x7F0, + PDN_IPV4_CALL_DISALLOWED = 0x7F1, + PDN_IPV4_CALL_THROTTLED = 0x7F2, + PDN_IPV6_CALL_DISALLOWED = 0x7F3, + PDN_IPV6_CALL_THROTTLED = 0x7F4, + MODEM_RESTART = 0x7F5, + PDP_PPP_NOT_SUPPORTED = 0x7F6, + UNPREFERRED_RAT = 0x7F7, + PHYSICAL_LINK_CLOSE_IN_PROGRESS = 0x7F8, + APN_PENDING_HANDOVER = 0x7F9, + PROFILE_BEARER_INCOMPATIBLE = 0x7FA, + SIM_CARD_CHANGED = 0x7FB, + LOW_POWER_MODE_OR_POWERING_DOWN = 0x7FC, + APN_DISABLED = 0x7FD, + MAX_PPP_INACTIVITY_TIMER_EXPIRED = 0x7FE, + IPV6_ADDRESS_TRANSFER_FAILED = 0x7FF, + TRAT_SWAP_FAILED = 0x800, + EHRPD_TO_HRPD_FALLBACK = 0x801, + MIP_CONFIG_FAILURE = 0x802, + PDN_INACTIVITY_TIMER_EXPIRED = 0x803, + MAX_IPV4_CONNECTIONS = 0x804, + MAX_IPV6_CONNECTIONS = 0x805, + APN_MISMATCH = 0x806, + IP_VERSION_MISMATCH = 0x807, + DUN_CALL_DISALLOWED = 0x808, + INTERNAL_EPC_NONEPC_TRANSITION = 0x809, + INTERFACE_IN_USE = 0x80A, + APN_DISALLOWED_ON_ROAMING = 0x80B, + APN_PARAMETERS_CHANGED = 0x80C, + NULL_APN_DISALLOWED = 0x80D, + THERMAL_MITIGATION = 0x80E, + DATA_SETTINGS_DISABLED = 0x80F, + DATA_ROAMING_SETTINGS_DISABLED = 0x810, + DDS_SWITCHED = 0x811, + FORBIDDEN_APN_NAME = 0x812, + DDS_SWITCH_IN_PROGRESS = 0x813, + CALL_DISALLOWED_IN_ROAMING = 0x814, + NON_IP_NOT_SUPPORTED = 0x815, + PDN_NON_IP_CALL_THROTTLED = 0x816, + PDN_NON_IP_CALL_DISALLOWED = 0x817, + CDMA_LOCK = 0x818, + CDMA_INTERCEPT = 0x819, + CDMA_REORDER = 0x81A, + CDMA_RELEASE_DUE_TO_SO_REJECTION = 0x81B, + CDMA_INCOMING_CALL = 0x81C, + CDMA_ALERT_STOP = 0x81D, + CHANNEL_ACQUISITION_FAILURE = 0x81E, + MAX_ACCESS_PROBE = 0x81F, + CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION = 0x820, + NO_RESPONSE_FROM_BASE_STATION = 0x821, + REJECTED_BY_BASE_STATION = 0x822, + CONCURRENT_SERVICES_INCOMPATIBLE = 0x823, + NO_CDMA_SERVICE = 0x824, + RUIM_NOT_PRESENT = 0x825, + CDMA_RETRY_ORDER = 0x826, + ACCESS_BLOCK = 0x827, + ACCESS_BLOCK_ALL = 0x828, + IS707B_MAX_ACCESS_PROBES = 0x829, + THERMAL_EMERGENCY = 0x82A, + CONCURRENT_SERVICES_NOT_ALLOWED = 0x82B, + INCOMING_CALL_REJECTED = 0x82C, + NO_SERVICE_ON_GATEWAY = 0x82D, + NO_GPRS_CONTEXT = 0x82E, + ILLEGAL_MS = 0x82F, + ILLEGAL_ME = 0x830, + GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 0x831, + GPRS_SERVICES_NOT_ALLOWED = 0x832, + MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK = 0x833, + IMPLICITLY_DETACHED = 0x834, + PLMN_NOT_ALLOWED = 0x835, + LOCATION_AREA_NOT_ALLOWED = 0x836, + GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN = 0x837, + PDP_DUPLICATE = 0x838, + UE_RAT_CHANGE = 0x839, + CONGESTION = 0x83A, + NO_PDP_CONTEXT_ACTIVATED = 0x83B, + ACCESS_CLASS_DSAC_REJECTION = 0x83C, + PDP_ACTIVATE_MAX_RETRY_FAILED = 0x83D, + RADIO_ACCESS_BEARER_FAILURE = 0x83E, + ESM_UNKNOWN_EPS_BEARER_CONTEXT = 0x83F, + DRB_RELEASED_BY_RRC = 0x840, + CONNECTION_RELEASED = 0x841, + EMM_DETACHED = 0x842, + EMM_ATTACH_FAILED = 0x843, + EMM_ATTACH_STARTED = 0x844, + LTE_NAS_SERVICE_REQUEST_FAILED = 0x845, + DUPLICATE_BEARER_ID = 0x846, + ESM_COLLISION_SCENARIOS = 0x847, + ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK = 0x848, + ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER = 0x849, + ESM_BAD_OTA_MESSAGE = 0x84A, + ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL = 0x84B, + ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT = 0x84C, + DS_EXPLICIT_DEACTIVATION = 0x84D, + ESM_LOCAL_CAUSE_NONE = 0x84E, + LTE_THROTTLING_NOT_REQUIRED = 0x84F, + ACCESS_CONTROL_LIST_CHECK_FAILURE = 0x850, + SERVICE_NOT_ALLOWED_ON_PLMN = 0x851, + EMM_T3417_EXPIRED = 0x852, + EMM_T3417_EXT_EXPIRED = 0x853, + RRC_UPLINK_DATA_TRANSMISSION_FAILURE = 0x854, + RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER = 0x855, + RRC_UPLINK_CONNECTION_RELEASE = 0x856, + RRC_UPLINK_RADIO_LINK_FAILURE = 0x857, + RRC_UPLINK_ERROR_REQUEST_FROM_NAS = 0x858, + RRC_CONNECTION_ACCESS_STRATUM_FAILURE = 0x859, + RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS = 0x85A, + RRC_CONNECTION_ACCESS_BARRED = 0x85B, + RRC_CONNECTION_CELL_RESELECTION = 0x85C, + RRC_CONNECTION_CONFIG_FAILURE = 0x85D, + RRC_CONNECTION_TIMER_EXPIRED = 0x85E, + RRC_CONNECTION_LINK_FAILURE = 0x85F, + RRC_CONNECTION_CELL_NOT_CAMPED = 0x860, + RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE = 0x861, + RRC_CONNECTION_REJECT_BY_NETWORK = 0x862, + RRC_CONNECTION_NORMAL_RELEASE = 0x863, + RRC_CONNECTION_RADIO_LINK_FAILURE = 0x864, + RRC_CONNECTION_REESTABLISHMENT_FAILURE = 0x865, + RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER = 0x866, + RRC_CONNECTION_ABORT_REQUEST = 0x867, + RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR = 0x868, + NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH = 0x869, + NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH = 0x86A, + ESM_PROCEDURE_TIME_OUT = 0x86B, + INVALID_CONNECTION_ID = 0x86C, + MAXIMIUM_NSAPIS_EXCEEDED = 0x86D, + INVALID_PRIMARY_NSAPI = 0x86E, + CANNOT_ENCODE_OTA_MESSAGE = 0x86F, + RADIO_ACCESS_BEARER_SETUP_FAILURE = 0x870, + PDP_ESTABLISH_TIMEOUT_EXPIRED = 0x871, + PDP_MODIFY_TIMEOUT_EXPIRED = 0x872, + PDP_INACTIVE_TIMEOUT_EXPIRED = 0x873, + PDP_LOWERLAYER_ERROR = 0x874, + PDP_MODIFY_COLLISION = 0x875, + /** + * @deprecated use MAXIMUM_SIZE_OF_L2_MESSAGE_EXCEEDED instead. + */ + MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 0x876, + MAXIMUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 0x876, + NAS_REQUEST_REJECTED_BY_NETWORK = 0x877, + RRC_CONNECTION_INVALID_REQUEST = 0x878, + RRC_CONNECTION_TRACKING_AREA_ID_CHANGED = 0x879, + RRC_CONNECTION_RF_UNAVAILABLE = 0x87A, + RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE = 0x87B, + RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE = 0x87C, + RRC_CONNECTION_ABORTED_AFTER_HANDOVER = 0x87D, + RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE = 0x87E, + RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE = 0x87F, + IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER = 0x880, + IMEI_NOT_ACCEPTED = 0x881, + EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED = 0x882, + EPS_SERVICES_NOT_ALLOWED_IN_PLMN = 0x883, + MSC_TEMPORARILY_NOT_REACHABLE = 0x884, + CS_DOMAIN_NOT_AVAILABLE = 0x885, + ESM_FAILURE = 0x886, + MAC_FAILURE = 0x887, + SYNCHRONIZATION_FAILURE = 0x888, + UE_SECURITY_CAPABILITIES_MISMATCH = 0x889, + SECURITY_MODE_REJECTED = 0x88A, + UNACCEPTABLE_NON_EPS_AUTHENTICATION = 0x88B, + CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED = 0x88C, + NO_EPS_BEARER_CONTEXT_ACTIVATED = 0x88D, + INVALID_EMM_STATE = 0x88E, + NAS_LAYER_FAILURE = 0x88F, + MULTIPLE_PDP_CALL_NOT_ALLOWED = 0x890, + EMBMS_NOT_ENABLED = 0x891, + IRAT_HANDOVER_FAILED = 0x892, + EMBMS_REGULAR_DEACTIVATION = 0x893, + TEST_LOOPBACK_REGULAR_DEACTIVATION = 0x894, + LOWER_LAYER_REGISTRATION_FAILURE = 0x895, + DATA_PLAN_EXPIRED = 0x896, + UMTS_HANDOVER_TO_IWLAN = 0x897, + EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 0x898, + EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 0x899, + EVDO_HDR_CHANGED = 0x89A, + EVDO_HDR_EXITED = 0x89B, + EVDO_HDR_NO_SESSION = 0x89C, + EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 0x89D, + EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 0x89E, + FAILED_TO_ACQUIRE_COLOCATED_HDR = 0x89F, + OTASP_COMMIT_IN_PROGRESS = 0x8A0, + NO_HYBRID_HDR_SERVICE = 0x8A1, + HDR_NO_LOCK_GRANTED = 0x8A2, + DBM_OR_SMS_IN_PROGRESS = 0x8A3, + HDR_FADE = 0x8A4, + HDR_ACCESS_FAILURE = 0x8A5, + UNSUPPORTED_1X_PREV = 0x8A6, + LOCAL_END = 0x8A7, + NO_SERVICE = 0x8A8, + FADE = 0x8A9, + NORMAL_RELEASE = 0x8AA, + ACCESS_ATTEMPT_ALREADY_IN_PROGRESS = 0x8AB, + REDIRECTION_OR_HANDOFF_IN_PROGRESS = 0x8AC, + EMERGENCY_MODE = 0x8AD, + PHONE_IN_USE = 0x8AE, + INVALID_MODE = 0x8AF, + INVALID_SIM_STATE = 0x8B0, + NO_COLLOCATED_HDR = 0x8B1, + UE_IS_ENTERING_POWERSAVE_MODE = 0x8B2, + DUAL_SWITCH = 0x8B3, + PPP_TIMEOUT = 0x8B4, + PPP_AUTH_FAILURE = 0x8B5, + PPP_OPTION_MISMATCH = 0x8B6, + PPP_PAP_FAILURE = 0x8B7, + PPP_CHAP_FAILURE = 0x8B8, + PPP_CLOSE_IN_PROGRESS = 0x8B9, + LIMITED_TO_IPV4 = 0x8BA, + LIMITED_TO_IPV6 = 0x8BB, + VSNCP_TIMEOUT = 0x8BC, + VSNCP_GEN_ERROR = 0x8BD, + VSNCP_APN_UNAUTHORIZED = 0x8BE, + VSNCP_PDN_LIMIT_EXCEEDED = 0x8BF, + VSNCP_NO_PDN_GATEWAY_ADDRESS = 0x8C0, + VSNCP_PDN_GATEWAY_UNREACHABLE = 0x8C1, + VSNCP_PDN_GATEWAY_REJECT = 0x8C2, + VSNCP_INSUFFICIENT_PARAMETERS = 0x8C3, + VSNCP_RESOURCE_UNAVAILABLE = 0x8C4, + VSNCP_ADMINISTRATIVELY_PROHIBITED = 0x8C5, + VSNCP_PDN_ID_IN_USE = 0x8C6, + VSNCP_SUBSCRIBER_LIMITATION = 0x8C7, + VSNCP_PDN_EXISTS_FOR_THIS_APN = 0x8C8, + VSNCP_RECONNECT_NOT_ALLOWED = 0x8C9, + IPV6_PREFIX_UNAVAILABLE = 0x8CA, + HANDOFF_PREFERENCE_CHANGED = 0x8CB, + SLICE_REJECTED = 0x8CC, + MATCH_ALL_RULE_NOT_ALLOWED = 0x8CD, + ALL_MATCHING_RULES_FAILED = 0x8CE, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataProfileInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataProfileInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7f3fdc7721c826b37719a0db12ebb3eabe26f3e5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataProfileInfo.aidl @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable DataProfileInfo { + int profileId; + String apn; + android.hardware.radio.data.PdpProtocolType protocol; + android.hardware.radio.data.PdpProtocolType roamingProtocol; + android.hardware.radio.data.ApnAuthType authType; + String user; + String password; + int type; + int maxConnsTime; + int maxConns; + int waitTime; + boolean enabled; + int supportedApnTypesBitmap; + int bearerBitmap; + int mtuV4; + int mtuV6; + boolean preferred; + boolean persistent; + boolean alwaysOn; + android.hardware.radio.data.TrafficDescriptor trafficDescriptor; + int infrastructureBitmap = INFRASTRUCTURE_UNKNOWN /* 0 */; + const int ID_DEFAULT = 0; + const int ID_TETHERED = 1; + const int ID_IMS = 2; + const int ID_FOTA = 3; + const int ID_CBS = 4; + const int ID_OEM_BASE = 1000; + const int ID_INVALID = 0xFFFFFFFF; + const int TYPE_COMMON = 0; + const int TYPE_3GPP = 1; + const int TYPE_3GPP2 = 2; + const int INFRASTRUCTURE_UNKNOWN = 0; + const int INFRASTRUCTURE_CELLULAR = (1 << 0) /* 1 */; + const int INFRASTRUCTURE_SATELLITE = (1 << 1) /* 2 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataRequestReason.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataRequestReason.aidl new file mode 100644 index 0000000000000000000000000000000000000000..98ae53a080fd1807ab79c52f63f0fbaa35f682f8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataRequestReason.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum DataRequestReason { + NORMAL = 1, + SHUTDOWN = 2, + HANDOVER = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataThrottlingAction.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataThrottlingAction.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e1fedb86c0b2c0d70e3b74ea06ff56e2070a0df3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/DataThrottlingAction.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@Backing(type="byte") @JavaDerive(toString=true) @VintfStability +enum DataThrottlingAction { + NO_DATA_THROTTLING, + THROTTLE_SECONDARY_CARRIER, + THROTTLE_ANCHOR_CARRIER, + HOLD, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/EpsQos.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/EpsQos.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3a3f41d98e80ac7525c90e1e7646e56f56c416e9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/EpsQos.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EpsQos { + int qci; + android.hardware.radio.data.QosBandwidth downlink; + android.hardware.radio.data.QosBandwidth uplink; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioData.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3888c627e7a80bd41fa569867d95d60aa617419b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioData.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@VintfStability +interface IRadioData { + oneway void allocatePduSessionId(in int serial); + oneway void cancelHandover(in int serial, in int callId); + oneway void deactivateDataCall(in int serial, in int cid, in android.hardware.radio.data.DataRequestReason reason); + oneway void getDataCallList(in int serial); + oneway void getSlicingConfig(in int serial); + oneway void releasePduSessionId(in int serial, in int id); + oneway void responseAcknowledgement(); + oneway void setDataAllowed(in int serial, in boolean allow); + oneway void setDataProfile(in int serial, in android.hardware.radio.data.DataProfileInfo[] profiles); + oneway void setDataThrottling(in int serial, in android.hardware.radio.data.DataThrottlingAction dataThrottlingAction, in long completionDurationMillis); + oneway void setInitialAttachApn(in int serial, in @nullable android.hardware.radio.data.DataProfileInfo dataProfileInfo); + oneway void setResponseFunctions(in android.hardware.radio.data.IRadioDataResponse radioDataResponse, in android.hardware.radio.data.IRadioDataIndication radioDataIndication); + oneway void setupDataCall(in int serial, in android.hardware.radio.AccessNetwork accessNetwork, in android.hardware.radio.data.DataProfileInfo dataProfileInfo, in boolean roamingAllowed, in android.hardware.radio.data.DataRequestReason reason, in android.hardware.radio.data.LinkAddress[] addresses, in String[] dnses, in int pduSessionId, in @nullable android.hardware.radio.data.SliceInfo sliceInfo, in boolean matchAllRuleAllowed); + oneway void startHandover(in int serial, in int callId); + oneway void startKeepalive(in int serial, in android.hardware.radio.data.KeepaliveRequest keepalive); + oneway void stopKeepalive(in int serial, in int sessionHandle); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataIndication.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6057d6af074ca72c6821112b615d2d9191431607 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataIndication.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@VintfStability +interface IRadioDataIndication { + oneway void dataCallListChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.data.SetupDataCallResult[] dcList); + oneway void keepaliveStatus(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.data.KeepaliveStatus status); + oneway void pcoData(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.data.PcoDataInfo pco); + oneway void unthrottleApn(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.data.DataProfileInfo dataProfileInfo); + oneway void slicingConfigChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.data.SlicingConfig slicingConfig); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataResponse.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dc44454f3f1f9a3d3252885a4392676fac4a2d81 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/IRadioDataResponse.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@VintfStability +interface IRadioDataResponse { + oneway void acknowledgeRequest(in int serial); + oneway void allocatePduSessionIdResponse(in android.hardware.radio.RadioResponseInfo info, in int id); + oneway void cancelHandoverResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void deactivateDataCallResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getDataCallListResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.data.SetupDataCallResult[] dcResponse); + oneway void getSlicingConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.data.SlicingConfig slicingConfig); + oneway void releasePduSessionIdResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setDataAllowedResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setDataProfileResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setDataThrottlingResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setInitialAttachApnResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setupDataCallResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.data.SetupDataCallResult dcResponse); + oneway void startHandoverResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void startKeepaliveResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.data.KeepaliveStatus status); + oneway void stopKeepaliveResponse(in android.hardware.radio.RadioResponseInfo info); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveRequest.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..789ee863f2cd9e9ce9e41f29017b6be6615e119f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveRequest.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable KeepaliveRequest { + int type; + byte[] sourceAddress; + int sourcePort; + byte[] destinationAddress; + int destinationPort; + int maxKeepaliveIntervalMillis; + int cid; + const int TYPE_NATT_IPV4 = 0; + const int TYPE_NATT_IPV6 = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..404b44a3e0b2260de0c7a7352a6658c575220488 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/KeepaliveStatus.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable KeepaliveStatus { + int sessionHandle; + int code; + const int CODE_ACTIVE = 0; + const int CODE_INACTIVE = 1; + const int CODE_PENDING = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/LinkAddress.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/LinkAddress.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bef4c736f8a940609331f04f5372454317e19f03 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/LinkAddress.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LinkAddress { + String address; + int addressProperties; + long deprecationTime; + long expirationTime; + const int ADDRESS_PROPERTY_NONE = 0; + const int ADDRESS_PROPERTY_DEPRECATED = 0x20; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/NrQos.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/NrQos.aidl new file mode 100644 index 0000000000000000000000000000000000000000..22bbe4293319fa23c65cbdf58c0c8c4973d8fc0f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/NrQos.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable NrQos { + int fiveQi; + android.hardware.radio.data.QosBandwidth downlink; + android.hardware.radio.data.QosBandwidth uplink; + byte qfi; + /** + * @deprecated use averagingWindowMillis; + */ + char averagingWindowMs; + int averagingWindowMillis = AVERAGING_WINDOW_UNKNOWN /* -1 */; + const byte FLOW_ID_RANGE_MIN = 1; + const byte FLOW_ID_RANGE_MAX = 63; + const int AVERAGING_WINDOW_UNKNOWN = (-1) /* -1 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/OsAppId.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/OsAppId.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e4bbf79126d95970c1bb9539625b8b55d678344b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/OsAppId.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable OsAppId { + byte[] osAppId; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PcoDataInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PcoDataInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ea7529cb34c86ed7c5701d6ae7bf9430a6fb8e2b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PcoDataInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable PcoDataInfo { + int cid; + String bearerProto; + int pcoId; + byte[] contents; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PdpProtocolType.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PdpProtocolType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3a7f82d40163695bcc9ff82acdd6ea483e52b327 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PdpProtocolType.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum PdpProtocolType { + UNKNOWN = (-1) /* -1 */, + IP = 0, + IPV6 = 1, + IPV4V6 = 2, + PPP = 3, + NON_IP = 4, + UNSTRUCTURED = 5, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PortRange.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PortRange.aidl new file mode 100644 index 0000000000000000000000000000000000000000..45e2dc968706e9c2f2600bf45631b4ef28afcdd5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/PortRange.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable PortRange { + int start; + int end; + const int PORT_RANGE_MIN = 20; + const int PORT_RANGE_MAX = 65535; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/Qos.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/Qos.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4dac56c5d9fafe3d834f011b7f44ed7440c6e5e2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/Qos.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union Qos { + boolean noinit; + android.hardware.radio.data.EpsQos eps; + android.hardware.radio.data.NrQos nr; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosBandwidth.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosBandwidth.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b59dee0d40e2c73f162cf36e3adae097b9c34ba7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosBandwidth.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable QosBandwidth { + int maxBitrateKbps; + int guaranteedBitrateKbps; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilter.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilter.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a3208d9b6c611eabaad6188486bbfd86f073a071 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilter.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable QosFilter { + String[] localAddresses; + String[] remoteAddresses; + @nullable android.hardware.radio.data.PortRange localPort; + @nullable android.hardware.radio.data.PortRange remotePort; + byte protocol; + android.hardware.radio.data.QosFilterTypeOfService tos; + android.hardware.radio.data.QosFilterIpv6FlowLabel flowLabel; + android.hardware.radio.data.QosFilterIpsecSpi spi; + byte direction; + int precedence; + const byte DIRECTION_DOWNLINK = 0; + const byte DIRECTION_UPLINK = 1; + const byte DIRECTION_BIDIRECTIONAL = 2; + const byte PROTOCOL_UNSPECIFIED = (-1) /* -1 */; + const byte PROTOCOL_TCP = 6; + const byte PROTOCOL_UDP = 17; + const byte PROTOCOL_ESP = 50; + const byte PROTOCOL_AH = 51; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpsecSpi.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpsecSpi.aidl new file mode 100644 index 0000000000000000000000000000000000000000..50b52a49571b85a5f92d6da86c9c7e907b76ce2a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpsecSpi.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union QosFilterIpsecSpi { + boolean noinit; + int value; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpv6FlowLabel.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpv6FlowLabel.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4913dcf07be9c7abf6a11567aeceb03eafce96d0 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterIpv6FlowLabel.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union QosFilterIpv6FlowLabel { + boolean noinit; + int value; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterTypeOfService.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterTypeOfService.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4f0d2605e1135436fff85587aca4c1746277603e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosFilterTypeOfService.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union QosFilterTypeOfService { + boolean noinit; + byte value; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosSession.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosSession.aidl new file mode 100644 index 0000000000000000000000000000000000000000..89010a9feb7e34cf1fa6c27379b44dbd9d8eb780 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/QosSession.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable QosSession { + int qosSessionId; + android.hardware.radio.data.Qos qos; + android.hardware.radio.data.QosFilter[] qosFilters; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/RouteSelectionDescriptor.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/RouteSelectionDescriptor.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8864c246d6ac1c236da9670ca37c7487610609c7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/RouteSelectionDescriptor.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RouteSelectionDescriptor { + byte precedence; + android.hardware.radio.data.PdpProtocolType sessionType; + byte sscMode; + android.hardware.radio.data.SliceInfo[] sliceInfo; + String[] dnn; + const byte SSC_MODE_UNKNOWN = (-1) /* -1 */; + const byte SSC_MODE_1 = 1; + const byte SSC_MODE_2 = 2; + const byte SSC_MODE_3 = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SetupDataCallResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SetupDataCallResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6ae626eab71e18dc56ecfc2c7146e56a2c02206e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SetupDataCallResult.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SetupDataCallResult { + android.hardware.radio.data.DataCallFailCause cause; + long suggestedRetryTime; + int cid; + int active; + android.hardware.radio.data.PdpProtocolType type; + String ifname; + android.hardware.radio.data.LinkAddress[] addresses; + String[] dnses; + String[] gateways; + String[] pcscf; + int mtuV4; + int mtuV6; + android.hardware.radio.data.Qos defaultQos; + android.hardware.radio.data.QosSession[] qosSessions; + byte handoverFailureMode; + int pduSessionId; + @nullable android.hardware.radio.data.SliceInfo sliceInfo; + android.hardware.radio.data.TrafficDescriptor[] trafficDescriptors; + const int DATA_CONNECTION_STATUS_INACTIVE = 0; + const int DATA_CONNECTION_STATUS_DORMANT = 1; + const int DATA_CONNECTION_STATUS_ACTIVE = 2; + const byte HANDOVER_FAILURE_MODE_LEGACY = 0; + const byte HANDOVER_FAILURE_MODE_DO_FALLBACK = 1; + const byte HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 2; + const byte HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SliceInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SliceInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..60df402a8116325a07cc0532e914be0e50de9200 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SliceInfo.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SliceInfo { + byte sliceServiceType; + int sliceDifferentiator; + byte mappedHplmnSst; + int mappedHplmnSd; + byte status; + const byte SERVICE_TYPE_NONE = 0; + const byte SERVICE_TYPE_EMBB = 1; + const byte SERVICE_TYPE_URLLC = 2; + const byte SERVICE_TYPE_MIOT = 3; + const byte STATUS_UNKNOWN = 0; + const byte STATUS_CONFIGURED = 1; + const byte STATUS_ALLOWED = 2; + const byte STATUS_REJECTED_NOT_AVAILABLE_IN_PLMN = 3; + const byte STATUS_REJECTED_NOT_AVAILABLE_IN_REG_AREA = 4; + const byte STATUS_DEFAULT_CONFIGURED = 5; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SlicingConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SlicingConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4d28737134ef0f9e5fae2ad344e2865f5b6400ac --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/SlicingConfig.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SlicingConfig { + android.hardware.radio.data.UrspRule[] urspRules; + android.hardware.radio.data.SliceInfo[] sliceInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/TrafficDescriptor.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/TrafficDescriptor.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dc474a2d1d05f05968a3fb102227740bc531db74 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/TrafficDescriptor.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable TrafficDescriptor { + @nullable String dnn; + @nullable android.hardware.radio.data.OsAppId osAppId; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/UrspRule.aidl b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/UrspRule.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6850f6a049277ed1c917b3e314a1cd9e69858a0e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.data/3/android/hardware/radio/data/UrspRule.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.data; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable UrspRule { + int precedence; + android.hardware.radio.data.TrafficDescriptor[] trafficDescriptors; + android.hardware.radio.data.RouteSelectionDescriptor[] routeSelectionDescriptor; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/.hash b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/.hash new file mode 100644 index 0000000000000000000000000000000000000000..9b9d9c1cfeb3ed7b5ffabdc9693ddab9533391a9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/.hash @@ -0,0 +1 @@ +32f1efa112630eb17660b761f3350407239ee725 diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..36a538cdb4e7973b4f67c741ad545547093fff5f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrMode.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum AmrMode { + AMR_MODE_0 = (1 << 0) /* 1 */, + AMR_MODE_1 = (1 << 1) /* 2 */, + AMR_MODE_2 = (1 << 2) /* 4 */, + AMR_MODE_3 = (1 << 3) /* 8 */, + AMR_MODE_4 = (1 << 4) /* 16 */, + AMR_MODE_5 = (1 << 5) /* 32 */, + AMR_MODE_6 = (1 << 6) /* 64 */, + AMR_MODE_7 = (1 << 7) /* 128 */, + AMR_MODE_8 = (1 << 8) /* 256 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dcf0dd1775bfbef4ebaa22e731238d753c92dd37 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AmrParams.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable AmrParams { + android.hardware.radio.ims.media.AmrMode amrMode; + boolean octetAligned; + int maxRedundancyMillis; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AnbrMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AnbrMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..eca7b9323ccadbdd9abbb844094fb7a804cee1c3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/AnbrMode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable AnbrMode { + android.hardware.radio.ims.media.CodecMode anbrUplinkMode; + android.hardware.radio.ims.media.CodecMode anbrDownlinkMode; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CallQuality.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CallQuality.aidl new file mode 100644 index 0000000000000000000000000000000000000000..594a39faee1d9c297b00c0820b78120072dfea32 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CallQuality.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CallQuality { + int downlinkCallQualityLevel; + int uplinkCallQualityLevel; + int callDuration; + int numRtpPacketsTransmitted; + int numRtpPacketsReceived; + int numRtpPacketsTransmittedLost; + int numRtpPacketsNotReceived; + int averageRelativeJitter; + int maxRelativeJitter; + int averageRoundTripTime; + int codecType; + boolean rtpInactivityDetected; + boolean rxSilenceDetected; + boolean txSilenceDetected; + int numVoiceFrames; + int numNoDataFrames; + int numDroppedRtpPackets; + long minPlayoutDelayMillis; + long maxPlayoutDelayMillis; + int numRtpSidPacketsReceived; + int numRtpDuplicatePackets; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..644321cd3f97c96477019bedadbce83162ba6990 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union CodecMode { + boolean noinit; + android.hardware.radio.ims.media.AmrMode amr; + android.hardware.radio.ims.media.EvsMode evs; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6eefb347c4b0a50c87a23f2c1cf04cf6838d410c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecParams.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CodecParams { + android.hardware.radio.ims.media.CodecType codecType; + byte rxPayloadTypeNumber; + byte txPayloadTypeNumber; + byte samplingRateKHz; + boolean dtxEnabled; + android.hardware.radio.ims.media.CodecSpecificParams codecSpecificParams; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecSpecificParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecSpecificParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7e5722f9355f1fe156e5dba583b3fd52aac12f02 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecSpecificParams.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union CodecSpecificParams { + android.hardware.radio.ims.media.AmrParams amr; + android.hardware.radio.ims.media.EvsParams evs; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecType.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..98463b184b9c84faa3634c709c187e8947845205 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/CodecType.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CodecType { + AMR = (1 << 0) /* 1 */, + AMR_WB = (1 << 1) /* 2 */, + EVS = (1 << 2) /* 4 */, + PCMA = (1 << 3) /* 8 */, + PCMU = (1 << 4) /* 16 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/DtmfParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/DtmfParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f420fa71d27726dca5c32ea8a8ca1b348304e71e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/DtmfParams.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable DtmfParams { + byte rxPayloadTypeNumber; + byte txPayloadTypeNumber; + byte samplingRateKHz; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsBandwidth.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsBandwidth.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d8c77bdccc53d103e0061c2caa05c873931668b5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsBandwidth.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EvsBandwidth { + NONE = 0, + NARROW_BAND = (1 << 0) /* 1 */, + WIDE_BAND = (1 << 1) /* 2 */, + SUPER_WIDE_BAND = (1 << 2) /* 4 */, + FULL_BAND = (1 << 3) /* 8 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1a593890fdc1a3e8137a761bedb6531bd2dfbf6b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsMode.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EvsMode { + EVS_MODE_0 = (1 << 0) /* 1 */, + EVS_MODE_1 = (1 << 1) /* 2 */, + EVS_MODE_2 = (1 << 2) /* 4 */, + EVS_MODE_3 = (1 << 3) /* 8 */, + EVS_MODE_4 = (1 << 4) /* 16 */, + EVS_MODE_5 = (1 << 5) /* 32 */, + EVS_MODE_6 = (1 << 6) /* 64 */, + EVS_MODE_7 = (1 << 7) /* 128 */, + EVS_MODE_8 = (1 << 8) /* 256 */, + EVS_MODE_9 = (1 << 9) /* 512 */, + EVS_MODE_10 = (1 << 10) /* 1024 */, + EVS_MODE_11 = (1 << 11) /* 2048 */, + EVS_MODE_12 = (1 << 12) /* 4096 */, + EVS_MODE_13 = (1 << 13) /* 8192 */, + EVS_MODE_14 = (1 << 14) /* 16384 */, + EVS_MODE_15 = (1 << 15) /* 32768 */, + EVS_MODE_16 = (1 << 16) /* 65536 */, + EVS_MODE_17 = (1 << 17) /* 131072 */, + EVS_MODE_18 = (1 << 18) /* 262144 */, + EVS_MODE_19 = (1 << 19) /* 524288 */, + EVS_MODE_20 = (1 << 20) /* 1048576 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..deb53af54aa8e5646270f1d3b734ae8e03181312 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/EvsParams.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EvsParams { + android.hardware.radio.ims.media.EvsBandwidth bandwidth; + android.hardware.radio.ims.media.EvsMode evsMode; + byte channelAwareMode; + boolean useHeaderFullOnly; + boolean useEvsModeSwitch; + byte codecModeRequest; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMedia.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMedia.aidl new file mode 100644 index 0000000000000000000000000000000000000000..190d25b61c49adf9092ecb5ee9783b96118dfd8b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMedia.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@VintfStability +interface IImsMedia { + oneway void setListener(in android.hardware.radio.ims.media.IImsMediaListener mediaListener); + oneway void openSession(int sessionId, in android.hardware.radio.ims.media.LocalEndPoint localEndPoint, in android.hardware.radio.ims.media.RtpConfig config); + oneway void closeSession(int sessionId); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaListener.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaListener.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9b7a392eddd0b19e7b6f5e28facfa738372a9158 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaListener.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@VintfStability +interface IImsMediaListener { + oneway void onOpenSessionSuccess(int sessionId, android.hardware.radio.ims.media.IImsMediaSession session); + oneway void onOpenSessionFailure(int sessionId, android.hardware.radio.ims.media.RtpError error); + oneway void onSessionClosed(int sessionId); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSession.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSession.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2150fbe0a145f37b49c382bfeef7ed2eb26f060d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSession.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@VintfStability +interface IImsMediaSession { + oneway void setListener(in android.hardware.radio.ims.media.IImsMediaSessionListener sessionListener); + oneway void modifySession(in android.hardware.radio.ims.media.RtpConfig config); + oneway void sendDtmf(char dtmfDigit, int duration); + oneway void startDtmf(char dtmfDigit); + oneway void stopDtmf(); + oneway void sendHeaderExtension(in List extensions); + oneway void setMediaQualityThreshold(in android.hardware.radio.ims.media.MediaQualityThreshold threshold); + oneway void requestRtpReceptionStats(in int intervalMs); + oneway void adjustDelay(in int delayMs); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl new file mode 100644 index 0000000000000000000000000000000000000000..87474eff3715e7d991ce22171f3cff5d575aa894 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/IImsMediaSessionListener.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@VintfStability +interface IImsMediaSessionListener { + oneway void onModifySessionResponse(in android.hardware.radio.ims.media.RtpConfig config, android.hardware.radio.ims.media.RtpError error); + oneway void onFirstMediaPacketReceived(in android.hardware.radio.ims.media.RtpConfig config); + oneway void onHeaderExtensionReceived(in List extensions); + oneway void notifyMediaQualityStatus(in android.hardware.radio.ims.media.MediaQualityStatus quality); + oneway void triggerAnbrQuery(in android.hardware.radio.ims.media.RtpConfig config); + oneway void onDtmfReceived(char dtmfDigit, int durationMs); + oneway void onCallQualityChanged(in android.hardware.radio.ims.media.CallQuality callQuality); + oneway void notifyRtpReceptionStats(in android.hardware.radio.ims.media.RtpReceptionStats stats); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/LocalEndPoint.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/LocalEndPoint.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1095f01ea150a77b4ad2260ddaa5a916c4370c5a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/LocalEndPoint.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LocalEndPoint { + ParcelFileDescriptor rtpFd; + ParcelFileDescriptor rtcpFd; + int modemId; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaDirection.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaDirection.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5410f2ade061553584ac5ed1a41f6117592d99b4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaDirection.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum MediaDirection { + NO_FLOW = 0, + RTP_TX = (1 << 0) /* 1 */, + RTP_RX = (1 << 1) /* 2 */, + RTCP_TX = (1 << 2) /* 4 */, + RTCP_RX = (1 << 3) /* 8 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..da6e751243e8338706d88ded58976d1d749c18d9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable MediaQualityStatus { + int rtpInactivityTimeMillis; + int rtcpInactivityTimeMillis; + int rtpPacketLossRate; + int rtpJitterMillis; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityThreshold.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityThreshold.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ecc379c0718eb3a20546e6b9dec9e36cc0f942b9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/MediaQualityThreshold.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable MediaQualityThreshold { + int[] rtpInactivityTimerMillis; + int rtcpInactivityTimerMillis; + int rtpPacketLossDurationMillis; + int rtpHysteresisTimeInMillis; + int[] rtpPacketLossRate; + int[] rtpJitterMillis; + boolean notifyCurrentStatus; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0bc41547fac8177d636d05e2ca937df6327a6405 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpConfig.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RtcpConfig { + String canonicalName; + int transmitPort; + int transmitIntervalSec; + int rtcpXrBlocks; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpXrReportBlockType.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpXrReportBlockType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..714442cce6d2329d7e31b54c9c7735ee4e564a7e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtcpXrReportBlockType.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RtcpXrReportBlockType { + RTCPXR_NONE = 0, + RTCPXR_LOSS_RLE_REPORT_BLOCK = (1 << 0) /* 1 */, + RTCPXR_DUPLICATE_RLE_REPORT_BLOCK = (1 << 1) /* 2 */, + RTCPXR_PACKET_RECEIPT_TIMES_REPORT_BLOCK = (1 << 2) /* 4 */, + RTCPXR_RECEIVER_REFERENCE_TIME_REPORT_BLOCK = (1 << 3) /* 8 */, + RTCPXR_DLRR_REPORT_BLOCK = (1 << 4) /* 16 */, + RTCPXR_STATISTICS_SUMMARY_REPORT_BLOCK = (1 << 5) /* 32 */, + RTCPXR_VOIP_METRICS_REPORT_BLOCK = (1 << 6) /* 64 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpAddress.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpAddress.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dd7f4661f79da6fca7d5e09a5638df22e97bf1b3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpAddress.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RtpAddress { + String ipAddress; + int portNumber; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..472ec35010310993666cb85d2bcd525489c91123 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpConfig.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RtpConfig { + int direction; + android.hardware.radio.AccessNetwork accessNetwork; + android.hardware.radio.ims.media.RtpAddress remoteAddress; + android.hardware.radio.ims.media.RtpSessionParams sessionParams; + android.hardware.radio.ims.media.RtcpConfig rtcpConfig; + android.hardware.radio.ims.media.AnbrMode anbrModeParams; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpError.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpError.aidl new file mode 100644 index 0000000000000000000000000000000000000000..97dacf18047f44c5d1fb8a6485c2ac0af2b21024 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpError.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RtpError { + NONE = 0, + INVALID_PARAM = 1, + NOT_READY = 2, + NO_MEMORY = 3, + NO_RESOURCES = 4, + PORT_UNAVAILABLE = 5, + NOT_SUPPORTED = 6, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpHeaderExtension.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpHeaderExtension.aidl new file mode 100644 index 0000000000000000000000000000000000000000..06207ee4d3720dd216c3914ef0ed3d9f64a18d3c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpHeaderExtension.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RtpHeaderExtension { + int localId; + byte[] data; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpReceptionStats.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpReceptionStats.aidl new file mode 100644 index 0000000000000000000000000000000000000000..216da4c55ce593dfb40f4373ee9fda4dab3fa87a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpReceptionStats.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +@VintfStability +parcelable RtpReceptionStats { + int rtpTimestamp; + int rtcpSrTimestamp; + long rtcpSrNtpTimestamp; + int jitterBufferMs; + int roundTripTimeMs; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpSessionParams.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpSessionParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4107432676245c0ee6892d2da3d9d0a1aeccd997 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/2/android/hardware/radio/ims/media/RtpSessionParams.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims.media; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RtpSessionParams { + byte pTimeMillis; + int maxPtimeMillis; + byte dscp; + android.hardware.radio.ims.media.DtmfParams dtmfParams; + android.hardware.radio.ims.media.CodecParams codecParams; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpReceptionStats.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpReceptionStats.aidl index 82b798b1d294c710d40902fb438d393f1ef39506..216da4c55ce593dfb40f4373ee9fda4dab3fa87a 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpReceptionStats.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.ims.media/current/android/hardware/radio/ims/media/RtpReceptionStats.aidl @@ -35,8 +35,8 @@ package android.hardware.radio.ims.media; @VintfStability parcelable RtpReceptionStats { int rtpTimestamp; - int rtpSequenceNumber; - int timeDurationMs; + int rtcpSrTimestamp; + long rtcpSrNtpTimestamp; int jitterBufferMs; int roundTripTimeMs; } diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/.hash b/radio/aidl/aidl_api/android.hardware.radio.ims/2/.hash new file mode 100644 index 0000000000000000000000000000000000000000..7b058acd54e6bde59070faba3559dce42eb2f8a2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/.hash @@ -0,0 +1 @@ +ec0dfedf764f3916783848c540ad312a74fa755d diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ConnectionFailureInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ConnectionFailureInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..421f752010f2feeb20b98e08789600bd64f5e31a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ConnectionFailureInfo.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ConnectionFailureInfo { + android.hardware.radio.ims.ConnectionFailureInfo.ConnectionFailureReason failureReason; + int causeCode; + int waitTimeMillis; + @Backing(type="int") @VintfStability + enum ConnectionFailureReason { + REASON_ACCESS_DENIED = 1, + REASON_NAS_FAILURE = 2, + REASON_RACH_FAILURE = 3, + REASON_RLC_FAILURE = 4, + REASON_RRC_REJECT = 5, + REASON_RRC_TIMEOUT = 6, + REASON_NO_SERVICE = 7, + REASON_PDN_NOT_AVAILABLE = 8, + REASON_RF_BUSY = 9, + REASON_UNSPECIFIED = 0xFFFF, + } +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/EpsFallbackReason.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/EpsFallbackReason.aidl new file mode 100644 index 0000000000000000000000000000000000000000..75099e7f1aa4db3ff1d62f56061e621059ebfe74 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/EpsFallbackReason.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"), + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EpsFallbackReason { + NO_NETWORK_TRIGGER = 1, + NO_NETWORK_RESPONSE = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioIms.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioIms.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6018a4b9044869a472e51a4f5456cd7c9f916b4b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioIms.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@VintfStability +interface IRadioIms { + oneway void setSrvccCallInfo(int serial, in android.hardware.radio.ims.SrvccCall[] srvccCalls); + oneway void updateImsRegistrationInfo(int serial, in android.hardware.radio.ims.ImsRegistration imsRegistration); + oneway void startImsTraffic(int serial, int token, android.hardware.radio.ims.ImsTrafficType imsTrafficType, android.hardware.radio.AccessNetwork accessNetworkType, android.hardware.radio.ims.ImsCall.Direction trafficDirection); + oneway void stopImsTraffic(int serial, int token); + oneway void triggerEpsFallback(int serial, in android.hardware.radio.ims.EpsFallbackReason reason); + oneway void setResponseFunctions(in android.hardware.radio.ims.IRadioImsResponse radioImsResponse, in android.hardware.radio.ims.IRadioImsIndication radioImsIndication); + oneway void sendAnbrQuery(int serial, android.hardware.radio.ims.ImsStreamType mediaType, android.hardware.radio.ims.ImsStreamDirection direction, int bitsPerSecond); + oneway void updateImsCallStatus(int serial, in android.hardware.radio.ims.ImsCall[] imsCalls); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsIndication.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c754af380607375e7f76c08481383f920d17bb9a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsIndication.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@VintfStability +interface IRadioImsIndication { + oneway void onConnectionSetupFailure(in android.hardware.radio.RadioIndicationType type, int token, in android.hardware.radio.ims.ConnectionFailureInfo info); + oneway void notifyAnbr(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.ims.ImsStreamType mediaType, in android.hardware.radio.ims.ImsStreamDirection direction, int bitsPerSecond); + oneway void triggerImsDeregistration(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.ims.ImsDeregistrationReason reason); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsResponse.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fbb1bfc66cde3cf8d80dc0ec0686b471e2b02c84 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/IRadioImsResponse.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@VintfStability +interface IRadioImsResponse { + oneway void setSrvccCallInfoResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void updateImsRegistrationInfoResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void startImsTrafficResponse(in android.hardware.radio.RadioResponseInfo info, in @nullable android.hardware.radio.ims.ConnectionFailureInfo failureInfo); + oneway void stopImsTrafficResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void triggerEpsFallbackResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendAnbrQueryResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void updateImsCallStatusResponse(in android.hardware.radio.RadioResponseInfo info); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsCall.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsCall.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3895d75d6ee54fbf9c6782592dc03938210b2de6 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsCall.aidl @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ImsCall { + int index; + android.hardware.radio.ims.ImsCall.CallType callType; + android.hardware.radio.AccessNetwork accessNetwork; + android.hardware.radio.ims.ImsCall.CallState callState; + android.hardware.radio.ims.ImsCall.Direction direction; + boolean isHeldByRemote; + @Backing(type="int") + enum CallType { + NORMAL, + EMERGENCY, + } + @Backing(type="int") + enum CallState { + ACTIVE, + HOLDING, + DIALING, + ALERTING, + INCOMING, + WAITING, + DISCONNECTING, + DISCONNECTED, + } + @Backing(type="int") + enum Direction { + INCOMING, + OUTGOING, + } +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsDeregistrationReason.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsDeregistrationReason.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5b5bd405f5d34f697b6676009d5a38bc4fd7c74b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsDeregistrationReason.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ImsDeregistrationReason { + REASON_SIM_REMOVED = 1, + REASON_SIM_REFRESH = 2, + REASON_ALLOWED_NETWORK_TYPES_CHANGED = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistration.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..66d81650fb6205f8bab170c813111de42fee50a6 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistration.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"), + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ImsRegistration { + android.hardware.radio.ims.ImsRegistrationState regState; + android.hardware.radio.AccessNetwork accessNetworkType; + android.hardware.radio.ims.SuggestedAction suggestedAction; + int capabilities; + const int IMS_MMTEL_CAPABILITY_NONE = 0; + const int IMS_MMTEL_CAPABILITY_VOICE = (1 << 0) /* 1 */; + const int IMS_MMTEL_CAPABILITY_VIDEO = (1 << 1) /* 2 */; + const int IMS_MMTEL_CAPABILITY_SMS = (1 << 2) /* 4 */; + const int IMS_RCS_CAPABILITIES = (1 << 3) /* 8 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistrationState.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistrationState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..01ae565d79de50484b2632de4f9241678565dda2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsRegistrationState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"), + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ImsRegistrationState { + NOT_REGISTERED, + REGISTERED, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamDirection.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamDirection.aidl new file mode 100644 index 0000000000000000000000000000000000000000..efc35511bc2389eb92eb865c2e0e40648502e385 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamDirection.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ImsStreamDirection { + UPLINK = 1, + DOWNLINK = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamType.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..853f4b5c0e25d8747be34f1d9f3d42e93f6b9fcb --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsStreamType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ImsStreamType { + AUDIO = 1, + VIDEO = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsTrafficType.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsTrafficType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4eeda9db07aeb29967b00026be1225a4f9d6e837 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/ImsTrafficType.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ImsTrafficType { + EMERGENCY, + EMERGENCY_SMS, + VOICE, + VIDEO, + SMS, + REGISTRATION, + UT_XCAP, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SrvccCall.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SrvccCall.aidl new file mode 100644 index 0000000000000000000000000000000000000000..21645dae0ad81a64c30866274b86f1156d2fd572 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SrvccCall.aidl @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SrvccCall { + int index; + android.hardware.radio.ims.SrvccCall.CallType callType; + int callState; + android.hardware.radio.ims.SrvccCall.CallSubState callSubstate; + android.hardware.radio.ims.SrvccCall.ToneType ringbackToneType; + boolean isMpty; + boolean isMT; + String number; + int numPresentation; + String name; + int namePresentation; + @Backing(type="int") @VintfStability + enum CallType { + NORMAL, + EMERGENCY, + } + @Backing(type="int") @VintfStability + enum CallSubState { + NONE, + PREALERTING, + } + @Backing(type="int") @VintfStability + enum ToneType { + NONE, + LOCAL, + NETWORK, + } +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SuggestedAction.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SuggestedAction.aidl new file mode 100644 index 0000000000000000000000000000000000000000..98460061aceaa67abacc4c289cb0b2f67d38f542 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/2/android/hardware/radio/ims/SuggestedAction.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"), + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.ims; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum SuggestedAction { + NONE, + TRIGGER_PLMN_BLOCK, + TRIGGER_PLMN_BLOCK_WITH_TIMEOUT, + TRIGGER_RAT_BLOCK, + TRIGGER_CLEAR_RAT_BLOCKS, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/SuggestedAction.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/SuggestedAction.aidl index 6dbf09ddc9c759aa602cbedb861ef684f357d604..98460061aceaa67abacc4c289cb0b2f67d38f542 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/SuggestedAction.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/SuggestedAction.aidl @@ -39,5 +39,5 @@ enum SuggestedAction { TRIGGER_PLMN_BLOCK, TRIGGER_PLMN_BLOCK_WITH_TIMEOUT, TRIGGER_RAT_BLOCK, - TRIGGER_CLEAR_RAT_BLOCK, + TRIGGER_CLEAR_RAT_BLOCKS, } diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..3347c217595b4ec67f14b644cd0c402400b21d1a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/.hash @@ -0,0 +1 @@ +30b0bc0e84679bc3b5ccb3a52da34c47cda6b7eb diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..abfb308bf902a40d56c9ced785e4ecdb4e536dcb --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaBroadcastSmsConfigInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaBroadcastSmsConfigInfo { + int serviceCategory; + int language; + boolean selected; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAck.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAck.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ee8371c6866983a945e5dd74d234443d05d9615c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAck.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSmsAck { + boolean errorClass; + int smsCauseCode; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAddress.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAddress.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7382b1fd3b0f88e432dfcda49672184dfd148419 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsAddress.aidl @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSmsAddress { + int digitMode; + boolean isNumberModeDataNetwork; + int numberType; + int numberPlan; + byte[] digits; + const int DIGIT_MODE_FOUR_BIT = 0; + const int DIGIT_MODE_EIGHT_BIT = 1; + const int NUMBER_PLAN_UNKNOWN = 0; + const int NUMBER_PLAN_TELEPHONY = 1; + const int NUMBER_PLAN_RESERVED_2 = 2; + const int NUMBER_PLAN_DATA = 3; + const int NUMBER_PLAN_TELEX = 4; + const int NUMBER_PLAN_RESERVED_5 = 5; + const int NUMBER_PLAN_RESERVED_6 = 6; + const int NUMBER_PLAN_RESERVED_7 = 7; + const int NUMBER_PLAN_RESERVED_8 = 8; + const int NUMBER_PLAN_PRIVATE = 9; + const int NUMBER_PLAN_RESERVED_10 = 10; + const int NUMBER_PLAN_RESERVED_11 = 11; + const int NUMBER_PLAN_RESERVED_12 = 12; + const int NUMBER_PLAN_RESERVED_13 = 13; + const int NUMBER_PLAN_RESERVED_14 = 14; + const int NUMBER_PLAN_RESERVED_15 = 15; + const int NUMBER_TYPE_UNKNOWN = 0; + const int NUMBER_TYPE_INTERNATIONAL_OR_DATA_IP = 1; + const int NUMBER_TYPE_NATIONAL_OR_INTERNET_MAIL = 2; + const int NUMBER_TYPE_NETWORK = 3; + const int NUMBER_TYPE_SUBSCRIBER = 4; + const int NUMBER_TYPE_ALPHANUMERIC = 5; + const int NUMBER_TYPE_ABBREVIATED = 6; + const int NUMBER_TYPE_RESERVED_7 = 7; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsMessage.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsMessage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0e98f4b8443a03b455034aa245e70d57d150217f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsMessage.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSmsMessage { + int teleserviceId; + boolean isServicePresent; + int serviceCategory; + android.hardware.radio.messaging.CdmaSmsAddress address; + android.hardware.radio.messaging.CdmaSmsSubaddress subAddress; + byte[] bearerData; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a0e399191098d44f696541092efa1e0a6534a584 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsSubaddress.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSmsSubaddress { + int subaddressType; + boolean odd; + byte[] digits; + const int SUBADDRESS_TYPE_NSAP = 0; + const int SUBADDRESS_TYPE_USER_SPECIFIED = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d6292e7b2e3aadcd76d9cc7a04845e08fefd4309 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/CdmaSmsWriteArgs.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSmsWriteArgs { + int status; + android.hardware.radio.messaging.CdmaSmsMessage message; + const int STATUS_REC_UNREAD = 0; + const int STATUS_REC_READ = 1; + const int STATUS_STO_UNSENT = 2; + const int STATUS_STO_SENT = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmBroadcastSmsConfigInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmBroadcastSmsConfigInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1ccba8614ef22e482252bd002ff3be14d95c7c3c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmBroadcastSmsConfigInfo.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable GsmBroadcastSmsConfigInfo { + int fromServiceId; + int toServiceId; + int fromCodeScheme; + int toCodeScheme; + boolean selected; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmSmsMessage.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmSmsMessage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bdd7d0c396beaf7e2ff1755a1259977c02ea9e98 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/GsmSmsMessage.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable GsmSmsMessage { + String smscPdu; + String pdu; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessaging.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessaging.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bf5fde50454d83e41bc3f778bbcc04057c0a7195 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessaging.aidl @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@VintfStability +interface IRadioMessaging { + oneway void acknowledgeIncomingGsmSmsWithPdu(in int serial, in boolean success, in String ackPdu); + oneway void acknowledgeLastIncomingCdmaSms(in int serial, in android.hardware.radio.messaging.CdmaSmsAck smsAck); + oneway void acknowledgeLastIncomingGsmSms(in int serial, in boolean success, in android.hardware.radio.messaging.SmsAcknowledgeFailCause cause); + oneway void deleteSmsOnRuim(in int serial, in int index); + oneway void deleteSmsOnSim(in int serial, in int index); + oneway void getCdmaBroadcastConfig(in int serial); + oneway void getGsmBroadcastConfig(in int serial); + oneway void getSmscAddress(in int serial); + oneway void reportSmsMemoryStatus(in int serial, in boolean available); + oneway void responseAcknowledgement(); + oneway void sendCdmaSms(in int serial, in android.hardware.radio.messaging.CdmaSmsMessage sms); + oneway void sendCdmaSmsExpectMore(in int serial, in android.hardware.radio.messaging.CdmaSmsMessage sms); + oneway void sendImsSms(in int serial, in android.hardware.radio.messaging.ImsSmsMessage message); + oneway void sendSms(in int serial, in android.hardware.radio.messaging.GsmSmsMessage message); + oneway void sendSmsExpectMore(in int serial, in android.hardware.radio.messaging.GsmSmsMessage message); + oneway void setCdmaBroadcastActivation(in int serial, in boolean activate); + oneway void setCdmaBroadcastConfig(in int serial, in android.hardware.radio.messaging.CdmaBroadcastSmsConfigInfo[] configInfo); + oneway void setGsmBroadcastActivation(in int serial, in boolean activate); + oneway void setGsmBroadcastConfig(in int serial, in android.hardware.radio.messaging.GsmBroadcastSmsConfigInfo[] configInfo); + oneway void setResponseFunctions(in android.hardware.radio.messaging.IRadioMessagingResponse radioMessagingResponse, in android.hardware.radio.messaging.IRadioMessagingIndication radioMessagingIndication); + oneway void setSmscAddress(in int serial, in String smsc); + oneway void writeSmsToRuim(in int serial, in android.hardware.radio.messaging.CdmaSmsWriteArgs cdmaSms); + oneway void writeSmsToSim(in int serial, in android.hardware.radio.messaging.SmsWriteArgs smsWriteArgs); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingIndication.aidl new file mode 100644 index 0000000000000000000000000000000000000000..389fb2659a3ca880d7a0012c7bc6e3e145c9f325 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingIndication.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@VintfStability +interface IRadioMessagingIndication { + oneway void cdmaNewSms(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.messaging.CdmaSmsMessage msg); + oneway void cdmaRuimSmsStorageFull(in android.hardware.radio.RadioIndicationType type); + oneway void newBroadcastSms(in android.hardware.radio.RadioIndicationType type, in byte[] data); + oneway void newSms(in android.hardware.radio.RadioIndicationType type, in byte[] pdu); + oneway void newSmsOnSim(in android.hardware.radio.RadioIndicationType type, in int recordNumber); + oneway void newSmsStatusReport(in android.hardware.radio.RadioIndicationType type, in byte[] pdu); + oneway void simSmsStorageFull(in android.hardware.radio.RadioIndicationType type); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingResponse.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9b1046483767ccbb9ea422881e5c6dd42a69debd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/IRadioMessagingResponse.aidl @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@VintfStability +interface IRadioMessagingResponse { + oneway void acknowledgeIncomingGsmSmsWithPduResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void acknowledgeLastIncomingCdmaSmsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void acknowledgeLastIncomingGsmSmsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void acknowledgeRequest(in int serial); + oneway void deleteSmsOnRuimResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void deleteSmsOnSimResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getCdmaBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.CdmaBroadcastSmsConfigInfo[] configs); + oneway void getGsmBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.GsmBroadcastSmsConfigInfo[] configs); + oneway void getSmscAddressResponse(in android.hardware.radio.RadioResponseInfo info, in String smsc); + oneway void reportSmsMemoryStatusResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendCdmaSmsExpectMoreResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms); + oneway void sendCdmaSmsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms); + oneway void sendImsSmsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms); + oneway void sendSmsExpectMoreResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms); + oneway void sendSmsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.messaging.SendSmsResult sms); + oneway void setCdmaBroadcastActivationResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCdmaBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setGsmBroadcastActivationResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setGsmBroadcastConfigResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSmscAddressResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void writeSmsToRuimResponse(in android.hardware.radio.RadioResponseInfo info, in int index); + oneway void writeSmsToSimResponse(in android.hardware.radio.RadioResponseInfo info, in int index); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/ImsSmsMessage.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/ImsSmsMessage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..40b9ddbb40c4c9a61dc64ed328a227552f85cbe2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/ImsSmsMessage.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ImsSmsMessage { + android.hardware.radio.RadioTechnologyFamily tech; + boolean retry; + int messageRef; + android.hardware.radio.messaging.CdmaSmsMessage[] cdmaMessage; + android.hardware.radio.messaging.GsmSmsMessage[] gsmMessage; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SendSmsResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SendSmsResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3f1d120a991cd86761e07eed8c2e518a20fbc07f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SendSmsResult.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SendSmsResult { + int messageRef; + String ackPDU; + int errorCode; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsAcknowledgeFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsAcknowledgeFailCause.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6aeda3ef4b3546b94ebb4b6d08282a7773682854 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsAcknowledgeFailCause.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum SmsAcknowledgeFailCause { + MEMORY_CAPACITY_EXCEEDED = 0xD3, + UNSPECIFIED_ERROR = 0XFF, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsWriteArgs.aidl b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsWriteArgs.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a294b477671938d8ba23291418f533241bc390cf --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.messaging/3/android/hardware/radio/messaging/SmsWriteArgs.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.messaging; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SmsWriteArgs { + int status; + String pdu; + String smsc; + const int STATUS_REC_UNREAD = 0; + const int STATUS_REC_READ = 1; + const int STATUS_STO_UNSENT = 2; + const int STATUS_STO_SENT = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.modem/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..79f0d7102f8c26bef5e59d155532c8abf23f00c4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/.hash @@ -0,0 +1 @@ +8586a5528f0085c15cff4b6628f1b8153aca29ad diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c834342e751e111cf1aef872dcb3f4ab29ec477c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ActivityStatsInfo { + int sleepModeTimeMs; + int idleModeTimeMs; + android.hardware.radio.modem.ActivityStatsTechSpecificInfo[] techSpecificInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsTechSpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsTechSpecificInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b44ab71e3fd3125107b25491fe35a01bb0c92e5a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ActivityStatsTechSpecificInfo.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ActivityStatsTechSpecificInfo { + android.hardware.radio.AccessNetwork rat; + int frequencyRange; + int[] txmModetimeMs; + int rxModeTimeMs; + const int FREQUENCY_RANGE_UNKNOWN = 0; + const int FREQUENCY_RANGE_LOW = 1; + const int FREQUENCY_RANGE_MID = 2; + const int FREQUENCY_RANGE_HIGH = 3; + const int FREQUENCY_RANGE_MMWAVE = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/DeviceStateType.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/DeviceStateType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1159f93b51938e622d0802b24f6b6caa2a92158a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/DeviceStateType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum DeviceStateType { + POWER_SAVE_MODE, + CHARGING_STATE, + LOW_DATA_EXPECTED, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2d814efbe24b44c0ec3fdc3bcb9602d62f944bc2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfig.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable HardwareConfig { + int type; + String uuid; + int state; + android.hardware.radio.modem.HardwareConfigModem[] modem; + android.hardware.radio.modem.HardwareConfigSim[] sim; + const int STATE_ENABLED = 0; + const int STATE_STANDBY = 1; + const int STATE_DISABLED = 2; + const int TYPE_MODEM = 0; + const int TYPE_SIM = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigModem.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigModem.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d453cb01c34971607bb013071f9f047bf01ba721 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigModem.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable HardwareConfigModem { + int rilModel; + android.hardware.radio.RadioTechnology rat; + int maxVoiceCalls; + int maxDataCalls; + int maxStandby; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigSim.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigSim.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4c2e31b82a25d4df7fcf066ac2a1e43f2ed7de32 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/HardwareConfigSim.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable HardwareConfigSim { + String modemUuid; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModem.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModem.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bd8ba4734bbc91c125c87d7ffa5bcc4a9135a1d6 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModem.aidl @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@VintfStability +interface IRadioModem { + oneway void enableModem(in int serial, in boolean on); + oneway void getBasebandVersion(in int serial); + /** + * @deprecated use getImei(int serial) + */ + oneway void getDeviceIdentity(in int serial); + oneway void getHardwareConfig(in int serial); + oneway void getModemActivityInfo(in int serial); + oneway void getModemStackStatus(in int serial); + oneway void getRadioCapability(in int serial); + /** + * @deprecated NV APIs are deprecated starting from Android U. + */ + oneway void nvReadItem(in int serial, in android.hardware.radio.modem.NvItem itemId); + oneway void nvResetConfig(in int serial, in android.hardware.radio.modem.ResetNvType resetType); + /** + * @deprecated NV APIs are deprecated starting from Android U. + */ + oneway void nvWriteCdmaPrl(in int serial, in byte[] prl); + /** + * @deprecated NV APIs are deprecated starting from Android U. + */ + oneway void nvWriteItem(in int serial, in android.hardware.radio.modem.NvWriteItem item); + oneway void requestShutdown(in int serial); + oneway void responseAcknowledgement(); + oneway void sendDeviceState(in int serial, in android.hardware.radio.modem.DeviceStateType deviceStateType, in boolean state); + oneway void setRadioCapability(in int serial, in android.hardware.radio.modem.RadioCapability rc); + oneway void setRadioPower(in int serial, in boolean powerOn, in boolean forEmergencyCall, in boolean preferredForEmergencyCall); + oneway void setResponseFunctions(in android.hardware.radio.modem.IRadioModemResponse radioModemResponse, in android.hardware.radio.modem.IRadioModemIndication radioModemIndication); + oneway void getImei(in int serial); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemIndication.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3c068775875bfe27af5556cd4b8a7ccb6bf970e8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemIndication.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@VintfStability +interface IRadioModemIndication { + oneway void hardwareConfigChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.modem.HardwareConfig[] configs); + oneway void modemReset(in android.hardware.radio.RadioIndicationType type, in String reason); + oneway void radioCapabilityIndication(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.modem.RadioCapability rc); + oneway void radioStateChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.modem.RadioState radioState); + oneway void rilConnected(in android.hardware.radio.RadioIndicationType type); + oneway void onImeiMappingChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.modem.ImeiInfo imeiInfo); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemResponse.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b9ef51b34247e9a65b81a4bb4db35d47027737a9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/IRadioModemResponse.aidl @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@VintfStability +interface IRadioModemResponse { + oneway void acknowledgeRequest(in int serial); + oneway void enableModemResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getBasebandVersionResponse(in android.hardware.radio.RadioResponseInfo info, in String version); + /** + * @deprecated use getImeiResponse(RadioResponseInfo responseInfo, ImeiInfo imeiInfo) + */ + oneway void getDeviceIdentityResponse(in android.hardware.radio.RadioResponseInfo info, in String imei, in String imeisv, in String esn, in String meid); + oneway void getHardwareConfigResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.modem.HardwareConfig[] config); + oneway void getModemActivityInfoResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.modem.ActivityStatsInfo activityInfo); + oneway void getModemStackStatusResponse(in android.hardware.radio.RadioResponseInfo info, in boolean isEnabled); + oneway void getRadioCapabilityResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.modem.RadioCapability rc); + /** + * @deprecated NV APIs are deprecated starting from Android U. + */ + oneway void nvReadItemResponse(in android.hardware.radio.RadioResponseInfo info, in String result); + oneway void nvResetConfigResponse(in android.hardware.radio.RadioResponseInfo info); + /** + * @deprecated NV APIs are deprecated starting from Android U. + */ + oneway void nvWriteCdmaPrlResponse(in android.hardware.radio.RadioResponseInfo info); + /** + * @deprecated NV APIs are deprecated starting from Android U. + */ + oneway void nvWriteItemResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void requestShutdownResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendDeviceStateResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setRadioCapabilityResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.modem.RadioCapability rc); + oneway void setRadioPowerResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getImeiResponse(in android.hardware.radio.RadioResponseInfo responseInfo, in @nullable android.hardware.radio.modem.ImeiInfo imeiInfo); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ImeiInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ImeiInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a2df30ddfaed61901a288711746daf7d32717665 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ImeiInfo.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ImeiInfo { + android.hardware.radio.modem.ImeiInfo.ImeiType type; + String imei; + String svn; + @Backing(type="int") @VintfStability + enum ImeiType { + PRIMARY = 1, + SECONDARY = 2, + } +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvItem.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvItem.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f97b9a2017b02dcb260375ca979984d34937a52d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvItem.aidl @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/** + * @hide + * @deprecated NV APIs are deprecated starting from Android U. + */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum NvItem { + CDMA_MEID = 1, + CDMA_MIN = 2, + CDMA_MDN = 3, + CDMA_ACCOLC = 4, + DEVICE_MSL = 11, + RTN_RECONDITIONED_STATUS = 12, + RTN_ACTIVATION_DATE = 13, + RTN_LIFE_TIMER = 14, + RTN_LIFE_CALLS = 15, + RTN_LIFE_DATA_TX = 16, + RTN_LIFE_DATA_RX = 17, + OMADM_HFA_LEVEL = 18, + MIP_PROFILE_NAI = 31, + MIP_PROFILE_HOME_ADDRESS = 32, + MIP_PROFILE_AAA_AUTH = 33, + MIP_PROFILE_HA_AUTH = 34, + MIP_PROFILE_PRI_HA_ADDR = 35, + MIP_PROFILE_SEC_HA_ADDR = 36, + MIP_PROFILE_REV_TUN_PREF = 37, + MIP_PROFILE_HA_SPI = 38, + MIP_PROFILE_AAA_SPI = 39, + MIP_PROFILE_MN_HA_SS = 40, + MIP_PROFILE_MN_AAA_SS = 41, + CDMA_PRL_VERSION = 51, + CDMA_BC10 = 52, + CDMA_BC14 = 53, + CDMA_SO68 = 54, + CDMA_SO73_COP0 = 55, + CDMA_SO73_COP1TO7 = 56, + CDMA_1X_ADVANCED_ENABLED = 57, + CDMA_EHRPD_ENABLED = 58, + CDMA_EHRPD_FORCED = 59, + LTE_BAND_ENABLE_25 = 71, + LTE_BAND_ENABLE_26 = 72, + LTE_BAND_ENABLE_41 = 73, + LTE_SCAN_PRIORITY_25 = 74, + LTE_SCAN_PRIORITY_26 = 75, + LTE_SCAN_PRIORITY_41 = 76, + LTE_HIDDEN_BAND_PRIORITY_25 = 77, + LTE_HIDDEN_BAND_PRIORITY_26 = 78, + LTE_HIDDEN_BAND_PRIORITY_41 = 79, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvWriteItem.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvWriteItem.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c38ceb779aba5c564d2c3a2ca34fae06bc26e2e5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/NvWriteItem.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/** + * @hide + * @deprecated NV APIs are deprecated starting from Android U. + */ +@JavaDerive(toString=true) @VintfStability +parcelable NvWriteItem { + android.hardware.radio.modem.NvItem itemId; + String value; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioCapability.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioCapability.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bc3cfccde4a6ca1c000f957cc0a0bb2c5f2c1d90 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioCapability.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RadioCapability { + int session; + int phase; + int raf; + String logicalModemUuid; + int status; + const int PHASE_CONFIGURED = 0; + const int PHASE_START = 1; + const int PHASE_APPLY = 2; + const int PHASE_UNSOL_RSP = 3; + const int PHASE_FINISH = 4; + const int STATUS_NONE = 0; + const int STATUS_SUCCESS = 1; + const int STATUS_FAIL = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioState.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3383fa4a97cfe464da0385d147743ab8a282bc54 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/RadioState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioState { + OFF = 0, + UNAVAILABLE = 1, + ON = 10, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ResetNvType.aidl b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ResetNvType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b4208b77543239f1d7345f02c6fe817e20573e1f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.modem/3/android/hardware/radio/modem/ResetNvType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.modem; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ResetNvType { + RELOAD, + ERASE, + FACTORY_RESET, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.network/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..749da796685b535fdbdcf9c9d607ef8798bf6196 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/.hash @@ -0,0 +1 @@ +c45c122528c07c449ea08f6eacaace17bb7abc38 diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..667a8a770a8301213de0c4cfc4382ef7301f1a4d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/AccessTechnologySpecificInfo.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union AccessTechnologySpecificInfo { + boolean noinit; + android.hardware.radio.network.Cdma2000RegistrationInfo cdmaInfo; + android.hardware.radio.network.EutranRegistrationInfo eutranInfo; + android.hardware.radio.network.NrVopsInfo ngranNrVopsInfo; + boolean geranDtmSupported; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..67c9349e9e237aa1a6a84caa49e6770c5da932ef --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringInfo.aidl @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable BarringInfo { + int serviceType; + int barringType; + @nullable android.hardware.radio.network.BarringTypeSpecificInfo barringTypeSpecificInfo; + const int BARRING_TYPE_NONE = 0; + const int BARRING_TYPE_CONDITIONAL = 1; + const int BARRING_TYPE_UNCONDITIONAL = 2; + const int SERVICE_TYPE_CS_SERVICE = 0; + const int SERVICE_TYPE_PS_SERVICE = 1; + const int SERVICE_TYPE_CS_VOICE = 2; + const int SERVICE_TYPE_MO_SIGNALLING = 3; + const int SERVICE_TYPE_MO_DATA = 4; + const int SERVICE_TYPE_CS_FALLBACK = 5; + const int SERVICE_TYPE_MMTEL_VOICE = 6; + const int SERVICE_TYPE_MMTEL_VIDEO = 7; + const int SERVICE_TYPE_EMERGENCY = 8; + const int SERVICE_TYPE_SMS = 9; + const int SERVICE_TYPE_OPERATOR_1 = 1001; + const int SERVICE_TYPE_OPERATOR_2 = 1002; + const int SERVICE_TYPE_OPERATOR_3 = 1003; + const int SERVICE_TYPE_OPERATOR_4 = 1004; + const int SERVICE_TYPE_OPERATOR_5 = 1005; + const int SERVICE_TYPE_OPERATOR_6 = 1006; + const int SERVICE_TYPE_OPERATOR_7 = 1007; + const int SERVICE_TYPE_OPERATOR_8 = 1008; + const int SERVICE_TYPE_OPERATOR_9 = 1009; + const int SERVICE_TYPE_OPERATOR_10 = 1010; + const int SERVICE_TYPE_OPERATOR_11 = 1011; + const int SERVICE_TYPE_OPERATOR_12 = 1012; + const int SERVICE_TYPE_OPERATOR_13 = 1013; + const int SERVICE_TYPE_OPERATOR_14 = 1014; + const int SERVICE_TYPE_OPERATOR_15 = 1015; + const int SERVICE_TYPE_OPERATOR_16 = 1016; + const int SERVICE_TYPE_OPERATOR_17 = 1017; + const int SERVICE_TYPE_OPERATOR_18 = 1018; + const int SERVICE_TYPE_OPERATOR_19 = 1019; + const int SERVICE_TYPE_OPERATOR_20 = 1020; + const int SERVICE_TYPE_OPERATOR_21 = 1021; + const int SERVICE_TYPE_OPERATOR_22 = 1022; + const int SERVICE_TYPE_OPERATOR_23 = 1023; + const int SERVICE_TYPE_OPERATOR_24 = 1024; + const int SERVICE_TYPE_OPERATOR_25 = 1025; + const int SERVICE_TYPE_OPERATOR_26 = 1026; + const int SERVICE_TYPE_OPERATOR_27 = 1027; + const int SERVICE_TYPE_OPERATOR_28 = 1028; + const int SERVICE_TYPE_OPERATOR_29 = 1029; + const int SERVICE_TYPE_OPERATOR_30 = 1030; + const int SERVICE_TYPE_OPERATOR_31 = 1031; + const int SERVICE_TYPE_OPERATOR_32 = 1032; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringTypeSpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringTypeSpecificInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..03369b91d4e32e40d1cc59d56718b31217e363f5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/BarringTypeSpecificInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable BarringTypeSpecificInfo { + int factor; + int timeSeconds; + boolean isBarred; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bc9c0baa2414f72c378608254dfb12f6dd9e7940 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Cdma2000RegistrationInfo.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable Cdma2000RegistrationInfo { + boolean cssSupported; + int roamingIndicator; + int systemIsInPrl; + int defaultRoamingIndicator; + const int PRL_INDICATOR_NOT_REGISTERED = (-1) /* -1 */; + const int PRL_INDICATOR_NOT_IN_PRL = 0; + const int PRL_INDICATOR_IN_PRL = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaRoamingType.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaRoamingType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..84532e3842dd1d263d8e4dbe8591a9edfa126708 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaRoamingType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CdmaRoamingType { + HOME_NETWORK, + AFFILIATED_ROAM, + ANY_ROAM, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaSignalStrength.aidl new file mode 100644 index 0000000000000000000000000000000000000000..94430a8760799d9199200671117a30fccc8cf1b1 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CdmaSignalStrength.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSignalStrength { + int dbm; + int ecio; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellConnectionStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellConnectionStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3775a40e084e8f84dd99eec2110042eb3bb63b64 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellConnectionStatus.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CellConnectionStatus { + NONE, + PRIMARY_SERVING, + SECONDARY_SERVING, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentity.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentity.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ba27b395275621d9fe385b891e9fbcafb240ec0e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentity.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union CellIdentity { + boolean noinit; + android.hardware.radio.network.CellIdentityGsm gsm; + android.hardware.radio.network.CellIdentityWcdma wcdma; + android.hardware.radio.network.CellIdentityTdscdma tdscdma; + android.hardware.radio.network.CellIdentityCdma cdma; + android.hardware.radio.network.CellIdentityLte lte; + android.hardware.radio.network.CellIdentityNr nr; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityCdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityCdma.aidl new file mode 100644 index 0000000000000000000000000000000000000000..63571bb53356c09116538f421d842ea3ff6cb737 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityCdma.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellIdentityCdma { + int networkId; + int systemId; + int baseStationId; + int longitude; + int latitude; + android.hardware.radio.network.OperatorInfo operatorNames; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityGsm.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityGsm.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5040f205b833eff2b54c23edea498c770cd9f452 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityGsm.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellIdentityGsm { + String mcc; + String mnc; + int lac; + int cid; + int arfcn; + byte bsic; + android.hardware.radio.network.OperatorInfo operatorNames; + String[] additionalPlmns; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityLte.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityLte.aidl new file mode 100644 index 0000000000000000000000000000000000000000..be7821d2d4954ee8f59082af5ddcf9afe2ab502f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityLte.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellIdentityLte { + String mcc; + String mnc; + int ci; + int pci; + int tac; + int earfcn; + android.hardware.radio.network.OperatorInfo operatorNames; + int bandwidth; + String[] additionalPlmns; + @nullable android.hardware.radio.network.ClosedSubscriberGroupInfo csgInfo; + android.hardware.radio.network.EutranBands[] bands; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityNr.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityNr.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6f4f9a030abcb4d4f459554c83e0832b357ee279 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityNr.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellIdentityNr { + String mcc; + String mnc; + long nci; + int pci; + int tac; + int nrarfcn; + android.hardware.radio.network.OperatorInfo operatorNames; + String[] additionalPlmns; + android.hardware.radio.network.NgranBands[] bands; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityTdscdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityTdscdma.aidl new file mode 100644 index 0000000000000000000000000000000000000000..864a886553811813ddc1d4e02410e780faaea5dc --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityTdscdma.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellIdentityTdscdma { + String mcc; + String mnc; + int lac; + int cid; + int cpid; + int uarfcn; + android.hardware.radio.network.OperatorInfo operatorNames; + String[] additionalPlmns; + @nullable android.hardware.radio.network.ClosedSubscriberGroupInfo csgInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityWcdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityWcdma.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4e762777b9476334e7ec2f968510c3e23cb574c3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellIdentityWcdma.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellIdentityWcdma { + String mcc; + String mnc; + int lac; + int cid; + int psc; + int uarfcn; + android.hardware.radio.network.OperatorInfo operatorNames; + String[] additionalPlmns; + @nullable android.hardware.radio.network.ClosedSubscriberGroupInfo csgInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6bb31b027881e7cc660f09623206c3228366b4a5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfo { + boolean registered; + android.hardware.radio.network.CellConnectionStatus connectionStatus; + android.hardware.radio.network.CellInfoRatSpecificInfo ratSpecificInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoCdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoCdma.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6d76a26b82790bbca08fd2213b254f46b1336840 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoCdma.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfoCdma { + android.hardware.radio.network.CellIdentityCdma cellIdentityCdma; + android.hardware.radio.network.CdmaSignalStrength signalStrengthCdma; + android.hardware.radio.network.EvdoSignalStrength signalStrengthEvdo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoGsm.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoGsm.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2074c2fee063e5ef51aca30971beb21d1bf8f87d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoGsm.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfoGsm { + android.hardware.radio.network.CellIdentityGsm cellIdentityGsm; + android.hardware.radio.network.GsmSignalStrength signalStrengthGsm; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoLte.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoLte.aidl new file mode 100644 index 0000000000000000000000000000000000000000..aa3b31080b277347aa284db0f930e72d20371821 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoLte.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfoLte { + android.hardware.radio.network.CellIdentityLte cellIdentityLte; + android.hardware.radio.network.LteSignalStrength signalStrengthLte; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoNr.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoNr.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a8f49afd67e824d94191a41a16777ced796ba726 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoNr.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfoNr { + android.hardware.radio.network.CellIdentityNr cellIdentityNr; + android.hardware.radio.network.NrSignalStrength signalStrengthNr; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fd3239dbd81334454e8bc442e94503f523fe0a5b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoRatSpecificInfo.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union CellInfoRatSpecificInfo { + android.hardware.radio.network.CellInfoGsm gsm; + android.hardware.radio.network.CellInfoWcdma wcdma; + android.hardware.radio.network.CellInfoTdscdma tdscdma; + android.hardware.radio.network.CellInfoLte lte; + android.hardware.radio.network.CellInfoNr nr; + android.hardware.radio.network.CellInfoCdma cdma; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoTdscdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoTdscdma.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1a03f341d6444d95e0282038e6f1c7f71dbd1fb1 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoTdscdma.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfoTdscdma { + android.hardware.radio.network.CellIdentityTdscdma cellIdentityTdscdma; + android.hardware.radio.network.TdscdmaSignalStrength signalStrengthTdscdma; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoWcdma.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoWcdma.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d02824d9a7c45dc560c222bb03a7a054ff24658b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellInfoWcdma.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellInfoWcdma { + android.hardware.radio.network.CellIdentityWcdma cellIdentityWcdma; + android.hardware.radio.network.WcdmaSignalStrength signalStrengthWcdma; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifier.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifier.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d38494f6a15f36a3c4c6179e6a1e7e2641de140a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifier.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CellularIdentifier { + UNKNOWN = 0, + IMSI = 1, + IMEI = 2, + SUCI = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifierDisclosure.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifierDisclosure.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cb542e860c772cf728788f928802a44dcef63cae --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/CellularIdentifierDisclosure.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CellularIdentifierDisclosure { + String plmn; + android.hardware.radio.network.CellularIdentifier identifier; + android.hardware.radio.network.NasProtocolMessage protocolMessage; + boolean isEmergency; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ClosedSubscriberGroupInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ClosedSubscriberGroupInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b9e6f82f1744226d725550647028379110db73cd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ClosedSubscriberGroupInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ClosedSubscriberGroupInfo { + boolean csgIndication; + String homeNodebName; + int csgIdentity; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ConnectionEvent.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ConnectionEvent.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1529512695f9f987b74dce85bfcd02182a073f03 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/ConnectionEvent.aidl @@ -0,0 +1,54 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ConnectionEvent { + CS_SIGNALLING_GSM = 0, + PS_SIGNALLING_GPRS = 1, + CS_SIGNALLING_3G = 2, + PS_SIGNALLING_3G = 3, + NAS_SIGNALLING_LTE = 4, + AS_SIGNALLING_LTE = 5, + VOLTE_SIP = 6, + VOLTE_SIP_SOS = 7, + VOLTE_RTP = 8, + VOLTE_RTP_SOS = 9, + NAS_SIGNALLING_5G = 10, + AS_SIGNALLING_5G = 11, + VONR_SIP = 12, + VONR_SIP_SOS = 13, + VONR_RTP = 14, + VONR_RTP_SOS = 15, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Domain.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Domain.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0de7e20855616a4a00e7606dd76387c9d1873e24 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/Domain.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum Domain { + CS = (1 << 0) /* 1 */, + PS = (1 << 1) /* 2 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c5b067e38b1b30e0b77c322e0f71b0338272b83a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EmergencyMode { + EMERGENCY_WWAN = 1, + EMERGENCY_WLAN = 2, + EMERGENCY_CALLBACK = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyNetworkScanTrigger.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyNetworkScanTrigger.aidl new file mode 100644 index 0000000000000000000000000000000000000000..471c7a0a93ca0265acbe2a1f37c0f89b430c915b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyNetworkScanTrigger.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EmergencyNetworkScanTrigger { + android.hardware.radio.AccessNetwork[] accessNetwork; + android.hardware.radio.network.EmergencyScanType scanType; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyRegResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyRegResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3b8083dacc7851f9aafd9d3b949e4a3d3dfa3912 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyRegResult.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EmergencyRegResult { + android.hardware.radio.AccessNetwork accessNetwork; + android.hardware.radio.network.RegState regState; + android.hardware.radio.network.Domain emcDomain; + boolean isVopsSupported; + boolean isEmcBearerSupported; + byte nwProvidedEmc; + byte nwProvidedEmf; + String mcc = ""; + String mnc = ""; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyScanType.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyScanType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0681a73005d684ffdce96581191da41dd4b5ec12 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EmergencyScanType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EmergencyScanType { + NO_PREFERENCE = 0, + LIMITED_SERVICE = 1, + FULL_SERVICE = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranBands.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranBands.aidl new file mode 100644 index 0000000000000000000000000000000000000000..82257ecffe026f3454370b6648258b361328046d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranBands.aidl @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EutranBands { + BAND_1 = 1, + BAND_2 = 2, + BAND_3 = 3, + BAND_4 = 4, + BAND_5 = 5, + BAND_6 = 6, + BAND_7 = 7, + BAND_8 = 8, + BAND_9 = 9, + BAND_10 = 10, + BAND_11 = 11, + BAND_12 = 12, + BAND_13 = 13, + BAND_14 = 14, + BAND_17 = 17, + BAND_18 = 18, + BAND_19 = 19, + BAND_20 = 20, + BAND_21 = 21, + BAND_22 = 22, + BAND_23 = 23, + BAND_24 = 24, + BAND_25 = 25, + BAND_26 = 26, + BAND_27 = 27, + BAND_28 = 28, + BAND_30 = 30, + BAND_31 = 31, + BAND_33 = 33, + BAND_34 = 34, + BAND_35 = 35, + BAND_36 = 36, + BAND_37 = 37, + BAND_38 = 38, + BAND_39 = 39, + BAND_40 = 40, + BAND_41 = 41, + BAND_42 = 42, + BAND_43 = 43, + BAND_44 = 44, + BAND_45 = 45, + BAND_46 = 46, + BAND_47 = 47, + BAND_48 = 48, + BAND_65 = 65, + BAND_66 = 66, + BAND_68 = 68, + BAND_70 = 70, + BAND_49 = 49, + BAND_50 = 50, + BAND_51 = 51, + BAND_52 = 52, + BAND_53 = 53, + BAND_71 = 71, + BAND_72 = 72, + BAND_73 = 73, + BAND_74 = 74, + BAND_85 = 85, + BAND_87 = 87, + BAND_88 = 88, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranRegistrationInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranRegistrationInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bb34fe10d7da78694101946dc47f003560650dab --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EutranRegistrationInfo.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EutranRegistrationInfo { + android.hardware.radio.network.LteVopsInfo lteVopsInfo; + android.hardware.radio.network.NrIndicators nrIndicators; + android.hardware.radio.network.EutranRegistrationInfo.AttachResultType lteAttachResultType; + int extraInfo; + const int EXTRA_CSFB_NOT_PREFERRED = (1 << 0) /* 1 */; + const int EXTRA_SMS_ONLY = (1 << 1) /* 2 */; + enum AttachResultType { + NONE, + EPS_ONLY, + COMBINED, + } +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EvdoSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EvdoSignalStrength.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e97e17dab39091b93add7f89f06754cd4e0abe80 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/EvdoSignalStrength.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EvdoSignalStrength { + int dbm; + int ecio; + int signalNoiseRatio; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GeranBands.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GeranBands.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ee0d4190607165a5f453aafdb7dd9c851e17ec62 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GeranBands.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum GeranBands { + BAND_T380 = 1, + BAND_T410 = 2, + BAND_450 = 3, + BAND_480 = 4, + BAND_710 = 5, + BAND_750 = 6, + BAND_T810 = 7, + BAND_850 = 8, + BAND_P900 = 9, + BAND_E900 = 10, + BAND_R900 = 11, + BAND_DCS1800 = 12, + BAND_PCS1900 = 13, + BAND_ER900 = 14, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GsmSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GsmSignalStrength.aidl new file mode 100644 index 0000000000000000000000000000000000000000..65847ef93ff24032f4f015a7399227d54e743c50 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/GsmSignalStrength.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable GsmSignalStrength { + int signalStrength; + int bitErrorRate; + int timingAdvance; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetwork.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetwork.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8af617f6fcf3ecec7b056c0c191d50cfaadbca8f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetwork.aidl @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@VintfStability +interface IRadioNetwork { + oneway void getAllowedNetworkTypesBitmap(in int serial); + oneway void getAvailableBandModes(in int serial); + oneway void getAvailableNetworks(in int serial); + oneway void getBarringInfo(in int serial); + oneway void getCdmaRoamingPreference(in int serial); + oneway void getCellInfoList(in int serial); + oneway void getDataRegistrationState(in int serial); + /** + * @deprecated Deprecated starting from Android U. + */ + oneway void getImsRegistrationState(in int serial); + oneway void getNetworkSelectionMode(in int serial); + oneway void getOperator(in int serial); + oneway void getSignalStrength(in int serial); + oneway void getSystemSelectionChannels(in int serial); + oneway void getVoiceRadioTechnology(in int serial); + oneway void getVoiceRegistrationState(in int serial); + oneway void isNrDualConnectivityEnabled(in int serial); + oneway void responseAcknowledgement(); + oneway void setAllowedNetworkTypesBitmap(in int serial, in int networkTypeBitmap); + oneway void setBandMode(in int serial, in android.hardware.radio.network.RadioBandMode mode); + oneway void setBarringPassword(in int serial, in String facility, in String oldPassword, in String newPassword); + oneway void setCdmaRoamingPreference(in int serial, in android.hardware.radio.network.CdmaRoamingType type); + oneway void setCellInfoListRate(in int serial, in int rate); + oneway void setIndicationFilter(in int serial, in int indicationFilter); + oneway void setLinkCapacityReportingCriteria(in int serial, in int hysteresisMs, in int hysteresisDlKbps, in int hysteresisUlKbps, in int[] thresholdsDownlinkKbps, in int[] thresholdsUplinkKbps, in android.hardware.radio.AccessNetwork accessNetwork); + oneway void setLocationUpdates(in int serial, in boolean enable); + oneway void setNetworkSelectionModeAutomatic(in int serial); + oneway void setNetworkSelectionModeManual(in int serial, in String operatorNumeric, in android.hardware.radio.AccessNetwork ran); + oneway void setNrDualConnectivityState(in int serial, in android.hardware.radio.network.NrDualConnectivityState nrDualConnectivityState); + oneway void setResponseFunctions(in android.hardware.radio.network.IRadioNetworkResponse radioNetworkResponse, in android.hardware.radio.network.IRadioNetworkIndication radioNetworkIndication); + oneway void setSignalStrengthReportingCriteria(in int serial, in android.hardware.radio.network.SignalThresholdInfo[] signalThresholdInfos); + oneway void setSuppServiceNotifications(in int serial, in boolean enable); + oneway void setSystemSelectionChannels(in int serial, in boolean specifyChannels, in android.hardware.radio.network.RadioAccessSpecifier[] specifiers); + oneway void startNetworkScan(in int serial, in android.hardware.radio.network.NetworkScanRequest request); + oneway void stopNetworkScan(in int serial); + oneway void supplyNetworkDepersonalization(in int serial, in String netPin); + oneway void setUsageSetting(in int serial, in android.hardware.radio.network.UsageSetting usageSetting); + oneway void getUsageSetting(in int serial); + oneway void setEmergencyMode(int serial, in android.hardware.radio.network.EmergencyMode emcModeType); + oneway void triggerEmergencyNetworkScan(int serial, in android.hardware.radio.network.EmergencyNetworkScanTrigger request); + oneway void cancelEmergencyNetworkScan(int serial, boolean resetScan); + oneway void exitEmergencyMode(in int serial); + oneway void setNullCipherAndIntegrityEnabled(in int serial, in boolean enabled); + oneway void isNullCipherAndIntegrityEnabled(in int serial); + oneway void isN1ModeEnabled(in int serial); + oneway void setN1ModeEnabled(in int serial, boolean enable); + oneway void isCellularIdentifierTransparencyEnabled(in int serial); + oneway void setCellularIdentifierTransparencyEnabled(in int serial, in boolean enabled); + oneway void setSecurityAlgorithmsUpdatedEnabled(in int serial, boolean enable); + oneway void isSecurityAlgorithmsUpdatedEnabled(in int serial); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkIndication.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8eea14f422595caedba233957a163678751bf98b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkIndication.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@VintfStability +interface IRadioNetworkIndication { + oneway void barringInfoChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.CellIdentity cellIdentity, in android.hardware.radio.network.BarringInfo[] barringInfos); + oneway void cdmaPrlChanged(in android.hardware.radio.RadioIndicationType type, in int version); + oneway void cellInfoList(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.CellInfo[] records); + oneway void currentLinkCapacityEstimate(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.LinkCapacityEstimate lce); + oneway void currentPhysicalChannelConfigs(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.PhysicalChannelConfig[] configs); + oneway void currentSignalStrength(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.SignalStrength signalStrength); + oneway void imsNetworkStateChanged(in android.hardware.radio.RadioIndicationType type); + oneway void networkScanResult(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.NetworkScanResult result); + oneway void networkStateChanged(in android.hardware.radio.RadioIndicationType type); + oneway void nitzTimeReceived(in android.hardware.radio.RadioIndicationType type, in String nitzTime, in long receivedTimeMs, in long ageMs); + oneway void registrationFailed(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.CellIdentity cellIdentity, in String chosenPlmn, in int domain, in int causeCode, in int additionalCauseCode); + oneway void restrictedStateChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.PhoneRestrictedState state); + oneway void suppSvcNotify(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.SuppSvcNotification suppSvc); + oneway void voiceRadioTechChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.RadioTechnology rat); + oneway void emergencyNetworkScanResult(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.EmergencyRegResult result); + oneway void cellularIdentifierDisclosed(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.CellularIdentifierDisclosure disclosure); + oneway void securityAlgorithmsUpdated(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.network.SecurityAlgorithmUpdate securityAlgorithmUpdate); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkResponse.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e7f291879aa8de136b9ab234522cfde6187ab8cf --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IRadioNetworkResponse.aidl @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@VintfStability +interface IRadioNetworkResponse { + oneway void acknowledgeRequest(in int serial); + oneway void getAllowedNetworkTypesBitmapResponse(in android.hardware.radio.RadioResponseInfo info, in int networkTypeBitmap); + oneway void getAvailableBandModesResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.RadioBandMode[] bandModes); + oneway void getAvailableNetworksResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.OperatorInfo[] networkInfos); + oneway void getBarringInfoResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.CellIdentity cellIdentity, in android.hardware.radio.network.BarringInfo[] barringInfos); + oneway void getCdmaRoamingPreferenceResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.CdmaRoamingType type); + oneway void getCellInfoListResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.CellInfo[] cellInfo); + oneway void getDataRegistrationStateResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.RegStateResult dataRegResponse); + /** + * @deprecated Deprecated starting from Android U. + */ + oneway void getImsRegistrationStateResponse(in android.hardware.radio.RadioResponseInfo info, in boolean isRegistered, in android.hardware.radio.RadioTechnologyFamily ratFamily); + oneway void getNetworkSelectionModeResponse(in android.hardware.radio.RadioResponseInfo info, in boolean manual); + oneway void getOperatorResponse(in android.hardware.radio.RadioResponseInfo info, in String longName, in String shortName, in String numeric); + oneway void getSignalStrengthResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.SignalStrength signalStrength); + oneway void getSystemSelectionChannelsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.RadioAccessSpecifier[] specifiers); + oneway void getVoiceRadioTechnologyResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.RadioTechnology rat); + oneway void getVoiceRegistrationStateResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.RegStateResult voiceRegResponse); + oneway void isNrDualConnectivityEnabledResponse(in android.hardware.radio.RadioResponseInfo info, in boolean isEnabled); + oneway void setAllowedNetworkTypesBitmapResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setBandModeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setBarringPasswordResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCdmaRoamingPreferenceResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCellInfoListRateResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setIndicationFilterResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setLinkCapacityReportingCriteriaResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setLocationUpdatesResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setNetworkSelectionModeAutomaticResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setNetworkSelectionModeManualResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setNrDualConnectivityStateResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSignalStrengthReportingCriteriaResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSuppServiceNotificationsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSystemSelectionChannelsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void startNetworkScanResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void stopNetworkScanResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void supplyNetworkDepersonalizationResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void setUsageSettingResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getUsageSettingResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.UsageSetting usageSetting); + oneway void setEmergencyModeResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.network.EmergencyRegResult regState); + oneway void triggerEmergencyNetworkScanResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void exitEmergencyModeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void cancelEmergencyNetworkScanResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setNullCipherAndIntegrityEnabledResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void isNullCipherAndIntegrityEnabledResponse(in android.hardware.radio.RadioResponseInfo info, in boolean isEnabled); + oneway void isN1ModeEnabledResponse(in android.hardware.radio.RadioResponseInfo info, boolean isEnabled); + oneway void setN1ModeEnabledResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void isCellularIdentifierTransparencyEnabledResponse(in android.hardware.radio.RadioResponseInfo info, boolean isEnabled); + oneway void setCellularIdentifierTransparencyEnabledResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setSecurityAlgorithmsUpdatedEnabledResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void isSecurityAlgorithmsUpdatedEnabledResponse(in android.hardware.radio.RadioResponseInfo info, in boolean isEnabled); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IndicationFilter.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IndicationFilter.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7847fbe4c3f1d91c1f6405875c27e5a249b4b601 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/IndicationFilter.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum IndicationFilter { + NONE = 0, + ALL = (~0) /* -1 */, + SIGNAL_STRENGTH = (1 << 0) /* 1 */, + FULL_NETWORK_STATE = (1 << 1) /* 2 */, + DATA_CALL_DORMANCY_CHANGED = (1 << 2) /* 4 */, + LINK_CAPACITY_ESTIMATE = (1 << 3) /* 8 */, + PHYSICAL_CHANNEL_CONFIG = (1 << 4) /* 16 */, + REGISTRATION_FAILURE = (1 << 5) /* 32 */, + BARRING_INFO = (1 << 6) /* 64 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LceDataInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LceDataInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6dc6d3ecc6b2859e8659ce47f3b051aaf7ffdbe9 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LceDataInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LceDataInfo { + int lastHopCapacityKbps; + byte confidenceLevel; + boolean lceSuspended; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LinkCapacityEstimate.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LinkCapacityEstimate.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3fc4b5c5cd549d1737e99a2599a1aba7eaf4e577 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LinkCapacityEstimate.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LinkCapacityEstimate { + int downlinkCapacityKbps; + int uplinkCapacityKbps; + int secondaryDownlinkCapacityKbps; + int secondaryUplinkCapacityKbps; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteSignalStrength.aidl new file mode 100644 index 0000000000000000000000000000000000000000..eb2ca28e13b57dd13e1ba7410bac6097b9d7f502 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteSignalStrength.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LteSignalStrength { + int signalStrength; + int rsrp; + int rsrq; + int rssnr; + int cqi; + int timingAdvance; + int cqiTableIndex; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteVopsInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteVopsInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f8d3aa19077a924718b94a8f7b66584fad1d82e3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/LteVopsInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LteVopsInfo { + boolean isVopsSupported; + boolean isEmcBearerSupported; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NasProtocolMessage.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NasProtocolMessage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4fbc802873981a61ef1fed8297595c2ecd707413 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NasProtocolMessage.aidl @@ -0,0 +1,50 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum NasProtocolMessage { + UNKNOWN = 0, + ATTACH_REQUEST = 1, + IDENTITY_RESPONSE = 2, + DETACH_REQUEST = 3, + TRACKING_AREA_UPDATE_REQUEST = 4, + LOCATION_UPDATE_REQUEST = 5, + AUTHENTICATION_AND_CIPHERING_RESPONSE = 6, + REGISTRATION_REQUEST = 7, + DEREGISTRATION_REQUEST = 8, + CM_REESTABLISHMENT_REQUEST = 9, + CM_SERVICE_REQUEST = 10, + IMSI_DETACH_INDICATION = 11, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanRequest.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..60eaf777a1d031d5637a7811f5bd1d940299f501 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanRequest.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable NetworkScanRequest { + int type; + int interval; + android.hardware.radio.network.RadioAccessSpecifier[] specifiers; + int maxSearchTime; + boolean incrementalResults; + int incrementalResultsPeriodicity; + String[] mccMncs; + const int RADIO_ACCESS_SPECIFIER_MAX_SIZE = 8; + const int INCREMENTAL_RESULTS_PREIODICITY_RANGE_MIN = 1; + const int INCREMENTAL_RESULTS_PREIODICITY_RANGE_MAX = 10; + const int MAX_SEARCH_TIME_RANGE_MIN = 60; + const int MAX_SEARCH_TIME_RANGE_MAX = 3600; + const int SCAN_INTERVAL_RANGE_MIN = 5; + const int SCAN_INTERVAL_RANGE_MAX = 300; + const int SCAN_TYPE_ONE_SHOT = 0; + const int SCAN_TYPE_PERIODIC = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..695a194485f023e4cd50e4c2f9c56b25641c2639 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NetworkScanResult.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable NetworkScanResult { + int status; + android.hardware.radio.RadioError error; + android.hardware.radio.network.CellInfo[] networkInfos; + const int SCAN_STATUS_PARTIAL = 1; + const int SCAN_STATUS_COMPLETE = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NgranBands.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NgranBands.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fb939df0727f8849953d6d716a6d45d228f66882 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NgranBands.aidl @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum NgranBands { + BAND_1 = 1, + BAND_2 = 2, + BAND_3 = 3, + BAND_5 = 5, + BAND_7 = 7, + BAND_8 = 8, + BAND_12 = 12, + BAND_14 = 14, + BAND_18 = 18, + BAND_20 = 20, + BAND_25 = 25, + BAND_26 = 26, + BAND_28 = 28, + BAND_29 = 29, + BAND_30 = 30, + BAND_34 = 34, + BAND_38 = 38, + BAND_39 = 39, + BAND_40 = 40, + BAND_41 = 41, + BAND_46 = 46, + BAND_48 = 48, + BAND_50 = 50, + BAND_51 = 51, + BAND_53 = 53, + BAND_65 = 65, + BAND_66 = 66, + BAND_70 = 70, + BAND_71 = 71, + BAND_74 = 74, + BAND_75 = 75, + BAND_76 = 76, + BAND_77 = 77, + BAND_78 = 78, + BAND_79 = 79, + BAND_80 = 80, + BAND_81 = 81, + BAND_82 = 82, + BAND_83 = 83, + BAND_84 = 84, + BAND_86 = 86, + BAND_89 = 89, + BAND_90 = 90, + BAND_91 = 91, + BAND_92 = 92, + BAND_93 = 93, + BAND_94 = 94, + BAND_95 = 95, + BAND_96 = 96, + BAND_257 = 257, + BAND_258 = 258, + BAND_260 = 260, + BAND_261 = 261, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrDualConnectivityState.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrDualConnectivityState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7af15a7ca8219d4ce860060fc89f3192f68987cb --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrDualConnectivityState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="byte") @JavaDerive(toString=true) @VintfStability +enum NrDualConnectivityState { + ENABLE = 1, + DISABLE = 2, + DISABLE_IMMEDIATE = 3, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrIndicators.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrIndicators.aidl new file mode 100644 index 0000000000000000000000000000000000000000..efcd6d3047cad10e4cd8685c4b2a92a35a37c6bf --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrIndicators.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable NrIndicators { + boolean isEndcAvailable; + boolean isDcNrRestricted; + boolean isNrAvailable; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrSignalStrength.aidl new file mode 100644 index 0000000000000000000000000000000000000000..11e7356a44d9ff0738b1d6bfcaf61c62d5d3473e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrSignalStrength.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable NrSignalStrength { + int ssRsrp; + int ssRsrq; + int ssSinr; + int csiRsrp; + int csiRsrq; + int csiSinr; + int csiCqiTableIndex; + byte[] csiCqiReport; + int timingAdvance = 0x7FFFFFFF; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrVopsInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrVopsInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..61146aa6e21edf5a3debf0f6529193ed56828f26 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/NrVopsInfo.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable NrVopsInfo { + byte vopsSupported; + byte emcSupported; + byte emfSupported; + const byte EMC_INDICATOR_NOT_SUPPORTED = 0; + const byte EMC_INDICATOR_NR_CONNECTED_TO_5GCN = 1; + const byte EMC_INDICATOR_EUTRA_CONNECTED_TO_5GCN = 2; + const byte EMC_INDICATOR_BOTH_NR_EUTRA_CONNECTED_TO_5GCN = 3; + const byte EMF_INDICATOR_NOT_SUPPORTED = 0; + const byte EMF_INDICATOR_NR_CONNECTED_TO_5GCN = 1; + const byte EMF_INDICATOR_EUTRA_CONNECTED_TO_5GCN = 2; + const byte EMF_INDICATOR_BOTH_NR_EUTRA_CONNECTED_TO_5GCN = 3; + const byte VOPS_INDICATOR_VOPS_NOT_SUPPORTED = 0; + const byte VOPS_INDICATOR_VOPS_OVER_3GPP = 1; + const byte VOPS_INDICATOR_VOPS_OVER_NON_3GPP = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/OperatorInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/OperatorInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..abe2bea22325d3339e5f9f1631f8c27e48d145ae --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/OperatorInfo.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable OperatorInfo { + String alphaLong; + String alphaShort; + String operatorNumeric; + int status; + const int STATUS_UNKNOWN = 0; + const int STATUS_AVAILABLE = 1; + const int STATUS_CURRENT = 2; + const int STATUS_FORBIDDEN = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhoneRestrictedState.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhoneRestrictedState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..44cab0e00075c140cc005f6fc1e73de1e6f41638 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhoneRestrictedState.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum PhoneRestrictedState { + NONE = 0x00, + CS_EMERGENCY = 0x01, + CS_NORMAL = 0x02, + CS_ALL = 0x04, + PS_ALL = 0x10, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfig.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7d64f7e92e375b687cd4ab078eb5563ce98cbeab --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfig.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable PhysicalChannelConfig { + android.hardware.radio.network.CellConnectionStatus status; + android.hardware.radio.RadioTechnology rat; + int downlinkChannelNumber; + int uplinkChannelNumber; + int cellBandwidthDownlinkKhz; + int cellBandwidthUplinkKhz; + int[] contextIds; + int physicalCellId; + android.hardware.radio.network.PhysicalChannelConfigBand band; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfigBand.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfigBand.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2e50e67627ed26016bc5c726b438ca7f49d854b0 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/PhysicalChannelConfigBand.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union PhysicalChannelConfigBand { + boolean noinit; + android.hardware.radio.network.GeranBands geranBand; + android.hardware.radio.network.UtranBands utranBand; + android.hardware.radio.network.EutranBands eutranBand; + android.hardware.radio.network.NgranBands ngranBand; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifier.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifier.aidl new file mode 100644 index 0000000000000000000000000000000000000000..82292073591fdd5c91e60fa6223a2d99c0f49c66 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifier.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RadioAccessSpecifier { + android.hardware.radio.AccessNetwork accessNetwork; + android.hardware.radio.network.RadioAccessSpecifierBands bands; + int[] channels; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifierBands.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifierBands.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9ba420e8917d50c43e23cd4ffaae85e5f6a616ea --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioAccessSpecifierBands.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +union RadioAccessSpecifierBands { + boolean noinit; + android.hardware.radio.network.GeranBands[] geranBands; + android.hardware.radio.network.UtranBands[] utranBands; + android.hardware.radio.network.EutranBands[] eutranBands; + android.hardware.radio.network.NgranBands[] ngranBands; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioBandMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioBandMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6058e3069680a73c1f84f3dec2b2148c3a6749a7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RadioBandMode.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioBandMode { + BAND_MODE_UNSPECIFIED, + BAND_MODE_EURO, + BAND_MODE_USA, + BAND_MODE_JPN, + BAND_MODE_AUS, + BAND_MODE_AUS_2, + BAND_MODE_CELL_800, + BAND_MODE_PCS, + BAND_MODE_JTACS, + BAND_MODE_KOREA_PCS, + BAND_MODE_5_450M, + BAND_MODE_IMT2000, + BAND_MODE_7_700M_2, + BAND_MODE_8_1800M, + BAND_MODE_9_900M, + BAND_MODE_10_800M_2, + BAND_MODE_EURO_PAMR_400M, + BAND_MODE_AWS, + BAND_MODE_USA_2500M, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegState.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f11b91114ca8f73be501d633897d1b650e296a44 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegState.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RegState { + NOT_REG_MT_NOT_SEARCHING_OP = 0, + REG_HOME = 1, + NOT_REG_MT_SEARCHING_OP = 2, + REG_DENIED = 3, + UNKNOWN = 4, + REG_ROAMING = 5, + NOT_REG_MT_NOT_SEARCHING_OP_EM = 10, + NOT_REG_MT_SEARCHING_OP_EM = 12, + REG_DENIED_EM = 13, + UNKNOWN_EM = 14, + REG_EM = 20, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegStateResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegStateResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..625d9702c822768efba697dcd639d9080fbddd3a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegStateResult.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RegStateResult { + android.hardware.radio.network.RegState regState; + android.hardware.radio.RadioTechnology rat; + android.hardware.radio.network.RegistrationFailCause reasonForDenial; + android.hardware.radio.network.CellIdentity cellIdentity; + String registeredPlmn; + android.hardware.radio.network.AccessTechnologySpecificInfo accessTechnologySpecificInfo; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegistrationFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegistrationFailCause.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fcc079ec0f1179b22f3bdcddcd23e4dadfe8d533 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/RegistrationFailCause.aidl @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RegistrationFailCause { + NONE = 0, + IMSI_UNKNOWN_IN_HLR = 2, + ILLEGAL_MS = 3, + IMSI_UNKNOWN_IN_VLR = 4, + IMEI_NOT_ACCEPTED = 5, + ILLEGAL_ME = 6, + GPRS_SERVICES_NOT_ALLOWED = 7, + GPRS_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 8, + MS_IDENTITY_CANNOT_BE_DERIVED_BY_NETWORK = 9, + IMPLICITLY_DETACHED = 10, + PLMN_NOT_ALLOWED = 11, + LOCATION_AREA_NOT_ALLOWED = 12, + ROAMING_NOT_ALLOWED = 13, + GPRS_SERVICES_NOT_ALLOWED_IN_PLMN = 14, + NO_SUITABLE_CELLS = 15, + /** + * @deprecated MSC_TEMPORARILY_NOT_REACHABLE value is wrong and should not be used. Use MSC_TEMP_NOT_REACHABLE instead. + */ + MSC_TEMPORARILY_NOT_REACHABLE = 15, + MSC_TEMP_NOT_REACHABLE = 16, + NETWORK_FAILURE = 17, + MAC_FAILURE = 20, + SYNC_FAILURE = 21, + CONGESTION = 22, + GSM_AUTHENTICATION_UNACCEPTABLE = 23, + NOT_AUTHORIZED_FOR_THIS_CSG = 25, + SMS_PROVIDED_BY_GPRS_IN_ROUTING_AREA, + SERVICE_OPTION_NOT_SUPPORTED = 32, + SERVICE_OPTION_NOT_SUBSCRIBED = 33, + SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER = 34, + CALL_CANNOT_BE_IDENTIFIED = 38, + NO_PDP_CONTEXT_ACTIVATED = 40, + RETRY_UPON_ENTRY_INTO_NEW_CELL_1 = 48, + RETRY_UPON_ENTRY_INTO_NEW_CELL_2 = 49, + RETRY_UPON_ENTRY_INTO_NEW_CELL_3 = 50, + RETRY_UPON_ENTRY_INTO_NEW_CELL_4 = 51, + RETRY_UPON_ENTRY_INTO_NEW_CELL_5 = 52, + RETRY_UPON_ENTRY_INTO_NEW_CELL_6 = 53, + RETRY_UPON_ENTRY_INTO_NEW_CELL_7 = 54, + RETRY_UPON_ENTRY_INTO_NEW_CELL_8 = 55, + RETRY_UPON_ENTRY_INTO_NEW_CELL_9 = 56, + RETRY_UPON_ENTRY_INTO_NEW_CELL_10 = 57, + RETRY_UPON_ENTRY_INTO_NEW_CELL_11 = 58, + RETRY_UPON_ENTRY_INTO_NEW_CELL_12 = 59, + RETRY_UPON_ENTRY_INTO_NEW_CELL_13 = 60, + RETRY_UPON_ENTRY_INTO_NEW_CELL_14 = 61, + RETRY_UPON_ENTRY_INTO_NEW_CELL_15 = 62, + RETRY_UPON_ENTRY_INTO_NEW_CELL_16 = 63, + SEMANTICALLY_INCORRECT_MESSAGE = 95, + INVALID_MANDATORY_INFORMATION = 96, + MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 97, + MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98, + INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 99, + CONDITIONAL_IE_ERROR = 100, + MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101, + PROTOCOL_ERROR_UNSPECIFIED = 111, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithm.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithm.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c3333bf1909cc767148ae5f68b35f225b8a83eb2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithm.aidl @@ -0,0 +1,81 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum SecurityAlgorithm { + A50 = 0, + A51 = 1, + A52 = 2, + A53 = 3, + A54 = 4, + GEA0 = 14, + GEA1 = 15, + GEA2 = 16, + GEA3 = 17, + GEA4 = 18, + GEA5 = 19, + UEA0 = 29, + UEA1 = 30, + UEA2 = 31, + EEA0 = 41, + EEA1 = 42, + EEA2 = 43, + EEA3 = 44, + NEA0 = 55, + NEA1 = 56, + NEA2 = 57, + NEA3 = 58, + SIP_NO_IPSEC_CONFIG = 66, + IMS_NULL = 67, + SIP_NULL = 68, + AES_GCM = 69, + AES_GMAC = 70, + AES_CBC = 71, + DES_EDE3_CBC = 72, + AES_EDE3_CBC = 73, + HMAC_SHA1_96 = 74, + HMAC_MD5_96 = 75, + RTP = 85, + SRTP_NULL = 86, + SRTP_AES_COUNTER = 87, + SRTP_AES_F8 = 88, + SRTP_HMAC_SHA1 = 89, + ENCR_AES_GCM_16 = 99, + ENCR_AES_CBC = 100, + AUTH_HMAC_SHA2_256_128 = 101, + UNKNOWN = 113, + OTHER = 114, + ORYX = 124, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithmUpdate.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithmUpdate.aidl new file mode 100644 index 0000000000000000000000000000000000000000..73ad18083d218b18dfc8bd856a504eafafe0f8df --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SecurityAlgorithmUpdate.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SecurityAlgorithmUpdate { + android.hardware.radio.network.ConnectionEvent connectionEvent; + android.hardware.radio.network.SecurityAlgorithm encryption; + android.hardware.radio.network.SecurityAlgorithm integrity; + boolean isUnprotectedEmergency; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalStrength.aidl new file mode 100644 index 0000000000000000000000000000000000000000..da7db9a2aeba5cf0ce2d12fd6a48b4f7b668eefb --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalStrength.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SignalStrength { + android.hardware.radio.network.GsmSignalStrength gsm; + android.hardware.radio.network.CdmaSignalStrength cdma; + android.hardware.radio.network.EvdoSignalStrength evdo; + android.hardware.radio.network.LteSignalStrength lte; + android.hardware.radio.network.TdscdmaSignalStrength tdscdma; + android.hardware.radio.network.WcdmaSignalStrength wcdma; + android.hardware.radio.network.NrSignalStrength nr; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalThresholdInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalThresholdInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..77b48313594be3a3ed06b927d3ccf585001c2743 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SignalThresholdInfo.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SignalThresholdInfo { + int signalMeasurement; + int hysteresisMs; + int hysteresisDb; + int[] thresholds; + boolean isEnabled; + android.hardware.radio.AccessNetwork ran; + const int SIGNAL_MEASUREMENT_TYPE_RSSI = 1; + const int SIGNAL_MEASUREMENT_TYPE_RSCP = 2; + const int SIGNAL_MEASUREMENT_TYPE_RSRP = 3; + const int SIGNAL_MEASUREMENT_TYPE_RSRQ = 4; + const int SIGNAL_MEASUREMENT_TYPE_RSSNR = 5; + const int SIGNAL_MEASUREMENT_TYPE_SSRSRP = 6; + const int SIGNAL_MEASUREMENT_TYPE_SSRSRQ = 7; + const int SIGNAL_MEASUREMENT_TYPE_SSSINR = 8; + const int SIGNAL_MEASUREMENT_TYPE_ECNO = 9; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SuppSvcNotification.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SuppSvcNotification.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5192eaea07521c547eb2ed72576103eb5bcb482b --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/SuppSvcNotification.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SuppSvcNotification { + boolean isMT; + int code; + int index; + int type; + String number; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/TdscdmaSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/TdscdmaSignalStrength.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fe209e5c779d3d230cd1d28c62436fb46ce949a5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/TdscdmaSignalStrength.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable TdscdmaSignalStrength { + int signalStrength; + int bitErrorRate; + int rscp; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UsageSetting.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UsageSetting.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a6f4d132ae02ccd7b2c209ab17822348962c262f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UsageSetting.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum UsageSetting { + VOICE_CENTRIC = 1, + DATA_CENTRIC = 2, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UtranBands.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UtranBands.aidl new file mode 100644 index 0000000000000000000000000000000000000000..977afe3d98a0bd8ad3b10b2cfce9c17b750fd321 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/UtranBands.aidl @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum UtranBands { + BAND_1 = 1, + BAND_2 = 2, + BAND_3 = 3, + BAND_4 = 4, + BAND_5 = 5, + BAND_6 = 6, + BAND_7 = 7, + BAND_8 = 8, + BAND_9 = 9, + BAND_10 = 10, + BAND_11 = 11, + BAND_12 = 12, + BAND_13 = 13, + BAND_14 = 14, + BAND_19 = 19, + BAND_20 = 20, + BAND_21 = 21, + BAND_22 = 22, + BAND_25 = 25, + BAND_26 = 26, + BAND_A = 101, + BAND_B = 102, + BAND_C = 103, + BAND_D = 104, + BAND_E = 105, + BAND_F = 106, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/WcdmaSignalStrength.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/WcdmaSignalStrength.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b765ab6ddc6fdff7c482fae42c1fb7d86dd5c7e4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.network/3/android/hardware/radio/network/WcdmaSignalStrength.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.network; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable WcdmaSignalStrength { + int signalStrength; + int bitErrorRate; + int rscp; + int ecno; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/ConnectionEvent.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/ConnectionEvent.aidl index eedb8edefa5ba56119c55aa6cb4c220abc793422..1529512695f9f987b74dce85bfcd02182a073f03 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/ConnectionEvent.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/ConnectionEvent.aidl @@ -42,9 +42,13 @@ enum ConnectionEvent { NAS_SIGNALLING_LTE = 4, AS_SIGNALLING_LTE = 5, VOLTE_SIP = 6, - VOLTE_RTP = 7, - NAS_SIGNALLING_5G = 8, - AS_SIGNALLING_5G = 9, - VONR_SIP = 10, - VONR_RTP = 11, + VOLTE_SIP_SOS = 7, + VOLTE_RTP = 8, + VOLTE_RTP_SOS = 9, + NAS_SIGNALLING_5G = 10, + AS_SIGNALLING_5G = 11, + VONR_SIP = 12, + VONR_SIP_SOS = 13, + VONR_RTP = 14, + VONR_RTP_SOS = 15, } diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/RegistrationFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/RegistrationFailCause.aidl index 56f516d53250e5b06c26b03000a6c33f544ffc1b..fcc079ec0f1179b22f3bdcddcd23e4dadfe8d533 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/RegistrationFailCause.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/RegistrationFailCause.aidl @@ -50,7 +50,11 @@ enum RegistrationFailCause { ROAMING_NOT_ALLOWED = 13, GPRS_SERVICES_NOT_ALLOWED_IN_PLMN = 14, NO_SUITABLE_CELLS = 15, + /** + * @deprecated MSC_TEMPORARILY_NOT_REACHABLE value is wrong and should not be used. Use MSC_TEMP_NOT_REACHABLE instead. + */ MSC_TEMPORARILY_NOT_REACHABLE = 15, + MSC_TEMP_NOT_REACHABLE = 16, NETWORK_FAILURE = 17, MAC_FAILURE = 20, SYNC_FAILURE = 21, diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl index 166450154c1da6bbadaca8adedb7269270eeb5ca..c3333bf1909cc767148ae5f68b35f225b8a83eb2 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SecurityAlgorithm.aidl @@ -57,6 +57,8 @@ enum SecurityAlgorithm { NEA1 = 56, NEA2 = 57, NEA3 = 58, + SIP_NO_IPSEC_CONFIG = 66, + IMS_NULL = 67, SIP_NULL = 68, AES_GCM = 69, AES_GMAC = 70, @@ -64,9 +66,9 @@ enum SecurityAlgorithm { DES_EDE3_CBC = 72, AES_EDE3_CBC = 73, HMAC_SHA1_96 = 74, - HMAC_SHA1_96_null = 75, - HMAC_MD5_96 = 76, - HMAC_MD5_96_null = 77, + HMAC_MD5_96 = 75, + RTP = 85, + SRTP_NULL = 86, SRTP_AES_COUNTER = 87, SRTP_AES_F8 = 88, SRTP_HMAC_SHA1 = 89, diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.sim/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..ddc2a2156c93a278b1519957c707385727a80a34 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/.hash @@ -0,0 +1 @@ +ea7be3035be8d4869237a6478d2e0bb0efcc1e87 diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/AppStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/AppStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..898b616a2c771a57da631c1bb622485f5d2834a5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/AppStatus.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable AppStatus { + int appType; + int appState; + android.hardware.radio.sim.PersoSubstate persoSubstate; + String aidPtr; + String appLabelPtr; + boolean pin1Replaced; + android.hardware.radio.sim.PinState pin1; + android.hardware.radio.sim.PinState pin2; + const int APP_STATE_UNKNOWN = 0; + const int APP_STATE_DETECTED = 1; + const int APP_STATE_PIN = 2; + const int APP_STATE_PUK = 3; + const int APP_STATE_SUBSCRIPTION_PERSO = 4; + const int APP_STATE_READY = 5; + const int APP_TYPE_UNKNOWN = 0; + const int APP_TYPE_SIM = 1; + const int APP_TYPE_USIM = 2; + const int APP_TYPE_RUIM = 3; + const int APP_TYPE_CSIM = 4; + const int APP_TYPE_ISIM = 5; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardPowerState.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardPowerState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..066777aa5f2bc07a954ce5021ed41cc8d59372f7 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardPowerState.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CardPowerState { + POWER_DOWN, + POWER_UP, + POWER_UP_PASS_THROUGH, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1a9d6213903bfea8abc1d93508e2ded76224e487 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CardStatus.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CardStatus { + int cardState; + android.hardware.radio.sim.PinState universalPinState; + int gsmUmtsSubscriptionAppIndex; + int cdmaSubscriptionAppIndex; + int imsSubscriptionAppIndex; + android.hardware.radio.sim.AppStatus[] applications; + String atr; + String iccid; + String eid; + android.hardware.radio.config.SlotPortMapping slotMap; + android.hardware.radio.config.MultipleEnabledProfilesMode supportedMepMode = android.hardware.radio.config.MultipleEnabledProfilesMode.NONE; + const int STATE_ABSENT = 0; + const int STATE_PRESENT = 1; + const int STATE_ERROR = 2; + const int STATE_RESTRICTED = 3; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Carrier.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Carrier.aidl new file mode 100644 index 0000000000000000000000000000000000000000..24fff2ee7c4dcd4b49aa08b98f8d76964bbff9c8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Carrier.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable Carrier { + String mcc; + String mnc; + int matchType; + String matchData; + const int MATCH_TYPE_ALL = 0; + const int MATCH_TYPE_SPN = 1; + const int MATCH_TYPE_IMSI_PREFIX = 2; + const int MATCH_TYPE_GID1 = 3; + const int MATCH_TYPE_GID2 = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7d4a54b242b4069e0d4ed6712063284403e5c9b2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierInfo.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CarrierInfo { + String mcc; + String mnc; + @nullable String spn; + @nullable String gid1; + @nullable String gid2; + @nullable String imsiPrefix; + @nullable List ehplmn; + @nullable String iccid; + @nullable String impi; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierRestrictions.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierRestrictions.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a5b8dc96f6439211c7c39d6be2398c436485dfba --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CarrierRestrictions.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CarrierRestrictions { + /** + * @deprecated use @List allowedCarrierInfoList + */ + android.hardware.radio.sim.Carrier[] allowedCarriers; + /** + * @deprecated use @List excludedCarrierInfoList + */ + android.hardware.radio.sim.Carrier[] excludedCarriers; + boolean allowedCarriersPrioritized; + android.hardware.radio.sim.CarrierRestrictions.CarrierRestrictionStatus status; + android.hardware.radio.sim.CarrierInfo[] allowedCarrierInfoList = {}; + android.hardware.radio.sim.CarrierInfo[] excludedCarrierInfoList = {}; + @Backing(type="int") @VintfStability + enum CarrierRestrictionStatus { + UNKNOWN = 0, + NOT_RESTRICTED = 1, + RESTRICTED = 2, + } +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CdmaSubscriptionSource.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CdmaSubscriptionSource.aidl new file mode 100644 index 0000000000000000000000000000000000000000..13b06e7fdb3e66bd522c5a66703ea20cc40bb7b5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/CdmaSubscriptionSource.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CdmaSubscriptionSource { + RUIM_SIM, + NV, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSim.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSim.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1728e410105a7632294801f6b8f707f07ffd5ece --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSim.aidl @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@VintfStability +interface IRadioSim { + oneway void areUiccApplicationsEnabled(in int serial); + oneway void changeIccPin2ForApp(in int serial, in String oldPin2, in String newPin2, in String aid); + oneway void changeIccPinForApp(in int serial, in String oldPin, in String newPin, in String aid); + oneway void enableUiccApplications(in int serial, in boolean enable); + oneway void getAllowedCarriers(in int serial); + oneway void getCdmaSubscription(in int serial); + oneway void getCdmaSubscriptionSource(in int serial); + oneway void getFacilityLockForApp(in int serial, in String facility, in String password, in int serviceClass, in String appId); + oneway void getIccCardStatus(in int serial); + oneway void getImsiForApp(in int serial, in String aid); + oneway void getSimPhonebookCapacity(in int serial); + oneway void getSimPhonebookRecords(in int serial); + /** + * @deprecated use iccCloseLogicalChannelWithSessionInfo instead. + */ + oneway void iccCloseLogicalChannel(in int serial, in int channelId); + oneway void iccIoForApp(in int serial, in android.hardware.radio.sim.IccIo iccIo); + oneway void iccOpenLogicalChannel(in int serial, in String aid, in int p2); + oneway void iccTransmitApduBasicChannel(in int serial, in android.hardware.radio.sim.SimApdu message); + oneway void iccTransmitApduLogicalChannel(in int serial, in android.hardware.radio.sim.SimApdu message); + oneway void reportStkServiceIsRunning(in int serial); + oneway void requestIccSimAuthentication(in int serial, in int authContext, in String authData, in String aid); + oneway void responseAcknowledgement(); + oneway void sendEnvelope(in int serial, in String contents); + oneway void sendEnvelopeWithStatus(in int serial, in String contents); + oneway void sendTerminalResponseToSim(in int serial, in String contents); + oneway void setAllowedCarriers(in int serial, in android.hardware.radio.sim.CarrierRestrictions carriers, in android.hardware.radio.sim.SimLockMultiSimPolicy multiSimPolicy); + oneway void setCarrierInfoForImsiEncryption(in int serial, in android.hardware.radio.sim.ImsiEncryptionInfo imsiEncryptionInfo); + oneway void setCdmaSubscriptionSource(in int serial, in android.hardware.radio.sim.CdmaSubscriptionSource cdmaSub); + oneway void setFacilityLockForApp(in int serial, in String facility, in boolean lockState, in String password, in int serviceClass, in String appId); + oneway void setResponseFunctions(in android.hardware.radio.sim.IRadioSimResponse radioSimResponse, in android.hardware.radio.sim.IRadioSimIndication radioSimIndication); + oneway void setSimCardPower(in int serial, in android.hardware.radio.sim.CardPowerState powerUp); + oneway void setUiccSubscription(in int serial, in android.hardware.radio.sim.SelectUiccSub uiccSub); + oneway void supplyIccPin2ForApp(in int serial, in String pin2, in String aid); + oneway void supplyIccPinForApp(in int serial, in String pin, in String aid); + oneway void supplyIccPuk2ForApp(in int serial, in String puk2, in String pin2, in String aid); + oneway void supplyIccPukForApp(in int serial, in String puk, in String pin, in String aid); + oneway void supplySimDepersonalization(in int serial, in android.hardware.radio.sim.PersoSubstate persoType, in String controlKey); + oneway void updateSimPhonebookRecords(in int serial, in android.hardware.radio.sim.PhonebookRecordInfo recordInfo); + oneway void iccCloseLogicalChannelWithSessionInfo(in int serial, in android.hardware.radio.sim.SessionInfo sessionInfo); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimIndication.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a74b65acad1b187dc702a0803acc48a4791d3509 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimIndication.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@VintfStability +interface IRadioSimIndication { + oneway void carrierInfoForImsiEncryption(in android.hardware.radio.RadioIndicationType info); + oneway void cdmaSubscriptionSourceChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.sim.CdmaSubscriptionSource cdmaSource); + oneway void simPhonebookChanged(in android.hardware.radio.RadioIndicationType type); + oneway void simPhonebookRecordsReceived(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.sim.PbReceivedStatus status, in android.hardware.radio.sim.PhonebookRecordInfo[] records); + oneway void simRefresh(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.sim.SimRefreshResult refreshResult); + oneway void simStatusChanged(in android.hardware.radio.RadioIndicationType type); + oneway void stkEventNotify(in android.hardware.radio.RadioIndicationType type, in String cmd); + oneway void stkProactiveCommand(in android.hardware.radio.RadioIndicationType type, in String cmd); + oneway void stkSessionEnd(in android.hardware.radio.RadioIndicationType type); + oneway void subscriptionStatusChanged(in android.hardware.radio.RadioIndicationType type, in boolean activate); + oneway void uiccApplicationsEnablementChanged(in android.hardware.radio.RadioIndicationType type, in boolean enabled); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimResponse.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c653847706f68f1f03ae12d097ab4bc4045b5df0 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IRadioSimResponse.aidl @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@VintfStability +interface IRadioSimResponse { + oneway void acknowledgeRequest(in int serial); + oneway void areUiccApplicationsEnabledResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enabled); + oneway void changeIccPin2ForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void changeIccPinForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void enableUiccApplicationsResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getAllowedCarriersResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.CarrierRestrictions carriers, in android.hardware.radio.sim.SimLockMultiSimPolicy multiSimPolicy); + oneway void getCdmaSubscriptionResponse(in android.hardware.radio.RadioResponseInfo info, in String mdn, in String hSid, in String hNid, in String min, in String prl); + oneway void getCdmaSubscriptionSourceResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.CdmaSubscriptionSource source); + oneway void getFacilityLockForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int response); + oneway void getIccCardStatusResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.CardStatus cardStatus); + oneway void getImsiForAppResponse(in android.hardware.radio.RadioResponseInfo info, in String imsi); + oneway void getSimPhonebookCapacityResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.PhonebookCapacity capacity); + oneway void getSimPhonebookRecordsResponse(in android.hardware.radio.RadioResponseInfo info); + /** + * @deprecated use iccCloseLogicalChannelWithSessionInfoResponse instead. + */ + oneway void iccCloseLogicalChannelResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void iccIoForAppResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.IccIoResult iccIo); + oneway void iccOpenLogicalChannelResponse(in android.hardware.radio.RadioResponseInfo info, in int channelId, in byte[] selectResponse); + oneway void iccTransmitApduBasicChannelResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.IccIoResult result); + oneway void iccTransmitApduLogicalChannelResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.IccIoResult result); + oneway void reportStkServiceIsRunningResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void requestIccSimAuthenticationResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.IccIoResult result); + oneway void sendEnvelopeResponse(in android.hardware.radio.RadioResponseInfo info, in String commandResponse); + oneway void sendEnvelopeWithStatusResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.IccIoResult iccIo); + oneway void sendTerminalResponseToSimResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setAllowedCarriersResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCarrierInfoForImsiEncryptionResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCdmaSubscriptionSourceResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setFacilityLockForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int retry); + oneway void setSimCardPowerResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setUiccSubscriptionResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void supplyIccPin2ForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void supplyIccPinForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void supplyIccPuk2ForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void supplyIccPukForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries); + oneway void supplySimDepersonalizationResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.PersoSubstate persoType, in int remainingRetries); + oneway void updateSimPhonebookRecordsResponse(in android.hardware.radio.RadioResponseInfo info, in int updatedRecordIndex); + oneway void iccCloseLogicalChannelWithSessionInfoResponse(in android.hardware.radio.RadioResponseInfo info); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIo.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..661518d2eb0ad72e5c3e6c0a287abf9329dc3c99 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIo.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable IccIo { + int command; + int fileId; + String path; + int p1; + int p2; + int p3; + String data; + String pin2; + String aid; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIoResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIoResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1e418cd2abb7ab4be0ba403b6926981c361368a3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/IccIoResult.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable IccIoResult { + int sw1; + int sw2; + String simResponse; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/ImsiEncryptionInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/ImsiEncryptionInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..40722e5f799b0051828602f16b68e9c057db3b24 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/ImsiEncryptionInfo.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable ImsiEncryptionInfo { + String mcc; + String mnc; + byte[] carrierKey; + String keyIdentifier; + long expirationTime; + byte keyType; + const byte PUBLIC_KEY_TYPE_EPDG = 1; + const byte PUBLIC_KEY_TYPE_WLAN = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PbReceivedStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PbReceivedStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..aaf9f3eb50e4b29f3191ea5d7f7562ec07037e1c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PbReceivedStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@Backing(type="byte") @JavaDerive(toString=true) @VintfStability +enum PbReceivedStatus { + PB_RECEIVED_OK = 1, + PB_RECEIVED_ERROR = 2, + PB_RECEIVED_ABORT = 3, + PB_RECEIVED_FINAL = 4, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PersoSubstate.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PersoSubstate.aidl new file mode 100644 index 0000000000000000000000000000000000000000..795230892c9c8563ecf7d5acac73786de6b0d099 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PersoSubstate.aidl @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum PersoSubstate { + UNKNOWN, + IN_PROGRESS, + READY, + SIM_NETWORK, + SIM_NETWORK_SUBSET, + SIM_CORPORATE, + SIM_SERVICE_PROVIDER, + SIM_SIM, + SIM_NETWORK_PUK, + SIM_NETWORK_SUBSET_PUK, + SIM_CORPORATE_PUK, + SIM_SERVICE_PROVIDER_PUK, + SIM_SIM_PUK, + RUIM_NETWORK1, + RUIM_NETWORK2, + RUIM_HRPD, + RUIM_CORPORATE, + RUIM_SERVICE_PROVIDER, + RUIM_RUIM, + RUIM_NETWORK1_PUK, + RUIM_NETWORK2_PUK, + RUIM_HRPD_PUK, + RUIM_CORPORATE_PUK, + RUIM_SERVICE_PROVIDER_PUK, + RUIM_RUIM_PUK, + SIM_SPN, + SIM_SPN_PUK, + SIM_SP_EHPLMN, + SIM_SP_EHPLMN_PUK, + SIM_ICCID, + SIM_ICCID_PUK, + SIM_IMPI, + SIM_IMPI_PUK, + SIM_NS_SP, + SIM_NS_SP_PUK, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookCapacity.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookCapacity.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b02068712ec5878e548e774689d76f77c6b3d664 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookCapacity.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable PhonebookCapacity { + int maxAdnRecords; + int usedAdnRecords; + int maxEmailRecords; + int usedEmailRecords; + int maxAdditionalNumberRecords; + int usedAdditionalNumberRecords; + int maxNameLen; + int maxNumberLen; + int maxEmailLen; + int maxAdditionalNumberLen; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookRecordInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookRecordInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1a6943bd536022512c952c2aeb997087b63131af --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PhonebookRecordInfo.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable PhonebookRecordInfo { + int recordId; + String name; + String number; + String[] emails; + String[] additionalNumbers; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PinState.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PinState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..924929b450100ef5505613f576e4bc7ba69c35bc --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/PinState.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum PinState { + UNKNOWN, + ENABLED_NOT_VERIFIED, + ENABLED_VERIFIED, + DISABLED, + ENABLED_BLOCKED, + ENABLED_PERM_BLOCKED, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Plmn.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Plmn.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b29a4a76bdf168d85f25435ebd0b97a728f3cc6f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/Plmn.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable Plmn { + String mcc; + String mnc; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SelectUiccSub.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SelectUiccSub.aidl new file mode 100644 index 0000000000000000000000000000000000000000..57ca2a5b14608a413498587d3b58df283411e3e3 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SelectUiccSub.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SelectUiccSub { + int slot; + int appIndex; + int subType; + int actStatus; + const int SUBSCRIPTION_TYPE_1 = 0; + const int SUBSCRIPTION_TYPE_2 = 1; + const int SUBSCRIPTION_TYPE_3 = 2; + const int ACT_STATUS_DEACTIVATE = 0; + const int ACT_STATUS_ACTIVATE = 1; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SessionInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SessionInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5c81e3d77ad94b3520af5bbcfe81af69929e4dc4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SessionInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SessionInfo { + int sessionId; + boolean isEs10 = false; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimApdu.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimApdu.aidl new file mode 100644 index 0000000000000000000000000000000000000000..45f6e48168b053d20011b873d8dc40bcb8137f39 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimApdu.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SimApdu { + int sessionId; + int cla; + int instruction; + int p1; + int p2; + int p3; + String data; + boolean isEs10 = false; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimLockMultiSimPolicy.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimLockMultiSimPolicy.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8cfe417c2657b71a54934495bcabfa8654cede9d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimLockMultiSimPolicy.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum SimLockMultiSimPolicy { + NO_MULTISIM_POLICY, + ONE_VALID_SIM_MUST_BE_PRESENT, + APPLY_TO_ALL_SLOTS, + APPLY_TO_ONLY_SLOT_1, + VALID_SIM_MUST_PRESENT_ON_SLOT_1, + ACTIVE_SERVICE_ON_SLOT_1_TO_UNBLOCK_OTHER_SLOTS, + ACTIVE_SERVICE_ON_ANY_SLOT_TO_UNBLOCK_OTHER_SLOTS, + ALL_SIMS_MUST_BE_VALID, + SLOT_POLICY_OTHER, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimRefreshResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimRefreshResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..81ba510c2f63d2123c43a6f966ffb908229290f0 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/3/android/hardware/radio/sim/SimRefreshResult.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.sim; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SimRefreshResult { + int type; + int efId; + String aid; + const int TYPE_SIM_FILE_UPDATE = 0; + const int TYPE_SIM_INIT = 1; + const int TYPE_SIM_RESET = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CarrierInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CarrierInfo.aidl index 5838959fb5c79ce677568d80a910a3ed528e5746..7d4a54b242b4069e0d4ed6712063284403e5c9b2 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CarrierInfo.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.sim/current/android/hardware/radio/sim/CarrierInfo.aidl @@ -41,7 +41,7 @@ parcelable CarrierInfo { @nullable String gid1; @nullable String gid2; @nullable String imsiPrefix; - @nullable List ephlmn; + @nullable List ehplmn; @nullable String iccid; @nullable String impi; } diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/.hash b/radio/aidl/aidl_api/android.hardware.radio.voice/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..d3fb7e5e8257d7fa20f64063e35f7eb5933cff32 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/.hash @@ -0,0 +1 @@ +78fb79bcb32590a868b3eb7affb39ab90e4ca782 diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/AudioQuality.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/AudioQuality.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8725c7fb5daf91a929332c83af4c74a90a71d8ce --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/AudioQuality.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum AudioQuality { + UNSPECIFIED, + AMR, + AMR_WB, + GSM_EFR, + GSM_FR, + GSM_HR, + EVRC, + EVRC_B, + EVRC_WB, + EVRC_NW, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Call.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Call.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b45a45b110640f367d980c8187522a5a5204c515 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Call.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable Call { + int state; + int index; + int toa; + boolean isMpty; + boolean isMT; + byte als; + boolean isVoice; + boolean isVoicePrivacy; + String number; + int numberPresentation; + String name; + int namePresentation; + android.hardware.radio.voice.UusInfo[] uusInfo; + android.hardware.radio.voice.AudioQuality audioQuality; + String forwardedNumber; + const int PRESENTATION_ALLOWED = 0; + const int PRESENTATION_RESTRICTED = 1; + const int PRESENTATION_UNKNOWN = 2; + const int PRESENTATION_PAYPHONE = 3; + const int STATE_ACTIVE = 0; + const int STATE_HOLDING = 1; + const int STATE_DIALING = 2; + const int STATE_ALERTING = 3; + const int STATE_INCOMING = 4; + const int STATE_WAITING = 5; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CallForwardInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CallForwardInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..51c87584efca01d900eb18c252b398c6a9625448 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CallForwardInfo.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CallForwardInfo { + int status; + int reason; + int serviceClass; + int toa; + String number; + int timeSeconds; + const int STATUS_DISABLE = 0; + const int STATUS_ENABLE = 1; + const int STATUS_INTERROGATE = 2; + const int STATUS_REGISTRATION = 3; + const int STATUS_ERASURE = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaCallWaiting.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaCallWaiting.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0b36be4ebadf6ee752bcf5e1e9099923b5b5c77e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaCallWaiting.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaCallWaiting { + String number; + int numberPresentation; + String name; + android.hardware.radio.voice.CdmaSignalInfoRecord signalInfoRecord; + int numberType; + int numberPlan; + const int NUMBER_PLAN_UNKNOWN = 0; + const int NUMBER_PLAN_ISDN = 1; + const int NUMBER_PLAN_DATA = 3; + const int NUMBER_PLAN_TELEX = 4; + const int NUMBER_PLAN_NATIONAL = 8; + const int NUMBER_PLAN_PRIVATE = 9; + const int NUMBER_PRESENTATION_ALLOWED = 0; + const int NUMBER_PRESENTATION_RESTRICTED = 1; + const int NUMBER_PRESENTATION_UNKNOWN = 2; + const int NUMBER_TYPE_UNKNOWN = 0; + const int NUMBER_TYPE_INTERNATIONAL = 1; + const int NUMBER_TYPE_NATIONAL = 2; + const int NUMBER_TYPE_NETWORK_SPECIFIC = 3; + const int NUMBER_TYPE_SUBSCRIBER = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl new file mode 100644 index 0000000000000000000000000000000000000000..300b03f6dae6e7e94d9ef57aec1d85e5e0eab1c8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaDisplayInfoRecord.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaDisplayInfoRecord { + String alphaBuf; + const int CDMA_ALPHA_INFO_BUFFER_LENGTH = 64; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaInformationRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaInformationRecord.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2f7f5f05c9504a853db39f58c06c9bb795e894d5 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaInformationRecord.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaInformationRecord { + int name; + android.hardware.radio.voice.CdmaDisplayInfoRecord[] display; + android.hardware.radio.voice.CdmaNumberInfoRecord[] number; + android.hardware.radio.voice.CdmaSignalInfoRecord[] signal; + android.hardware.radio.voice.CdmaRedirectingNumberInfoRecord[] redir; + android.hardware.radio.voice.CdmaLineControlInfoRecord[] lineCtrl; + android.hardware.radio.voice.CdmaT53ClirInfoRecord[] clir; + android.hardware.radio.voice.CdmaT53AudioControlInfoRecord[] audioCtrl; + const int CDMA_MAX_NUMBER_OF_INFO_RECS = 10; + const int NAME_DISPLAY = 0; + const int NAME_CALLED_PARTY_NUMBER = 1; + const int NAME_CALLING_PARTY_NUMBER = 2; + const int NAME_CONNECTED_NUMBER = 3; + const int NAME_SIGNAL = 4; + const int NAME_REDIRECTING_NUMBER = 5; + const int NAME_LINE_CONTROL = 6; + const int NAME_EXTENDED_DISPLAY = 7; + const int NAME_T53_CLIR = 8; + const int NAME_T53_RELEASE = 9; + const int NAME_T53_AUDIO_CONTROL = 10; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4e4a7ee7b761d7d7ecb8c0378c427553e4b9ba5f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaLineControlInfoRecord.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaLineControlInfoRecord { + byte lineCtrlPolarityIncluded; + byte lineCtrlToggle; + byte lineCtrlReverse; + byte lineCtrlPowerDenial; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c3b0d5a4426965ad4bf20832649da0a060ee0688 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaNumberInfoRecord.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaNumberInfoRecord { + String number; + byte numberType; + byte numberPlan; + byte pi; + byte si; + const int CDMA_NUMBER_INFO_BUFFER_LENGTH = 81; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ae35fbad526f2a41bb550f43420470e0c85d2659 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaOtaProvisionStatus.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum CdmaOtaProvisionStatus { + SPL_UNLOCKED, + SPC_RETRIES_EXCEEDED, + A_KEY_EXCHANGED, + SSD_UPDATED, + NAM_DOWNLOADED, + MDN_DOWNLOADED, + IMSI_DOWNLOADED, + PRL_DOWNLOADED, + COMMITTED, + OTAPA_STARTED, + OTAPA_STOPPED, + OTAPA_ABORTED, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl new file mode 100644 index 0000000000000000000000000000000000000000..93c7c6b06531359652bc13ae3f803aa99dbca995 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaRedirectingNumberInfoRecord.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaRedirectingNumberInfoRecord { + android.hardware.radio.voice.CdmaNumberInfoRecord redirectingNumber; + int redirectingReason; + const int REDIRECTING_REASON_UNKNOWN = 0; + const int REDIRECTING_REASON_CALL_FORWARDING_BUSY = 1; + const int REDIRECTING_REASON_CALL_FORWARDING_NO_REPLY = 2; + const int REDIRECTING_REASON_CALLED_DTE_OUT_OF_ORDER = 9; + const int REDIRECTING_REASON_CALL_FORWARDING_BY_THE_CALLED_DTE = 10; + const int REDIRECTING_REASON_CALL_FORWARDING_UNCONDITIONAL = 15; + const int REDIRECTING_REASON_RESERVED = 16; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl new file mode 100644 index 0000000000000000000000000000000000000000..69447b433a7f12d0a330d4fa6e6164f2ced5c9fb --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaSignalInfoRecord.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaSignalInfoRecord { + boolean isPresent; + byte signalType; + byte alertPitch; + byte signal; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl new file mode 100644 index 0000000000000000000000000000000000000000..69d79aa43ba5a12f746b2cd0e1d463d8950befee --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53AudioControlInfoRecord.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaT53AudioControlInfoRecord { + byte upLink; + byte downLink; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl new file mode 100644 index 0000000000000000000000000000000000000000..83b6fb9af7691238985cc564ff14a9a27d6d484e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CdmaT53ClirInfoRecord.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CdmaT53ClirInfoRecord { + byte cause; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CfData.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CfData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fc811f2d73cbdb00f3a620ed46e3fa84bc0e2f42 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/CfData.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CfData { + android.hardware.radio.voice.CallForwardInfo[] cfInfo; + const int NUM_SERVICE_CLASSES = 7; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/ClipStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/ClipStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c38c8012fb5ffbc11e7f515ebf451b8d2fde5cac --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/ClipStatus.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum ClipStatus { + CLIP_PROVISIONED, + CLIP_UNPROVISIONED, + UNKNOWN, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Dial.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Dial.aidl new file mode 100644 index 0000000000000000000000000000000000000000..26041f0620a740fbe8c22ae04445e6c9c00d9529 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/Dial.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable Dial { + String address; + int clir; + android.hardware.radio.voice.UusInfo[] uusInfo; + const int CLIR_DEFAULT = 0; + const int CLIR_INVOCATION = 1; + const int CLIR_SUPPRESSION = 2; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyCallRouting.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyCallRouting.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3099a206265f7ce6be56054f9645b7b8d56b62cd --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyCallRouting.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EmergencyCallRouting { + UNKNOWN, + EMERGENCY, + NORMAL, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyNumber.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyNumber.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2129f397e0af90989aa59ea77d31213330d785ed --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyNumber.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable EmergencyNumber { + String number; + String mcc; + String mnc; + int categories; + String[] urns; + int sources; + const int SOURCE_NETWORK_SIGNALING = (1 << 0) /* 1 */; + const int SOURCE_SIM = (1 << 1) /* 2 */; + const int SOURCE_MODEM_CONFIG = (1 << 2) /* 4 */; + const int SOURCE_DEFAULT = (1 << 3) /* 8 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyServiceCategory.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyServiceCategory.aidl new file mode 100644 index 0000000000000000000000000000000000000000..819baf89f1844393ce7f779f4e17a65715d77515 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/EmergencyServiceCategory.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum EmergencyServiceCategory { + UNSPECIFIED = 0, + POLICE = (1 << 0) /* 1 */, + AMBULANCE = (1 << 1) /* 2 */, + FIRE_BRIGADE = (1 << 2) /* 4 */, + MARINE_GUARD = (1 << 3) /* 8 */, + MOUNTAIN_RESCUE = (1 << 4) /* 16 */, + MIEC = (1 << 5) /* 32 */, + AIEC = (1 << 6) /* 64 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoice.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoice.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d0a9451a3668f31d68b4c31b3921226f7b3571f0 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoice.aidl @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@VintfStability +interface IRadioVoice { + oneway void acceptCall(in int serial); + oneway void cancelPendingUssd(in int serial); + oneway void conference(in int serial); + oneway void dial(in int serial, in android.hardware.radio.voice.Dial dialInfo); + oneway void emergencyDial(in int serial, in android.hardware.radio.voice.Dial dialInfo, in int categories, in String[] urns, in android.hardware.radio.voice.EmergencyCallRouting routing, in boolean hasKnownUserIntentEmergency, in boolean isTesting); + oneway void exitEmergencyCallbackMode(in int serial); + oneway void explicitCallTransfer(in int serial); + oneway void getCallForwardStatus(in int serial, in android.hardware.radio.voice.CallForwardInfo callInfo); + oneway void getCallWaiting(in int serial, in int serviceClass); + oneway void getClip(in int serial); + oneway void getClir(in int serial); + oneway void getCurrentCalls(in int serial); + oneway void getLastCallFailCause(in int serial); + oneway void getMute(in int serial); + oneway void getPreferredVoicePrivacy(in int serial); + oneway void getTtyMode(in int serial); + oneway void handleStkCallSetupRequestFromSim(in int serial, in boolean accept); + oneway void hangup(in int serial, in int gsmIndex); + oneway void hangupForegroundResumeBackground(in int serial); + oneway void hangupWaitingOrBackground(in int serial); + oneway void isVoNrEnabled(in int serial); + oneway void rejectCall(in int serial); + oneway void responseAcknowledgement(); + oneway void sendBurstDtmf(in int serial, in String dtmf, in int on, in int off); + oneway void sendCdmaFeatureCode(in int serial, in String featureCode); + oneway void sendDtmf(in int serial, in String s); + oneway void sendUssd(in int serial, in String ussd); + oneway void separateConnection(in int serial, in int gsmIndex); + oneway void setCallForward(in int serial, in android.hardware.radio.voice.CallForwardInfo callInfo); + oneway void setCallWaiting(in int serial, in boolean enable, in int serviceClass); + oneway void setClir(in int serial, in int status); + oneway void setMute(in int serial, in boolean enable); + oneway void setPreferredVoicePrivacy(in int serial, in boolean enable); + oneway void setResponseFunctions(in android.hardware.radio.voice.IRadioVoiceResponse radioVoiceResponse, in android.hardware.radio.voice.IRadioVoiceIndication radioVoiceIndication); + oneway void setTtyMode(in int serial, in android.hardware.radio.voice.TtyMode mode); + oneway void setVoNrEnabled(in int serial, in boolean enable); + oneway void startDtmf(in int serial, in String s); + oneway void stopDtmf(in int serial); + oneway void switchWaitingOrHoldingAndActive(in int serial); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceIndication.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4614ee1b391a3db6fc92ef9ba9bd772f2eb29153 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceIndication.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@VintfStability +interface IRadioVoiceIndication { + oneway void callRing(in android.hardware.radio.RadioIndicationType type, in boolean isGsm, in android.hardware.radio.voice.CdmaSignalInfoRecord record); + oneway void callStateChanged(in android.hardware.radio.RadioIndicationType type); + oneway void cdmaCallWaiting(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.CdmaCallWaiting callWaitingRecord); + oneway void cdmaInfoRec(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.CdmaInformationRecord[] records); + oneway void cdmaOtaProvisionStatus(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.CdmaOtaProvisionStatus status); + oneway void currentEmergencyNumberList(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.EmergencyNumber[] emergencyNumberList); + oneway void enterEmergencyCallbackMode(in android.hardware.radio.RadioIndicationType type); + oneway void exitEmergencyCallbackMode(in android.hardware.radio.RadioIndicationType type); + oneway void indicateRingbackTone(in android.hardware.radio.RadioIndicationType type, in boolean start); + oneway void onSupplementaryServiceIndication(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.StkCcUnsolSsResult ss); + oneway void onUssd(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.UssdModeType modeType, in String msg); + oneway void resendIncallMute(in android.hardware.radio.RadioIndicationType type); + oneway void srvccStateNotify(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.voice.SrvccState state); + oneway void stkCallControlAlphaNotify(in android.hardware.radio.RadioIndicationType type, in String alpha); + oneway void stkCallSetup(in android.hardware.radio.RadioIndicationType type, in long timeout); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceResponse.aidl new file mode 100644 index 0000000000000000000000000000000000000000..46927c2f819848f93e1f4b3ce0b83f7ba8ff57a8 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/IRadioVoiceResponse.aidl @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@VintfStability +interface IRadioVoiceResponse { + oneway void acceptCallResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void acknowledgeRequest(in int serial); + oneway void cancelPendingUssdResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void conferenceResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void dialResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void emergencyDialResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void exitEmergencyCallbackModeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void explicitCallTransferResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void getCallForwardStatusResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.voice.CallForwardInfo[] callForwardInfos); + oneway void getCallWaitingResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enable, in int serviceClass); + oneway void getClipResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.voice.ClipStatus status); + oneway void getClirResponse(in android.hardware.radio.RadioResponseInfo info, in int n, in int m); + oneway void getCurrentCallsResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.voice.Call[] calls); + oneway void getLastCallFailCauseResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.voice.LastCallFailCauseInfo failCauseinfo); + oneway void getMuteResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enable); + oneway void getPreferredVoicePrivacyResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enable); + oneway void getTtyModeResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.voice.TtyMode mode); + oneway void handleStkCallSetupRequestFromSimResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void hangupConnectionResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void hangupForegroundResumeBackgroundResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void hangupWaitingOrBackgroundResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void isVoNrEnabledResponse(in android.hardware.radio.RadioResponseInfo info, in boolean enable); + oneway void rejectCallResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendBurstDtmfResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendCdmaFeatureCodeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendDtmfResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void sendUssdResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void separateConnectionResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCallForwardResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setCallWaitingResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setClirResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setMuteResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setPreferredVoicePrivacyResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setTtyModeResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void setVoNrEnabledResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void startDtmfResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void stopDtmfResponse(in android.hardware.radio.RadioResponseInfo info); + oneway void switchWaitingOrHoldingAndActiveResponse(in android.hardware.radio.RadioResponseInfo info); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCause.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCause.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0cac135621321c28105e8b421dd5f6c2a43595fa --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCause.aidl @@ -0,0 +1,134 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum LastCallFailCause { + UNOBTAINABLE_NUMBER = 1, + NO_ROUTE_TO_DESTINATION = 3, + CHANNEL_UNACCEPTABLE = 6, + OPERATOR_DETERMINED_BARRING = 8, + NORMAL = 16, + BUSY = 17, + NO_USER_RESPONDING = 18, + NO_ANSWER_FROM_USER = 19, + CALL_REJECTED = 21, + NUMBER_CHANGED = 22, + PREEMPTION = 25, + DESTINATION_OUT_OF_ORDER = 27, + INVALID_NUMBER_FORMAT = 28, + FACILITY_REJECTED = 29, + RESP_TO_STATUS_ENQUIRY = 30, + NORMAL_UNSPECIFIED = 31, + CONGESTION = 34, + NETWORK_OUT_OF_ORDER = 38, + TEMPORARY_FAILURE = 41, + SWITCHING_EQUIPMENT_CONGESTION = 42, + ACCESS_INFORMATION_DISCARDED = 43, + REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE = 44, + RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 47, + QOS_UNAVAILABLE = 49, + REQUESTED_FACILITY_NOT_SUBSCRIBED = 50, + INCOMING_CALLS_BARRED_WITHIN_CUG = 55, + BEARER_CAPABILITY_NOT_AUTHORIZED = 57, + BEARER_CAPABILITY_UNAVAILABLE = 58, + SERVICE_OPTION_NOT_AVAILABLE = 63, + BEARER_SERVICE_NOT_IMPLEMENTED = 65, + ACM_LIMIT_EXCEEDED = 68, + REQUESTED_FACILITY_NOT_IMPLEMENTED = 69, + ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70, + SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79, + INVALID_TRANSACTION_IDENTIFIER = 81, + USER_NOT_MEMBER_OF_CUG = 87, + INCOMPATIBLE_DESTINATION = 88, + INVALID_TRANSIT_NW_SELECTION = 91, + SEMANTICALLY_INCORRECT_MESSAGE = 95, + INVALID_MANDATORY_INFORMATION = 96, + MESSAGE_TYPE_NON_IMPLEMENTED = 97, + MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98, + INFORMATION_ELEMENT_NON_EXISTENT = 99, + CONDITIONAL_IE_ERROR = 100, + MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101, + RECOVERY_ON_TIMER_EXPIRED = 102, + PROTOCOL_ERROR_UNSPECIFIED = 111, + INTERWORKING_UNSPECIFIED = 127, + CALL_BARRED = 240, + FDN_BLOCKED = 241, + IMSI_UNKNOWN_IN_VLR = 242, + IMEI_NOT_ACCEPTED = 243, + DIAL_MODIFIED_TO_USSD = 244, + DIAL_MODIFIED_TO_SS = 245, + DIAL_MODIFIED_TO_DIAL = 246, + RADIO_OFF = 247, + OUT_OF_SERVICE = 248, + NO_VALID_SIM = 249, + RADIO_INTERNAL_ERROR = 250, + NETWORK_RESP_TIMEOUT = 251, + NETWORK_REJECT = 252, + RADIO_ACCESS_FAILURE = 253, + RADIO_LINK_FAILURE = 254, + RADIO_LINK_LOST = 255, + RADIO_UPLINK_FAILURE = 256, + RADIO_SETUP_FAILURE = 257, + RADIO_RELEASE_NORMAL = 258, + RADIO_RELEASE_ABNORMAL = 259, + ACCESS_CLASS_BLOCKED = 260, + NETWORK_DETACH = 261, + CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000, + CDMA_DROP = 1001, + CDMA_INTERCEPT = 1002, + CDMA_REORDER = 1003, + CDMA_SO_REJECT = 1004, + CDMA_RETRY_ORDER = 1005, + CDMA_ACCESS_FAILURE = 1006, + CDMA_PREEMPTED = 1007, + CDMA_NOT_EMERGENCY = 1008, + CDMA_ACCESS_BLOCKED = 1009, + OEM_CAUSE_1 = 0xf001, + OEM_CAUSE_2 = 0xf002, + OEM_CAUSE_3 = 0xf003, + OEM_CAUSE_4 = 0xf004, + OEM_CAUSE_5 = 0xf005, + OEM_CAUSE_6 = 0xf006, + OEM_CAUSE_7 = 0xf007, + OEM_CAUSE_8 = 0xf008, + OEM_CAUSE_9 = 0xf009, + OEM_CAUSE_10 = 0xf00a, + OEM_CAUSE_11 = 0xf00b, + OEM_CAUSE_12 = 0xf00c, + OEM_CAUSE_13 = 0xf00d, + OEM_CAUSE_14 = 0xf00e, + OEM_CAUSE_15 = 0xf00f, + ERROR_UNSPECIFIED = 0xffff, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCauseInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCauseInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..151adf21d6836c63f4d83deebbdd3ea80c915d7f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/LastCallFailCauseInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable LastCallFailCauseInfo { + android.hardware.radio.voice.LastCallFailCause causeCode; + String vendorCause; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SrvccState.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SrvccState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..981ba025bed4c7ff40e18dd2d34f9769b025e0ea --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SrvccState.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum SrvccState { + HANDOVER_STARTED, + HANDOVER_COMPLETED, + HANDOVER_FAILED, + HANDOVER_CANCELED, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SsInfoData.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SsInfoData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..24365dc23302889494bafdaf2a0d83b38a7ab919 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/SsInfoData.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable SsInfoData { + int[] ssInfo; + const int SS_INFO_MAX = 4; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/StkCcUnsolSsResult.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/StkCcUnsolSsResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..999f47c8d4636becd2b67c0a4b0dad5699d337cb --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/StkCcUnsolSsResult.aidl @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable StkCcUnsolSsResult { + int serviceType; + int requestType; + int teleserviceType; + int serviceClass; + android.hardware.radio.RadioError result; + android.hardware.radio.voice.SsInfoData[] ssInfo; + android.hardware.radio.voice.CfData[] cfData; + const int REQUEST_TYPE_ACTIVATION = 0; + const int REQUEST_TYPE_DEACTIVATION = 1; + const int REQUEST_TYPE_INTERROGATION = 2; + const int REQUEST_TYPE_REGISTRATION = 3; + const int REQUEST_TYPE_ERASURE = 4; + const int SERVICE_TYPE_CFU = 0; + const int SERVICE_TYPE_CF_BUSY = 1; + const int SERVICE_TYPE_CF_NO_REPLY = 2; + const int SERVICE_TYPE_CF_NOT_REACHABLE = 3; + const int SERVICE_TYPE_CF_ALL = 4; + const int SERVICE_TYPE_CF_ALL_CONDITIONAL = 5; + const int SERVICE_TYPE_CLIP = 6; + const int SERVICE_TYPE_CLIR = 7; + const int SERVICE_TYPE_COLP = 8; + const int SERVICE_TYPE_COLR = 9; + const int SERVICE_TYPE_WAIT = 10; + const int SERVICE_TYPE_BAOC = 11; + const int SERVICE_TYPE_BAOIC = 12; + const int SERVICE_TYPE_BAOIC_EXC_HOME = 13; + const int SERVICE_TYPE_BAIC = 14; + const int SERVICE_TYPE_BAIC_ROAMING = 15; + const int SERVICE_TYPE_ALL_BARRING = 16; + const int SERVICE_TYPE_OUTGOING_BARRING = 17; + const int SERVICE_TYPE_INCOMING_BARRING = 18; + const int TELESERVICE_TYPE_ALL_TELE_AND_BEARER_SERVICES = 0; + const int TELESERVICE_TYPE_ALL_TELESEVICES = 1; + const int TELESERVICE_TYPE_TELEPHONY = 2; + const int TELESERVICE_TYPE_ALL_DATA_TELESERVICES = 3; + const int TELESERVICE_TYPE_SMS_SERVICES = 4; + const int TELESERVICE_TYPE_ALL_TELESERVICES_EXCEPT_SMS = 5; + const int SUPP_SERVICE_CLASS_NONE = 0; + const int SUPP_SERVICE_CLASS_VOICE = (1 << 0) /* 1 */; + const int SUPP_SERVICE_CLASS_DATA = (1 << 1) /* 2 */; + const int SUPP_SERVICE_CLASS_FAX = (1 << 2) /* 4 */; + const int SUPP_SERVICE_CLASS_SMS = (1 << 3) /* 8 */; + const int SUPP_SERVICE_CLASS_DATA_SYNC = (1 << 4) /* 16 */; + const int SUPP_SERVICE_CLASS_DATA_ASYNC = (1 << 5) /* 32 */; + const int SUPP_SERVICE_CLASS_PACKET = (1 << 6) /* 64 */; + const int SUPP_SERVICE_CLASS_PAD = (1 << 7) /* 128 */; + const int SUPP_SERVICE_CLASS_MAX = (1 << 7) /* 128 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/TtyMode.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/TtyMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..41ff6b8109a45193163f708450eb9eafa8e9f12e --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/TtyMode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum TtyMode { + OFF, + FULL, + HCO, + VCO, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UssdModeType.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UssdModeType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9e80f0314948be27d822ce353b6fd80db1e4f9da --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UssdModeType.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum UssdModeType { + NOTIFY, + REQUEST, + NW_RELEASE, + LOCAL_CLIENT, + NOT_SUPPORTED, + NW_TIMEOUT, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UusInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UusInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3c84c8d97b781ae82121fe7e85d57b9c05725def --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.voice/3/android/hardware/radio/voice/UusInfo.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio.voice; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable UusInfo { + int uusType; + int uusDcs; + String uusData; + const int UUS_DCS_USP = 0; + const int UUS_DCS_OSIHLP = 1; + const int UUS_DCS_X244 = 2; + const int UUS_DCS_RMCF = 3; + const int UUS_DCS_IA5C = 4; + const int UUS_TYPE_TYPE1_IMPLICIT = 0; + const int UUS_TYPE_TYPE1_REQUIRED = 1; + const int UUS_TYPE_TYPE1_NOT_REQUIRED = 2; + const int UUS_TYPE_TYPE2_REQUIRED = 3; + const int UUS_TYPE_TYPE2_NOT_REQUIRED = 4; + const int UUS_TYPE_TYPE3_REQUIRED = 5; + const int UUS_TYPE_TYPE3_NOT_REQUIRED = 6; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/.hash b/radio/aidl/aidl_api/android.hardware.radio/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..5d39a6782ef25aeb46c71bf93b632922bf8ae44c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/.hash @@ -0,0 +1 @@ +58d15e9e2c355be7b3dda6d4d34effd672bfd1cb diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/AccessNetwork.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/AccessNetwork.aidl new file mode 100644 index 0000000000000000000000000000000000000000..73a267b6d036a97a6340a43f94f00b7c557997ff --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/AccessNetwork.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum AccessNetwork { + UNKNOWN, + GERAN, + UTRAN, + EUTRAN, + CDMA2000, + IWLAN, + NGRAN, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioAccessFamily.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioAccessFamily.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1298ab0f4cdb29edbc8d663ced67358e1ab6a050 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioAccessFamily.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioAccessFamily { + UNKNOWN = (1 << android.hardware.radio.RadioTechnology.UNKNOWN) /* 1 */, + GPRS = (1 << android.hardware.radio.RadioTechnology.GPRS) /* 2 */, + EDGE = (1 << android.hardware.radio.RadioTechnology.EDGE) /* 4 */, + UMTS = (1 << android.hardware.radio.RadioTechnology.UMTS) /* 8 */, + IS95A = (1 << android.hardware.radio.RadioTechnology.IS95A) /* 16 */, + IS95B = (1 << android.hardware.radio.RadioTechnology.IS95B) /* 32 */, + ONE_X_RTT = (1 << android.hardware.radio.RadioTechnology.ONE_X_RTT) /* 64 */, + EVDO_0 = (1 << android.hardware.radio.RadioTechnology.EVDO_0) /* 128 */, + EVDO_A = (1 << android.hardware.radio.RadioTechnology.EVDO_A) /* 256 */, + HSDPA = (1 << android.hardware.radio.RadioTechnology.HSDPA) /* 512 */, + HSUPA = (1 << android.hardware.radio.RadioTechnology.HSUPA) /* 1024 */, + HSPA = (1 << android.hardware.radio.RadioTechnology.HSPA) /* 2048 */, + EVDO_B = (1 << android.hardware.radio.RadioTechnology.EVDO_B) /* 4096 */, + EHRPD = (1 << android.hardware.radio.RadioTechnology.EHRPD) /* 8192 */, + LTE = (1 << android.hardware.radio.RadioTechnology.LTE) /* 16384 */, + HSPAP = (1 << android.hardware.radio.RadioTechnology.HSPAP) /* 32768 */, + GSM = (1 << android.hardware.radio.RadioTechnology.GSM) /* 65536 */, + TD_SCDMA = (1 << android.hardware.radio.RadioTechnology.TD_SCDMA) /* 131072 */, + IWLAN = (1 << android.hardware.radio.RadioTechnology.IWLAN) /* 262144 */, + /** + * @deprecated use LTE instead. + */ + LTE_CA = (1 << android.hardware.radio.RadioTechnology.LTE_CA) /* 524288 */, + NR = (1 << android.hardware.radio.RadioTechnology.NR) /* 1048576 */, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioConst.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioConst.aidl new file mode 100644 index 0000000000000000000000000000000000000000..970cd1e0c832be80b3e2e1a417fe466fa1f73a65 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioConst.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RadioConst { + const int MAX_RILDS = 3; + const int MAX_UUID_LENGTH = 64; + const int CARD_MAX_APPS = 8; + const int P2_CONSTANT_NO_P2 = (-1) /* -1 */; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioError.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioError.aidl new file mode 100644 index 0000000000000000000000000000000000000000..02c537055cc8b83574c9591a9af395f9ffb594b4 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioError.aidl @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioError { + NONE = 0, + RADIO_NOT_AVAILABLE = 1, + GENERIC_FAILURE = 2, + PASSWORD_INCORRECT = 3, + SIM_PIN2 = 4, + SIM_PUK2 = 5, + REQUEST_NOT_SUPPORTED = 6, + CANCELLED = 7, + OP_NOT_ALLOWED_DURING_VOICE_CALL = 8, + OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 9, + SMS_SEND_FAIL_RETRY = 10, + SIM_ABSENT = 11, + SUBSCRIPTION_NOT_AVAILABLE = 12, + MODE_NOT_SUPPORTED = 13, + FDN_CHECK_FAILURE = 14, + ILLEGAL_SIM_OR_ME = 15, + MISSING_RESOURCE = 16, + NO_SUCH_ELEMENT = 17, + DIAL_MODIFIED_TO_USSD = 18, + DIAL_MODIFIED_TO_SS = 19, + DIAL_MODIFIED_TO_DIAL = 20, + USSD_MODIFIED_TO_DIAL = 21, + USSD_MODIFIED_TO_SS = 22, + USSD_MODIFIED_TO_USSD = 23, + SS_MODIFIED_TO_DIAL = 24, + SS_MODIFIED_TO_USSD = 25, + SUBSCRIPTION_NOT_SUPPORTED = 26, + SS_MODIFIED_TO_SS = 27, + LCE_NOT_SUPPORTED = 36, + NO_MEMORY = 37, + INTERNAL_ERR = 38, + SYSTEM_ERR = 39, + MODEM_ERR = 40, + INVALID_STATE = 41, + NO_RESOURCES = 42, + SIM_ERR = 43, + INVALID_ARGUMENTS = 44, + INVALID_SIM_STATE = 45, + INVALID_MODEM_STATE = 46, + INVALID_CALL_ID = 47, + NO_SMS_TO_ACK = 48, + NETWORK_ERR = 49, + REQUEST_RATE_LIMITED = 50, + SIM_BUSY = 51, + SIM_FULL = 52, + NETWORK_REJECT = 53, + OPERATION_NOT_ALLOWED = 54, + EMPTY_RECORD = 55, + INVALID_SMS_FORMAT = 56, + ENCODING_ERR = 57, + INVALID_SMSC_ADDRESS = 58, + NO_SUCH_ENTRY = 59, + NETWORK_NOT_READY = 60, + NOT_PROVISIONED = 61, + NO_SUBSCRIPTION = 62, + NO_NETWORK_FOUND = 63, + DEVICE_IN_USE = 64, + ABORTED = 65, + INVALID_RESPONSE = 66, + OEM_ERROR_1 = 501, + OEM_ERROR_2 = 502, + OEM_ERROR_3 = 503, + OEM_ERROR_4 = 504, + OEM_ERROR_5 = 505, + OEM_ERROR_6 = 506, + OEM_ERROR_7 = 507, + OEM_ERROR_8 = 508, + OEM_ERROR_9 = 509, + OEM_ERROR_10 = 510, + OEM_ERROR_11 = 511, + OEM_ERROR_12 = 512, + OEM_ERROR_13 = 513, + OEM_ERROR_14 = 514, + OEM_ERROR_15 = 515, + OEM_ERROR_16 = 516, + OEM_ERROR_17 = 517, + OEM_ERROR_18 = 518, + OEM_ERROR_19 = 519, + OEM_ERROR_20 = 520, + OEM_ERROR_21 = 521, + OEM_ERROR_22 = 522, + OEM_ERROR_23 = 523, + OEM_ERROR_24 = 524, + OEM_ERROR_25 = 525, + SIMULTANEOUS_SMS_AND_CALL_NOT_ALLOWED = 67, + ACCESS_BARRED = 68, + BLOCKED_DUE_TO_CALL = 69, + RF_HARDWARE_ISSUE = 70, + NO_RF_CALIBRATION_INFO = 71, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioIndicationType.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioIndicationType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..316f92f876648256fe5746476cc3d78df759cb9f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioIndicationType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioIndicationType { + UNSOLICITED, + UNSOLICITED_ACK_EXP, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f03a73bfb15a6f88028442bfb985a519faaa0842 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RadioResponseInfo { + android.hardware.radio.RadioResponseType type; + int serial; + android.hardware.radio.RadioError error; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfoModem.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfoModem.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2e0c3154261ce2eb2e07e86e3dd0b0209e1379ee --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseInfoModem.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable RadioResponseInfoModem { + android.hardware.radio.RadioResponseType type; + int serial; + android.hardware.radio.RadioError error; + boolean isEnabled; +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseType.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8bdb45bfdf820df9ef6a99c7370d883b650cf0d2 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioResponseType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioResponseType { + SOLICITED, + SOLICITED_ACK, + SOLICITED_ACK_EXP, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnology.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnology.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7c6a657bcd74497a74226cf104d01645b0da1286 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnology.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioTechnology { + UNKNOWN, + GPRS, + EDGE, + UMTS, + IS95A, + IS95B, + ONE_X_RTT, + EVDO_0, + EVDO_A, + HSDPA, + HSUPA, + HSPA, + EVDO_B, + EHRPD, + LTE, + HSPAP, + GSM, + TD_SCDMA, + IWLAN, + /** + * @deprecated use LTE instead and indicate carrier aggregation through multiple physical channel configurations in IRadioNetwork::currentPhysicalChannelConfigs. + */ + LTE_CA, + NR, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnologyFamily.aidl b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnologyFamily.aidl new file mode 100644 index 0000000000000000000000000000000000000000..85e9850cad4ff83a246c508839805918d778ba1f --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio/3/android/hardware/radio/RadioTechnologyFamily.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.radio; +/* @hide */ +@Backing(type="int") @JavaDerive(toString=true) @VintfStability +enum RadioTechnologyFamily { + THREE_GPP, + THREE_GPP2, +} diff --git a/radio/aidl/android/hardware/radio/config/IRadioConfig.aidl b/radio/aidl/android/hardware/radio/config/IRadioConfig.aidl index 9058d9d050a9c91e2780f750ac13b07df66ea2cc..8f4dff4bf629de9909850a8bb603e99a07648795 100644 --- a/radio/aidl/android/hardware/radio/config/IRadioConfig.aidl +++ b/radio/aidl/android/hardware/radio/config/IRadioConfig.aidl @@ -191,4 +191,20 @@ oneway interface IRadioConfig { * This is available when android.hardware.telephony.subscription is defined. */ void setSimSlotsMapping(in int serial, in SlotPortMapping[] slotMap); + + /** + * Get the set of logical slots where simultaneous cellular calling is currently possible. This + * does not include simultaneous calling availability over other non-cellular transports, such + * as IWLAN. + * + * Get the set of slots that currently support simultaneous cellular calling. When a new + * cellular call is placed/received, if another slot is active and handing a call, both the + * active slot and proposed slot must be in this list in order to support simultaneous cellular + * calling for both of those slots. + * + * @param serial Serial number of request + * + * This is available when android.hardware.telephony is defined. + */ + void getSimultaneousCallingSupport(in int serial); } diff --git a/radio/aidl/android/hardware/radio/config/IRadioConfigIndication.aidl b/radio/aidl/android/hardware/radio/config/IRadioConfigIndication.aidl index ed2366bbad49eba73f680b25ee1fc8c59e9711ee..9eacb8e65374f6987cf1f0a25e7ceb1fcbecd5b3 100644 --- a/radio/aidl/android/hardware/radio/config/IRadioConfigIndication.aidl +++ b/radio/aidl/android/hardware/radio/config/IRadioConfigIndication.aidl @@ -37,4 +37,15 @@ oneway interface IRadioConfigIndication { */ void simSlotsStatusChanged( in android.hardware.radio.RadioIndicationType type, in SimSlotStatus[] slotStatus); + + /** + * The logical slots supporting simultaneous cellular calling has changed. + * + * @param enabledLogicalSlots The slots that have simultaneous cellular calling enabled. If + * there is a call active on logical slot X, then a simultaneous cellular call is only possible + * on logical slot Y if BOTH slot X and slot Y are in enabledLogicalSlots. If simultaneous + * cellular calling is not currently supported, the expected value of enabledLogicalSLots is an + * empty int array. Sending only one radio slot is not acceptable in any case. + */ + void onSimultaneousCallingSupportChanged(in int[] enabledLogicalSlots); } diff --git a/radio/aidl/android/hardware/radio/config/IRadioConfigResponse.aidl b/radio/aidl/android/hardware/radio/config/IRadioConfigResponse.aidl index df93e3c3361ffa602b257288f1d85e361f388d06..33b0ff0688a8b6be0d55b3b2ae7e8ebb0afdec69 100644 --- a/radio/aidl/android/hardware/radio/config/IRadioConfigResponse.aidl +++ b/radio/aidl/android/hardware/radio/config/IRadioConfigResponse.aidl @@ -129,4 +129,27 @@ oneway interface IRadioConfigResponse { * RadioError:INVALID_ARGUMENTS */ void setSimSlotsMappingResponse(in android.hardware.radio.RadioResponseInfo info); + + /** + * Response to the asynchronous + * {@link IRadioConfig#getSimultaneousCallingSupport} request. + * + * @param info Response info struct containing response type, serial no. and error + * @param enabledLogicalSlots The slots that have simultaneous cellular calling enabled. If + * there is a call active on logical slot X, then a simultaneous cellular call is only possible + * on logical slot Y if BOTH slot X and slot Y are in enabledLogicalSlots. If simultaneous + * cellular calling is not currently supported, the expected value of enabledLogicalSLots is an + * empty int array. Sending only one radio slot is not acceptable in any case. + * + * Valid errors returned: + * RadioError:REQUEST_NOT_SUPPORTED when android.hardware.telephony is not defined + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:MODEM_ERR + * + * @see IRadioConfig#getSimultaneousCallingSupport for more information. + */ + void getSimultaneousCallingSupportResponse( + in android.hardware.radio.RadioResponseInfo info, in int[] enabledLogicalSlots); } diff --git a/radio/aidl/android/hardware/radio/config/PhoneCapability.aidl b/radio/aidl/android/hardware/radio/config/PhoneCapability.aidl index 35d6b5d86da4dbb61d0466fe997655a133ac7896..7936eb6cd7418d29fa0bffe399aae681ba2f89ed 100644 --- a/radio/aidl/android/hardware/radio/config/PhoneCapability.aidl +++ b/radio/aidl/android/hardware/radio/config/PhoneCapability.aidl @@ -25,6 +25,7 @@ package android.hardware.radio.config; @VintfStability @JavaDerive(toString=true) parcelable PhoneCapability { + const byte UNKNOWN = -1; /** * maxActiveData defines how many logical modems can have * PS attached simultaneously. For example, for L+L modem it @@ -47,4 +48,10 @@ parcelable PhoneCapability { * List of logical modem IDs. */ byte[] logicalModemIds; + /** + * maxActiveVoice defines how many logical modems can have + * cellular voice calls simultaneously. For example, for cellular DSDA + * with simultaneous calling support, it should be 2. + */ + byte maxActiveVoice = UNKNOWN; } diff --git a/radio/aidl/android/hardware/radio/ims/SuggestedAction.aidl b/radio/aidl/android/hardware/radio/ims/SuggestedAction.aidl index f0e28fc8e0a52edc5c1ed059d4b2e9737e2244bb..73c57fada3faa33fe171b18461e3848a0a28a0fd 100644 --- a/radio/aidl/android/hardware/radio/ims/SuggestedAction.aidl +++ b/radio/aidl/android/hardware/radio/ims/SuggestedAction.aidl @@ -37,9 +37,10 @@ enum SuggestedAction { TRIGGER_PLMN_BLOCK_WITH_TIMEOUT, /** * Indicates that the IMS registration on current RAT failed multiple times. - * The radio shall block the current RAT and search for other available RATs in the - * background. If no other RAT is available that meets the carrier requirements, the - * radio may remain on the current RAT for internet service. The radio clears all + * The radio shall block the {@link AccessNetwork} included with this and + * search for other available RATs in the background. + * If no other RAT is available that meets the carrier requirements, the + * radio may remain on the blocked RAT for internet service. The radio clears all * RATs marked as unavailable if {@link IRadioIms#updateImsRegistrationInfo()} API * with REGISTERED state is invoked. */ @@ -48,5 +49,5 @@ enum SuggestedAction { * Indicates that the radio clears all RATs marked as unavailable and tries to find * an available RAT that meets the carrier requirements. */ - TRIGGER_CLEAR_RAT_BLOCK, + TRIGGER_CLEAR_RAT_BLOCKS, } diff --git a/radio/aidl/android/hardware/radio/ims/media/IImsMediaSession.aidl b/radio/aidl/android/hardware/radio/ims/media/IImsMediaSession.aidl index 0fe67406ff11002528a919dc0442eed2ba60b93c..69ca7805625fe9d43a33cdcdb9ef436929c6d7c4 100644 --- a/radio/aidl/android/hardware/radio/ims/media/IImsMediaSession.aidl +++ b/radio/aidl/android/hardware/radio/ims/media/IImsMediaSession.aidl @@ -110,8 +110,7 @@ oneway interface IImsMediaSession { * Adjust the delay in the jitter buffer to synchronize the audio with the time of video * frames * - * @param delayMs The delay to apply to the jitter buffer. If it is positive, the jitter - * buffer increases the delay, if it is negative, the jitter buffer decreases the delay. + * @param delayMs The additional delay to the jitter buffer in milliseconds. * * This is available when android.hardware.telephony.ims is defined. */ diff --git a/radio/aidl/android/hardware/radio/ims/media/RtpReceptionStats.aidl b/radio/aidl/android/hardware/radio/ims/media/RtpReceptionStats.aidl index 1239d13474455b6dc225fb22fb09690eae1c09e1..81c0bb27dc35dbe9a25928503c29e83092af243c 100644 --- a/radio/aidl/android/hardware/radio/ims/media/RtpReceptionStats.aidl +++ b/radio/aidl/android/hardware/radio/ims/media/RtpReceptionStats.aidl @@ -20,12 +20,19 @@ package android.hardware.radio.ims.media; parcelable RtpReceptionStats { /** The timestamp of the latest RTP packet received */ int rtpTimestamp; - /** The sequence number of latest RTP packet received */ - int rtpSequenceNumber; - /** The system clock time in millisecond of latest RTP packet received */ - int timeDurationMs; - /** The jitter buffer size in millisecond when latest RTP packet received */ + + /** The timestamp of the latest RTCP-SR packet received */ + int rtcpSrTimestamp; + + /** The NTP timestamp of latest RTCP-SR packet received */ + long rtcpSrNtpTimestamp; + + /** + * The mean jitter buffer delay of a media stream from received to playback, measured in + * milliseconds, within the reporting interval + */ int jitterBufferMs; + /** The round trip time delay in millisecond when latest RTP packet received */ int roundTripTimeMs; } diff --git a/radio/aidl/android/hardware/radio/network/ConnectionEvent.aidl b/radio/aidl/android/hardware/radio/network/ConnectionEvent.aidl index 2e39ebf791c6da48f46ce8840402577b2ce0fe94..d5f367f64626e8620bf84f157995a903214ab3a2 100644 --- a/radio/aidl/android/hardware/radio/network/ConnectionEvent.aidl +++ b/radio/aidl/android/hardware/radio/network/ConnectionEvent.aidl @@ -42,14 +42,20 @@ enum ConnectionEvent { AS_SIGNALLING_LTE = 5, // VoLTE + // Note: emergency calls could use either normal or SOS (emergency) PDN in practice VOLTE_SIP = 6, - VOLTE_RTP = 7, + VOLTE_SIP_SOS = 7, + VOLTE_RTP = 8, + VOLTE_RTP_SOS = 9, // 5G packet services - NAS_SIGNALLING_5G = 8, - AS_SIGNALLING_5G = 9, + NAS_SIGNALLING_5G = 10, + AS_SIGNALLING_5G = 11, // VoNR - VONR_SIP = 10, - VONR_RTP = 11, + // Note: emergency calls could use either normal or SOS (emergency) PDN in practice + VONR_SIP = 12, + VONR_SIP_SOS = 13, + VONR_RTP = 14, + VONR_RTP_SOS = 15 } diff --git a/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl b/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl index 9c2502d931421705f211bada85896127dc289bd9..da82b78d321477ffd9e3a7c1422d954f658c1f4b 100644 --- a/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl +++ b/radio/aidl/android/hardware/radio/network/IRadioNetworkIndication.aidl @@ -231,16 +231,24 @@ oneway interface IRadioNetworkIndication { /* * Indicates that a new ciphering or integrity algorithm was used for a particular voice, - * signaling, or data connection attempt for a given PLMN and/or access network. Due to - * power concerns, once a connection type has been reported on, follow-up reports about that - * connection type are only generated if there is any change to the previously reported - * encryption or integrity. Thus the AP is only to be notified when there is new information. - * List is reset upon rebooting thus info about initial connections is always passed to the - * AP after a reboot. List is also reset if the SIM is changed or if there has been a change - * in the access network. - * - * Note: a change only in cell ID should not trigger an update, as the design is intended to - * be agnostic to dual connectivity ("secondary serving cells"). + * signaling, or data connection for a given PLMN and/or access network. Due to power + * concerns, once a connection type has been reported on, follow-up reports about that + * connection type are only generated if there is any change to the most-recently reported + * encryption or integrity, or if the value of SecurityAlgorithmUpdate#isUnprotectedEmergency + * changes. A change only in cell ID should not trigger an update, as the design is intended + * to be agnostic to dual connectivity ("secondary serving cells"). + * + * Sample scenario to further clarify "most-recently reported": + * + * 1. Modem reports user is connected to a null-ciphered 3G network. + * 2. User then moves and connects to a well-ciphered 5G network, and modem reports this. + * 3. User returns to original location and reconnects to the null-ciphered 3G network. Modem + * should report this as it's different than the most-recently reported data from step (2). + * + * State is reset when (1) RadioState is transitioned to ON from any other state (e.g. radio + * is turned on during device boot, or modem boot), and (2) when CardState is transitioned + * to PRESENT from any other state (e.g. when SIM is inserted), or (3) if there is a change in + * access network (PLMN). * * @param type Type of radio indication * @param securityAlgorithmUpdate SecurityAlgorithmUpdate encapsulates details of security diff --git a/radio/aidl/android/hardware/radio/network/RegistrationFailCause.aidl b/radio/aidl/android/hardware/radio/network/RegistrationFailCause.aidl index 2955f9658d25eb976f15801b6340bbdfab67cac1..11fd8c5ec96b26f19dc650c159fe30d2e33150ff 100644 --- a/radio/aidl/android/hardware/radio/network/RegistrationFailCause.aidl +++ b/radio/aidl/android/hardware/radio/network/RegistrationFailCause.aidl @@ -86,9 +86,14 @@ enum RegistrationFailCause { */ NO_SUITABLE_CELLS = 15, /** - * 16 - MSC temporarily not reachable + * @deprecated MSC_TEMPORARILY_NOT_REACHABLE value is wrong and should not be used. + * Use MSC_TEMP_NOT_REACHABLE instead. */ MSC_TEMPORARILY_NOT_REACHABLE = 15, + /** + * 16 - MSC temporarily not reachable + */ + MSC_TEMP_NOT_REACHABLE = 16, /** * 17 - Network Failure */ diff --git a/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl b/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl index 71c654c53d60a4a8bc6403f5a648400de0974f2b..01f732738b4b55af01b757acf51537fc7475638c 100644 --- a/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl +++ b/radio/aidl/android/hardware/radio/network/SecurityAlgorithm.aidl @@ -59,7 +59,12 @@ enum SecurityAlgorithm { NEA2 = 57, NEA3 = 58, - // SIP layer security (See 3GPP TS 33.203) + // IMS and SIP layer security (See 3GPP TS 33.203) + // No IPsec config + SIP_NO_IPSEC_CONFIG = 66, + IMS_NULL = 67, + + // Has IPsec config SIP_NULL = 68, AES_GCM = 69, AES_GMAC = 70, @@ -67,16 +72,18 @@ enum SecurityAlgorithm { DES_EDE3_CBC = 72, AES_EDE3_CBC = 73, HMAC_SHA1_96 = 74, - HMAC_SHA1_96_null = 75, - HMAC_MD5_96 = 76, - HMAC_MD5_96_null = 77, + HMAC_MD5_96 = 75, - // RTP (see 3GPP TS 33.328) + // RTP and SRTP (see 3GPP TS 33.328) + // When SRTP is not being used + RTP = 85, + // When SRTP is available and used + SRTP_NULL = 86, SRTP_AES_COUNTER = 87, SRTP_AES_F8 = 88, SRTP_HMAC_SHA1 = 89, - // ePDG (3GPP TS 33.402) + // ePDG (3GPP TS 33.402) (reserved for future use) ENCR_AES_GCM_16 = 99, ENCR_AES_CBC = 100, AUTH_HMAC_SHA2_256_128 = 101, diff --git a/radio/aidl/android/hardware/radio/sim/CarrierInfo.aidl b/radio/aidl/android/hardware/radio/sim/CarrierInfo.aidl index a8904978acbcb6c311206a090cd3d736e0cd0ad8..74fe31bd9e713e165fa968d32b2b2aeb07f6ccd5 100644 --- a/radio/aidl/android/hardware/radio/sim/CarrierInfo.aidl +++ b/radio/aidl/android/hardware/radio/sim/CarrierInfo.aidl @@ -56,7 +56,7 @@ parcelable CarrierInfo { * Equivalent HPLMN of the SIM card of the Carrier. */ @nullable - List ephlmn; + List ehplmn; /** * ICCID (Integrated Circuit Card Identification) of the SIM card. */ diff --git a/radio/aidl/compat/libradiocompat/Android.bp b/radio/aidl/compat/libradiocompat/Android.bp index 66970dbf98e459f861f4106153c2a1eaacc2a35a..d78455ebce93e715b50ece0eb41b018da56ac80e 100644 --- a/radio/aidl/compat/libradiocompat/Android.bp +++ b/radio/aidl/compat/libradiocompat/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/aidl/compat/libradiocompat/CallbackManager.cpp b/radio/aidl/compat/libradiocompat/CallbackManager.cpp index c2eaed19590857ee4ea08e4ce82019020c8e046a..96aaebcc4c07122d3a819912e3aa67d0470eedf1 100644 --- a/radio/aidl/compat/libradiocompat/CallbackManager.cpp +++ b/radio/aidl/compat/libradiocompat/CallbackManager.cpp @@ -53,6 +53,10 @@ RadioResponse& CallbackManager::response() const { return *mRadioResponse; } +RadioIndication& CallbackManager::indication() const { + return *mRadioIndication; +} + void CallbackManager::setResponseFunctionsDelayed() { std::unique_lock lock(mDelayedSetterGuard); mDelayedSetterDeadline = std::chrono::steady_clock::now() + kDelayedSetterDelay; diff --git a/radio/aidl/compat/libradiocompat/config/RadioConfig.cpp b/radio/aidl/compat/libradiocompat/config/RadioConfig.cpp index b45041811d4de0615ab80e992ff3ee1e719f1a34..837c62656a95db54338f09039acbb71f65e2e7fc 100644 --- a/radio/aidl/compat/libradiocompat/config/RadioConfig.cpp +++ b/radio/aidl/compat/libradiocompat/config/RadioConfig.cpp @@ -62,6 +62,13 @@ ScopedAStatus RadioConfig::getPhoneCapability(int32_t serial) { return ok(); } +ScopedAStatus RadioConfig::getSimultaneousCallingSupport(int32_t serial) { + LOG_CALL << serial; + LOG(ERROR) << " getSimultaneousCallingSupport is unsupported by HIDL HALs"; + respond()->getSimultaneousCallingSupportResponse(notSupported(serial), {}); + return ok(); +} + ScopedAStatus RadioConfig::getSimSlotsStatus(int32_t serial) { LOG_CALL << serial; mHal1_1->getSimSlotsStatus(serial); diff --git a/radio/aidl/compat/libradiocompat/include/libradiocompat/CallbackManager.h b/radio/aidl/compat/libradiocompat/include/libradiocompat/CallbackManager.h index f1a7b49c7a2022baecddd4a6aa8727f2baf6a440..34ab5d713df3ff4431e7308abd77288828d62f4e 100644 --- a/radio/aidl/compat/libradiocompat/include/libradiocompat/CallbackManager.h +++ b/radio/aidl/compat/libradiocompat/include/libradiocompat/CallbackManager.h @@ -46,6 +46,7 @@ class CallbackManager { ~CallbackManager(); RadioResponse& response() const; + RadioIndication& indication() const; template void setResponseFunctions(const std::shared_ptr& response, diff --git a/radio/aidl/compat/libradiocompat/include/libradiocompat/RadioConfig.h b/radio/aidl/compat/libradiocompat/include/libradiocompat/RadioConfig.h index 89ddea0d49c40a35f0d5d4e1c19188fed780a2fc..17d59858a4a0d8470e2807a7953a7f82c7abb2bd 100644 --- a/radio/aidl/compat/libradiocompat/include/libradiocompat/RadioConfig.h +++ b/radio/aidl/compat/libradiocompat/include/libradiocompat/RadioConfig.h @@ -42,6 +42,7 @@ class RadioConfig : public aidl::android::hardware::radio::config::BnRadioConfig ::ndk::ScopedAStatus getHalDeviceCapabilities(int32_t serial) override; ::ndk::ScopedAStatus getNumOfLiveModems(int32_t serial) override; ::ndk::ScopedAStatus getPhoneCapability(int32_t serial) override; + ::ndk::ScopedAStatus getSimultaneousCallingSupport(int32_t serial) override; ::ndk::ScopedAStatus getSimSlotsStatus(int32_t serial) override; ::ndk::ScopedAStatus setNumOfLiveModems(int32_t serial, int8_t numOfLiveModems) override; ::ndk::ScopedAStatus setPreferredDataModem(int32_t serial, int8_t modemId) override; diff --git a/radio/aidl/compat/service/Android.bp b/radio/aidl/compat/service/Android.bp index 62c99febabdaa2283b15f855d5d56a3aba16dfd6..c8bbd4cf299d3b251923d6639dde0edcc421bb1b 100644 --- a/radio/aidl/compat/service/Android.bp +++ b/radio/aidl/compat/service/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/aidl/vts/Android.bp b/radio/aidl/vts/Android.bp index d98568637090c0a6c9827aee3233a1192ac2b0e2..e83a7c1d10dc14e35e9bd80786ae0bc5f3e25d9e 100644 --- a/radio/aidl/vts/Android.bp +++ b/radio/aidl/vts/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/aidl/vts/radio_config_indication.cpp b/radio/aidl/vts/radio_config_indication.cpp index a84c20b4b70fdbe40550cc1c904af6a58dada282..c7076632f21e4eb3c93ab77264311394552a6bd4 100644 --- a/radio/aidl/vts/radio_config_indication.cpp +++ b/radio/aidl/vts/radio_config_indication.cpp @@ -22,3 +22,8 @@ ndk::ScopedAStatus RadioConfigIndication::simSlotsStatusChanged( RadioIndicationType /*type*/, const std::vector& /*slotStatus*/) { return ndk::ScopedAStatus::ok(); } + +ndk::ScopedAStatus RadioConfigIndication::onSimultaneousCallingSupportChanged( + const std::vector& /*enabledLogicalSlots*/) { + return ndk::ScopedAStatus::ok(); +} diff --git a/radio/aidl/vts/radio_config_response.cpp b/radio/aidl/vts/radio_config_response.cpp index 7384f87adc1421917d48d9ddf64ed25cb9fab864..c532440dcc3ceece8002b6408fb20a2cc1437ec8 100644 --- a/radio/aidl/vts/radio_config_response.cpp +++ b/radio/aidl/vts/radio_config_response.cpp @@ -40,6 +40,14 @@ ndk::ScopedAStatus RadioConfigResponse::getPhoneCapabilityResponse( return ndk::ScopedAStatus::ok(); } +ndk::ScopedAStatus RadioConfigResponse::getSimultaneousCallingSupportResponse( + const RadioResponseInfo& info, const std::vector& enabledLogicalSlots) { + rspInfo = info; + currentEnabledLogicalSlots = enabledLogicalSlots; + parent_config.notify(info.serial); + return ndk::ScopedAStatus::ok(); +} + ndk::ScopedAStatus RadioConfigResponse::setPreferredDataModemResponse( const RadioResponseInfo& info) { rspInfo = info; diff --git a/radio/aidl/vts/radio_config_test.cpp b/radio/aidl/vts/radio_config_test.cpp index d8c0142ccd7516395326c5bbde72c8f34beba0c8..6f18d18c498d690942cabb1a9cb77c0abc90cee9 100644 --- a/radio/aidl/vts/radio_config_test.cpp +++ b/radio/aidl/vts/radio_config_test.cpp @@ -121,6 +121,48 @@ TEST_P(RadioConfigTest, getPhoneCapability) { } } +/* + * Test IRadioConfig.getSimultaneousCallingSupport() for the response returned. + */ +TEST_P(RadioConfigTest, getSimultaneousCallingSupport) { + if (telephony_flags::enforce_telephony_feature_mapping()) { + if (!deviceSupportsFeature(FEATURE_TELEPHONY)) { + GTEST_SKIP() << "Skipping getSimultaneousCallingSupport " + "due to undefined FEATURE_TELEPHONY"; + } + } + + int32_t aidl_version; + ndk::ScopedAStatus aidl_status = radio_config->getInterfaceVersion(&aidl_version); + ASSERT_OK(aidl_status); + if (aidl_version < 3) { + ALOGI("Skipped the test since" + " getSimultaneousCallingSupport is not supported on version < 3."); + GTEST_SKIP(); + } + + serial = GetRandomSerialNumber(); + ndk::ScopedAStatus res = radio_config->getSimultaneousCallingSupport(serial); + ASSERT_OK(res); + EXPECT_EQ(std::cv_status::no_timeout, wait()); + EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_config->rspInfo.type); + EXPECT_EQ(serial, radioRsp_config->rspInfo.serial); + ALOGI("getSimultaneousCallingSupport, rspInfo.error = %s\n", + toString(radioRsp_config->rspInfo.error).c_str()); + + // REQUEST_NOT_SUPPORTED is omitted here because users of the V3 HAL should implement this + // method and return at least an empty array + ASSERT_TRUE(CheckAnyOfErrors( + radioRsp_config->rspInfo.error, + {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::INTERNAL_ERR, + RadioError::MODEM_ERR})); + + if (radioRsp_config->rspInfo.error == RadioError ::NONE) { + // The size of enabledLogicalSLots should be 0 or a positive number: + EXPECT_GE(radioRsp_config->currentEnabledLogicalSlots.size(), 0); + } +} + /* * Test IRadioConfig.setPreferredDataModem() for the response returned. */ diff --git a/radio/aidl/vts/radio_config_utils.h b/radio/aidl/vts/radio_config_utils.h index f79aedbf9e3371e9d084f1fac109f9d2bf0f1132..84c74fcec7a25f5ae9d125db5ac5724b6cda64ca 100644 --- a/radio/aidl/vts/radio_config_utils.h +++ b/radio/aidl/vts/radio_config_utils.h @@ -39,6 +39,7 @@ class RadioConfigResponse : public BnRadioConfigResponse { PhoneCapability phoneCap; bool modemReducedFeatureSet1; std::vector simSlotStatus; + std::vector currentEnabledLogicalSlots; virtual ndk::ScopedAStatus getSimSlotsStatusResponse( const RadioResponseInfo& info, const std::vector& slotStatus) override; @@ -48,6 +49,9 @@ class RadioConfigResponse : public BnRadioConfigResponse { virtual ndk::ScopedAStatus getPhoneCapabilityResponse( const RadioResponseInfo& info, const PhoneCapability& phoneCapability) override; + virtual ndk::ScopedAStatus getSimultaneousCallingSupportResponse( + const RadioResponseInfo& info, const std::vector& enabledLogicalSlots) override; + virtual ndk::ScopedAStatus setPreferredDataModemResponse( const RadioResponseInfo& info) override; @@ -71,6 +75,9 @@ class RadioConfigIndication : public BnRadioConfigIndication { virtual ndk::ScopedAStatus simSlotsStatusChanged( RadioIndicationType type, const std::vector& slotStatus) override; + + virtual ndk::ScopedAStatus onSimultaneousCallingSupportChanged( + const std::vector& /*enabledLogicalSlots*/) override; }; // The main test class for Radio AIDL Config. diff --git a/radio/aidl/vts/radio_network_test.cpp b/radio/aidl/vts/radio_network_test.cpp index 32b246aa4444b90323bd15ee5b06e23d67e73c64..5cb0158a93290a07883e19e6f9d9c65c67d2a04d 100644 --- a/radio/aidl/vts/radio_network_test.cpp +++ b/radio/aidl/vts/radio_network_test.cpp @@ -237,8 +237,10 @@ TEST_P(RadioNetworkTest, getUsageSetting) { {RadioError::RADIO_NOT_AVAILABLE, RadioError::INVALID_STATE, RadioError::SIM_ABSENT, RadioError::INTERNAL_ERR, RadioError::NONE}); - ASSERT_TRUE(radioRsp_network->usageSetting == UsageSetting::VOICE_CENTRIC || - radioRsp_network->usageSetting == UsageSetting::DATA_CENTRIC); + if (radioRsp_network->rspInfo.error == RadioError::NONE) { + ASSERT_TRUE(radioRsp_network->usageSetting == UsageSetting::VOICE_CENTRIC || + radioRsp_network->usageSetting == UsageSetting::DATA_CENTRIC); + } } void RadioNetworkTest::testSetUsageSetting_InvalidValues(std::vector errors) { @@ -883,7 +885,7 @@ TEST_P(RadioNetworkTest, setLinkCapacityReportingCriteria_invalidHysteresisDlKbp ALOGI("setLinkCapacityReportingCriteria_invalidHysteresisDlKbps, rspInfo.error = %s\n", toString(radioRsp_network->rspInfo.error).c_str()); - ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); + ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, {RadioError::INVALID_ARGUMENTS, RadioError::REQUEST_NOT_SUPPORTED})); } /* @@ -909,7 +911,7 @@ TEST_P(RadioNetworkTest, setLinkCapacityReportingCriteria_invalidHysteresisUlKbp ALOGI("setLinkCapacityReportingCriteria_invalidHysteresisUlKbps, rspInfo.error = %s\n", toString(radioRsp_network->rspInfo.error).c_str()); - ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, {RadioError::INVALID_ARGUMENTS})); + ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, {RadioError::INVALID_ARGUMENTS, RadioError::REQUEST_NOT_SUPPORTED})); } /* @@ -934,7 +936,7 @@ TEST_P(RadioNetworkTest, setLinkCapacityReportingCriteria_emptyParams) { ALOGI("setLinkCapacityReportingCriteria_emptyParams, rspInfo.error = %s\n", toString(radioRsp_network->rspInfo.error).c_str()); - ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, {RadioError::NONE})); + ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED})); } /* @@ -1422,19 +1424,12 @@ TEST_P(RadioNetworkTest, setNetworkSelectionModeManual) { EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_network->rspInfo.type); EXPECT_EQ(serial, radioRsp_network->rspInfo.serial); - if (cardStatus.cardState == CardStatus::STATE_ABSENT) { - ASSERT_TRUE(CheckAnyOfErrors( - radioRsp_network->rspInfo.error, - {RadioError::NONE, RadioError::ILLEGAL_SIM_OR_ME, RadioError::INVALID_ARGUMENTS, - RadioError::INVALID_STATE, RadioError::RADIO_NOT_AVAILABLE, RadioError::NO_MEMORY, - RadioError::INTERNAL_ERR, RadioError::SYSTEM_ERR, RadioError::CANCELLED})); - } else if (cardStatus.cardState == CardStatus::STATE_PRESENT) { - ASSERT_TRUE(CheckAnyOfErrors( - radioRsp_network->rspInfo.error, - {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::INVALID_ARGUMENTS, - RadioError::INVALID_STATE, RadioError::NO_MEMORY, RadioError::INTERNAL_ERR, - RadioError::SYSTEM_ERR, RadioError::CANCELLED})); - } + ASSERT_TRUE(CheckAnyOfErrors( + radioRsp_network->rspInfo.error, + {RadioError::NONE, RadioError::ILLEGAL_SIM_OR_ME, RadioError::RADIO_NOT_AVAILABLE, + RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE, RadioError::NO_MEMORY, + RadioError::INTERNAL_ERR, RadioError::SYSTEM_ERR, RadioError::CANCELLED, + RadioError::MODEM_ERR, RadioError::OPERATION_NOT_ALLOWED, RadioError::NO_RESOURCES})); } /* @@ -2382,16 +2377,9 @@ TEST_P(RadioNetworkTest, setNullCipherAndIntegrityEnabled) { EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_network->rspInfo.type); EXPECT_EQ(serial, radioRsp_network->rspInfo.serial); - if (aidl_version >= 3 && deviceSupportsFeature(FEATURE_TELEPHONY_RADIO_ACCESS)) { - ASSERT_TRUE(CheckAnyOfErrors( - radioRsp_network->rspInfo.error, - {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::MODEM_ERR})); - } else { - // For aidl_version 2, API is optional - ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, - {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, - RadioError::MODEM_ERR, RadioError::REQUEST_NOT_SUPPORTED})); - } + ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, + {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, + RadioError::MODEM_ERR, RadioError::REQUEST_NOT_SUPPORTED})); } /** @@ -2423,16 +2411,9 @@ TEST_P(RadioNetworkTest, isNullCipherAndIntegrityEnabled) { EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_network->rspInfo.type); EXPECT_EQ(serial, radioRsp_network->rspInfo.serial); - if (aidl_version >= 3 && deviceSupportsFeature(FEATURE_TELEPHONY_RADIO_ACCESS)) { - ASSERT_TRUE(CheckAnyOfErrors( - radioRsp_network->rspInfo.error, - {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::MODEM_ERR})); - } else { - // For aidl_version 2, API is optional - ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, - {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, - RadioError::MODEM_ERR, RadioError::REQUEST_NOT_SUPPORTED})); - } + ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, + {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, + RadioError::MODEM_ERR, RadioError::REQUEST_NOT_SUPPORTED})); } TEST_P(RadioNetworkTest, isCellularIdentifierTransparencyEnabled) { diff --git a/radio/aidl/vts/radio_network_utils.h b/radio/aidl/vts/radio_network_utils.h index 470ee7374b2709fc4266e323ca7b41c4c5011dfa..ad530eb36bd98278eef332d300a6161785dda141 100644 --- a/radio/aidl/vts/radio_network_utils.h +++ b/radio/aidl/vts/radio_network_utils.h @@ -38,16 +38,16 @@ class RadioNetworkResponse : public BnRadioNetworkResponse { RadioResponseInfo rspInfo; std::vector radioBandModes; std::vector networkInfos; - bool isNrDualConnectivityEnabled; - int networkTypeBitmapResponse; + bool isNrDualConnectivityEnabled = false; + int networkTypeBitmapResponse = 0; RegStateResult voiceRegResp; RegStateResult dataRegResp; CellIdentity barringCellIdentity; std::vector barringInfoList; UsageSetting usageSetting; std::vector specifiers; - bool isCellularIdentifierTransparencyEnabled; - bool isSecurityAlgorithmsUpdatedEnabled; + bool isCellularIdentifierTransparencyEnabled = false; + bool isSecurityAlgorithmsUpdatedEnabled = false; virtual ndk::ScopedAStatus acknowledgeRequest(int32_t serial) override; diff --git a/radio/config/1.0/Android.bp b/radio/config/1.0/Android.bp index 9e317b378ecb3bd3fee52f3de3cc33adf7dbb0c8..98be5a75ad94251a8e84d2ce8252a5eadc263079 100644 --- a/radio/config/1.0/Android.bp +++ b/radio/config/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.0/default/Android.bp b/radio/config/1.0/default/Android.bp index e221ceb9fcef4e2b30a53854c56fd56a82f4233e..ed12108f93bcd6e12fc39cb018ca89592e7220af 100644 --- a/radio/config/1.0/default/Android.bp +++ b/radio/config/1.0/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.0/vts/functional/Android.bp b/radio/config/1.0/vts/functional/Android.bp index 36aecff13c372af9c2394e7ea6252ec94045dee8..e28eb438047fdf1d614437ca628998e2204aced1 100644 --- a/radio/config/1.0/vts/functional/Android.bp +++ b/radio/config/1.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.1/Android.bp b/radio/config/1.1/Android.bp index b1705f98ec80f5550a14cf3d7c145d4592172ffe..8aa8a4dcd4b3e6d9f33a208c0e8bddc2f79bd7c4 100644 --- a/radio/config/1.1/Android.bp +++ b/radio/config/1.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.1/vts/functional/Android.bp b/radio/config/1.1/vts/functional/Android.bp index 9037b793a7ce1d0eeae7761aaf29c80bdb4f43e2..87bcaa99e26460c3355817b0a3699b3a71a1691e 100644 --- a/radio/config/1.1/vts/functional/Android.bp +++ b/radio/config/1.1/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.2/Android.bp b/radio/config/1.2/Android.bp index 3327af4d86d862543b4d406fcc97ab13e45ed7b8..e58ac0b746ed7b182fad10c01ae8c6dfa6c9232c 100644 --- a/radio/config/1.2/Android.bp +++ b/radio/config/1.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.2/vts/functional/Android.bp b/radio/config/1.2/vts/functional/Android.bp index 1a15d3f5fada88c3e8815fee71eeabdce6b99f75..5ebb22266bd03e7f475541edefc05917aa91c225 100644 --- a/radio/config/1.2/vts/functional/Android.bp +++ b/radio/config/1.2/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.3/Android.bp b/radio/config/1.3/Android.bp index dc0d82cabd3c3b432f497071ffc3e8293455af4c..c39984c38f76d8635884f3ce6804058e36809c06 100644 --- a/radio/config/1.3/Android.bp +++ b/radio/config/1.3/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/radio/config/1.3/vts/functional/Android.bp b/radio/config/1.3/vts/functional/Android.bp index 20c480ff3de06e9e81d430c8907ffe814982d255..738d5d39034f59302a81ff91e2ca8ce2042d06bf 100644 --- a/radio/config/1.3/vts/functional/Android.bp +++ b/radio/config/1.3/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -50,7 +51,7 @@ cc_test { cc_library_static { name: "RadioConfigVtsTestResponse", defaults: ["VtsHalTargetTestDefaults"], - srcs : [ + srcs: [ "radio_config_response.cpp", "radio_config_hidl_hal_test.cpp", ], diff --git a/radio/deprecated/1.0/Android.bp b/radio/deprecated/1.0/Android.bp index 53f6da51b9a1abd077455d6c42de7e1be54e101a..a607644b372a8c131399f0f9ca66f082e1f45587 100644 --- a/radio/deprecated/1.0/Android.bp +++ b/radio/deprecated/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_telephony", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/secure_element/1.0/vts/functional/VtsHalSecureElementV1_0TargetTest.cpp b/secure_element/1.0/vts/functional/VtsHalSecureElementV1_0TargetTest.cpp index 63c2ecafb317b372672b7af529051027f9bf7268..1623960cb55721b493dea7a07ba10b281392ade9 100644 --- a/secure_element/1.0/vts/functional/VtsHalSecureElementV1_0TargetTest.cpp +++ b/secure_element/1.0/vts/functional/VtsHalSecureElementV1_0TargetTest.cpp @@ -75,6 +75,7 @@ class SecureElementHidlTest : public ::testing::TestWithParam { se_->init(se_cb_); auto res = se_cb_->WaitForCallback(kCallbackNameOnStateChange); EXPECT_TRUE(res.no_timeout); + ASSERT_TRUE(res.args); EXPECT_TRUE(res.args->state_); } diff --git a/secure_element/1.1/vts/functional/VtsHalSecureElementV1_1TargetTest.cpp b/secure_element/1.1/vts/functional/VtsHalSecureElementV1_1TargetTest.cpp index 234c33ca6995200818fd628b56180ed5e417a770..d7e45463ef7656dfd232d8940c4ecb85a444478a 100644 --- a/secure_element/1.1/vts/functional/VtsHalSecureElementV1_1TargetTest.cpp +++ b/secure_element/1.1/vts/functional/VtsHalSecureElementV1_1TargetTest.cpp @@ -72,6 +72,7 @@ class SecureElementHidlTest : public ::testing::TestWithParam { se_->init_1_1(se_cb_); auto res = se_cb_->WaitForCallback(kCallbackNameOnStateChange); EXPECT_TRUE(res.no_timeout); + ASSERT_TRUE(res.args); EXPECT_TRUE(res.args->state_); EXPECT_NE(res.args->reason_, ""); } diff --git a/secure_element/1.2/vts/functional/VtsHalSecureElementV1_2TargetTest.cpp b/secure_element/1.2/vts/functional/VtsHalSecureElementV1_2TargetTest.cpp index 66d581e223efca76cff6560a595a1fd9ee6ca642..26b2ded1461a4e13a183a6d0a8c0011212926595 100644 --- a/secure_element/1.2/vts/functional/VtsHalSecureElementV1_2TargetTest.cpp +++ b/secure_element/1.2/vts/functional/VtsHalSecureElementV1_2TargetTest.cpp @@ -73,6 +73,7 @@ class SecureElementHidlTest : public ::testing::TestWithParam { se_->init_1_1(se_cb_); auto res = se_cb_->WaitForCallback(kCallbackNameOnStateChange); EXPECT_TRUE(res.no_timeout); + ASSERT_TRUE(res.args); EXPECT_TRUE(res.args->state_); EXPECT_NE(res.args->reason_, ""); } @@ -93,10 +94,12 @@ TEST_P(SecureElementHidlTest, Reset) { auto res = se_cb_->WaitForCallback(kCallbackNameOnStateChange); EXPECT_TRUE(res.no_timeout); + ASSERT_TRUE(res.args); EXPECT_FALSE(res.args->state_); res = se_cb_->WaitForCallback(kCallbackNameOnStateChange); EXPECT_TRUE(res.no_timeout); + ASSERT_TRUE(res.args); EXPECT_TRUE(res.args->state_); } diff --git a/secure_element/aidl/vts/AndroidTest.xml b/secure_element/aidl/vts/AndroidTest.xml new file mode 100644 index 0000000000000000000000000000000000000000..94dfa8290a9ab46622af84ffef6a5415c46c6eb3 --- /dev/null +++ b/secure_element/aidl/vts/AndroidTest.xml @@ -0,0 +1,33 @@ + + + + diff --git a/security/authgraph/aidl/Android.bp b/security/authgraph/aidl/Android.bp index f3d12816ca4d25c3a099e72f07659e033fb46f61..cb451981b4ebb8282e0566e851d2a4197ab98275 100644 --- a/security/authgraph/aidl/Android.bp +++ b/security/authgraph/aidl/Android.bp @@ -28,7 +28,7 @@ aidl_interface { "android/hardware/security/authgraph/*.aidl", ], stability: "vintf", - frozen: false, + frozen: true, backend: { java: { platform_apis: true, @@ -44,6 +44,13 @@ aidl_interface { ], }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + } // cc_defaults that includes the latest Authgraph AIDL library. diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/.hash b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/.hash new file mode 100644 index 0000000000000000000000000000000000000000..c0bd06ac57f930ff4b40b3c698625b3e2b5f32ca --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/.hash @@ -0,0 +1 @@ +3758824e7b75acdb1ca66620fb8a8aec0ec6dfcc diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Arc.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Arc.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dc86fbd5b802a4cb554f3d06b756907430891749 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Arc.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +/* @hide */ +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable Arc { + byte[] arc; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Error.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Error.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1a78b54550cbfb5bcd41c2879527e460225b047c --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Error.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +/* @hide */ +@Backing(type="int") @VintfStability +enum Error { + OK = 0, + INVALID_PEER_NONCE = (-1) /* -1 */, + INVALID_PEER_KE_KEY = (-2) /* -2 */, + INVALID_IDENTITY = (-3) /* -3 */, + INVALID_CERT_CHAIN = (-4) /* -4 */, + INVALID_SIGNATURE = (-5) /* -5 */, + INVALID_KE_KEY = (-6) /* -6 */, + INVALID_PUB_KEY_IN_KEY = (-7) /* -7 */, + INVALID_PRIV_KEY_ARC_IN_KEY = (-8) /* -8 */, + INVALID_SHARED_KEY_ARCS = (-9) /* -9 */, + MEMORY_ALLOCATION_FAILED = (-10) /* -10 */, + INCOMPATIBLE_PROTOCOL_VERSION = (-11) /* -11 */, +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/IAuthGraphKeyExchange.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/IAuthGraphKeyExchange.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2c56f339ddabcd1f43c996b2954c4f1ed8abef71 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/IAuthGraphKeyExchange.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +/* @hide */ +@VintfStability +interface IAuthGraphKeyExchange { + android.hardware.security.authgraph.SessionInitiationInfo create(); + android.hardware.security.authgraph.KeInitResult init(in android.hardware.security.authgraph.PubKey peerPubKey, in android.hardware.security.authgraph.Identity peerId, in byte[] peerNonce, in int peerVersion); + android.hardware.security.authgraph.SessionInfo finish(in android.hardware.security.authgraph.PubKey peerPubKey, in android.hardware.security.authgraph.Identity peerId, in android.hardware.security.authgraph.SessionIdSignature peerSignature, in byte[] peerNonce, in int peerVersion, in android.hardware.security.authgraph.Key ownKey); + android.hardware.security.authgraph.Arc[2] authenticationComplete(in android.hardware.security.authgraph.SessionIdSignature peerSignature, in android.hardware.security.authgraph.Arc[2] sharedKeys); +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Identity.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Identity.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bd5453ee829cccd68bbf09b3d4a410c74b027d86 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Identity.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable Identity { + byte[] identity; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/KeInitResult.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/KeInitResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8c91523784d55bdc499549e101f2bdfa2e58b808 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/KeInitResult.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable KeInitResult { + android.hardware.security.authgraph.SessionInitiationInfo sessionInitiationInfo; + android.hardware.security.authgraph.SessionInfo sessionInfo; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Key.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Key.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5b4ebbf9234045c9cae432446107295e8fe81eb9 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/Key.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable Key { + @nullable android.hardware.security.authgraph.PubKey pubKey; + @nullable android.hardware.security.authgraph.Arc arcFromPBK; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PlainPubKey.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PlainPubKey.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f070bfaef4f6ff04d704db848819fd90c719afb3 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PlainPubKey.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable PlainPubKey { + byte[] plainPubKey; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PubKey.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PubKey.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4c3376eb4d0115bea97fe3bb588dbd2816854dc5 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/PubKey.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +union PubKey { + android.hardware.security.authgraph.PlainPubKey plainKey; + android.hardware.security.authgraph.SignedPubKey signedKey; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionIdSignature.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionIdSignature.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6dabc0a08008d9ac6ae22a7706345f673bb45b52 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionIdSignature.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable SessionIdSignature { + byte[] signature; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInfo.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..427962b5b28bea322960489a9da30b7b12c3e706 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable SessionInfo { + android.hardware.security.authgraph.Arc[2] sharedKeys; + byte[] sessionId; + android.hardware.security.authgraph.SessionIdSignature signature; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInitiationInfo.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInitiationInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bf55e74a2abe1f9dd4bac0eda457586458699773 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SessionInitiationInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable SessionInitiationInfo { + android.hardware.security.authgraph.Key key; + android.hardware.security.authgraph.Identity identity; + byte[] nonce; + int version; +} diff --git a/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SignedPubKey.aidl b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SignedPubKey.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3dbaed81b8c750acbeba8017c8fd615c236e61d6 --- /dev/null +++ b/security/authgraph/aidl/aidl_api/android.hardware.security.authgraph/1/android/hardware/security/authgraph/SignedPubKey.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.authgraph; +@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability +parcelable SignedPubKey { + byte[] signedPubKey; +} diff --git a/security/authgraph/aidl/android/hardware/security/authgraph/ExplicitKeyDiceCertChain.cddl b/security/authgraph/aidl/android/hardware/security/authgraph/ExplicitKeyDiceCertChain.cddl index 3de56170281a02e2aa2a4d1dbff301dfed1f382a..2d6c69614a60c44c24bc82b40b0a884e99e9974c 100644 --- a/security/authgraph/aidl/android/hardware/security/authgraph/ExplicitKeyDiceCertChain.cddl +++ b/security/authgraph/aidl/android/hardware/security/authgraph/ExplicitKeyDiceCertChain.cddl @@ -19,11 +19,10 @@ ExplicitKeyDiceCertChain = [ * DiceChainEntry ] -DiceCertChainInitialPayload = { - -4670552 : bstr .cbor PubKeyEd25519 / - bstr .cbor PubKeyECDSA256 / - bstr .cbor PubKeyECDSA384 ; subjectPublicKey -} +; Encoded in accordance with Core Deterministic Encoding Requirements [RFC 8949 s4.2.1] +DiceCertChainInitialPayload = bstr .cbor PubKeyEd25519 + / bstr .cbor PubKeyECDSA256 + / bstr .cbor PubKeyECDSA384 ; subjectPublicKey ; INCLUDE generateCertificateRequestV2.cddl for: PubKeyEd25519, PubKeyECDSA256, PubKeyECDSA384, ; DiceChainEntry diff --git a/security/authgraph/default/src/lib.rs b/security/authgraph/default/src/lib.rs index 1f851b28e8fe03e6ae86513d67ef99ea4c70853e..1d6ffb3108acaa582045657c8eddca8e521c4115 100644 --- a/security/authgraph/default/src/lib.rs +++ b/security/authgraph/default/src/lib.rs @@ -22,6 +22,7 @@ use authgraph_core::{ ta::{AuthGraphTa, Role}, }; use authgraph_hal::channel::SerializedChannel; +use log::error; use std::cell::RefCell; use std::rc::Rc; use std::sync::{mpsc, Mutex}; @@ -57,10 +58,23 @@ impl LocalTa { ); // Loop forever processing request messages. loop { - let req_data: Vec = in_rx.recv().expect("failed to receive next req"); + let req_data: Vec = match in_rx.recv() { + Ok(data) => data, + Err(_) => { + error!("local TA failed to receive request!"); + break; + } + }; let rsp_data = ta.process(&req_data); - out_tx.send(rsp_data).expect("failed to send out rsp"); + match out_tx.send(rsp_data) { + Ok(_) => {} + Err(_) => { + error!("local TA failed to send out response"); + break; + } + } } + error!("local TA terminating!"); }); Ok(Self { channels: Mutex::new(Channels { in_tx, out_rx }), diff --git a/security/authgraph/default/src/main.rs b/security/authgraph/default/src/main.rs index ced75675834a7302b009e7f6d886eacbebf355d1..65ced75932fa81d590f1960cc6151d7c718314cd 100644 --- a/security/authgraph/default/src/main.rs +++ b/security/authgraph/default/src/main.rs @@ -50,8 +50,8 @@ fn inner_main() -> Result<(), HalServiceError> { android_logger::init_once( android_logger::Config::default() .with_tag("authgraph-hal-nonsecure") - .with_min_level(log::Level::Info) - .with_log_id(android_logger::LogId::System), + .with_max_level(log::LevelFilter::Info) + .with_log_buffer(android_logger::LogId::System), ); // Redirect panic messages to logcat. std::panic::set_hook(Box::new(|panic_info| { diff --git a/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl b/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl index aeb0163977d60052ddc61d0edb31deea079c9130..4ebafee126eb96ff252096085a384fa990104b00 100644 --- a/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl +++ b/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl @@ -794,33 +794,40 @@ interface IKeyMintDevice { in @nullable HardwareAuthToken authToken); /** - * Called by client to notify the IKeyMintDevice that the device is now locked, and keys with - * the UNLOCKED_DEVICE_REQUIRED tag should no longer be usable. When this function is called, - * the IKeyMintDevice should note the current timestamp, and attempts to use - * UNLOCKED_DEVICE_REQUIRED keys must be rejected with Error::DEVICE_LOCKED until an - * authentication token with a later timestamp is presented. If the `passwordOnly' argument is - * set to true the sufficiently-recent authentication token must indicate that the user - * authenticated with a password, not a biometric. - * - * Note that the IKeyMintDevice UNLOCKED_DEVICE_REQUIRED semantics are slightly different from - * the UNLOCKED_DEVICE_REQUIRED semantics enforced by keystore. Keystore handles device locking - * on a per-user basis. Because auth tokens do not contain an Android user ID, it's not - * possible to replicate the keystore enforcement logic in IKeyMintDevice. So from the - * IKeyMintDevice perspective, any user unlock unlocks all UNLOCKED_DEVICE_REQUIRED keys. - * Keystore will continue enforcing the per-user device locking. - * - * @param passwordOnly specifies whether the device must be unlocked with a password, rather - * than a biometric, before UNLOCKED_DEVICE_REQUIRED keys can be used. - * - * @param timestampToken is used by StrongBox implementations of IKeyMintDevice. It - * provides the StrongBox IKeyMintDevice with a fresh, MACed timestamp which it can use as the - * device-lock time, for future comparison against auth tokens when operations using - * UNLOCKED_DEVICE_REQUIRED keys are attempted. Unless the auth token timestamp is newer than - * the timestamp in the timestampToken, the device is still considered to be locked. - * Crucially, if a StrongBox IKeyMintDevice receives a deviceLocked() call with a timestampToken - * timestamp that is less than the timestamp in the last deviceLocked() call, it must ignore the - * new timestamp. TEE IKeyMintDevice implementations will receive an empty timestampToken (zero - * values and empty vectors) and should use their own clock as the device-lock time. + * This method is deprecated and has never been used. Implementations should return + * ErrorCode::UNIMPLEMENTED. + * + * This method was originally intended to be used to notify KeyMint that the device is now + * locked, and keys with the UNLOCKED_DEVICE_REQUIRED tag should no longer be usable until a + * later valid HardwareAuthToken is presented. However, Android has never called this method + * and it cannot start doing so, because KeyMint's enforcement of UNLOCKED_DEVICE_REQUIRED did + * not provide the correct semantics and therefore could never be enabled. Specifically, the + * following issues existed with the design of KeyMint's enforcement of + * UNLOCKED_DEVICE_REQUIRED: + * + * o It assumed a global device lock state only.  Android actually has a separate lock state for + * each user. See the javadoc for KeyguardManager#isDeviceLocked(). + * o It assumed that unlocking the device involves a successful user authentication that + * generates a HardwareAuthToken. This is not necessarily the case, since Android supports + * weaker unlock methods including class 1 and 2 biometrics and trust agents. These unlock + * methods do not generate a HardwareAuthToken or interact with KeyMint in any way. Also, + * UNLOCKED_DEVICE_REQUIRED must work even for users who do not have a secure lock screen. + * o It would have made UNLOCKED_DEVICE_REQUIRED incompatible with requiring user + * authentication in some cases. These two key protections can each require a different + * HardwareAuthToken, but KeyMint only supports one HardwareAuthToken per operation. + * o It would have provided no security benefit over Keystore's enforcement of + * UNLOCKED_DEVICE_REQUIRED. This is because since Android 12, Keystore enforces + * UNLOCKED_DEVICE_REQUIRED not just logically, but it also cryptographically by + * superencrypting all such keys and wiping or re-encrypting the superencryption key when the + * device is locked (whenever possible). KeyMint is still used to support biometric unlocks, + * but this mechanism does not use KeyMint's direct enforcement of UNLOCKED_DEVICE_REQUIRED. + * + * Therefore, this method is not useful, and there is no reason for it be called. + * Implementations should return ErrorCode::UNIMPLEMENTED and should not include + * UNLOCKED_DEVICE_REQUIRED in the list of hardware-enforced key parameters. + * + * @param passwordOnly N/A due to the deprecation + * @param timestampToken N/A due to the deprecation */ void deviceLocked(in boolean passwordOnly, in @nullable TimeStampToken timestampToken); diff --git a/security/keymint/aidl/android/hardware/security/keymint/Tag.aidl b/security/keymint/aidl/android/hardware/security/keymint/Tag.aidl index be29f59e65268321977fa46b86d19768530ae87e..996e4e347982b0a5896b7a852e9de299141379e3 100644 --- a/security/keymint/aidl/android/hardware/security/keymint/Tag.aidl +++ b/security/keymint/aidl/android/hardware/security/keymint/Tag.aidl @@ -482,11 +482,12 @@ enum Tag { /** * Tag::UNLOCKED_DEVICE_REQUIRED specifies that the key may only be used when the device is - * unlocked, as reported to KeyMint via authToken operation parameter and the - * IKeyMintDevice::deviceLocked() method + * unlocked. * - * Must be hardware-enforced (but is also keystore-enforced on a per-user basis: see the - * deviceLocked() documentation). + * This tag was originally intended to be hardware-enforced. However, the support for hardware + * enforcement of this tag is now considered deprecated because it cannot work correctly, and + * even if implemented it does nothing because it was never enabled by Keystore. Refer to the + * documentation for the deprecated method IKeyMintDevice::deviceLocked(). */ UNLOCKED_DEVICE_REQUIRED = TagType.BOOL | 509, diff --git a/security/keymint/aidl/vts/functional/BootloaderStateTest.cpp b/security/keymint/aidl/vts/functional/BootloaderStateTest.cpp index 54f187c6110746ac84d1b01b34b0c9360b163a9d..808ed18ecafef989c8653a674a79578c3769c913 100644 --- a/security/keymint/aidl/vts/functional/BootloaderStateTest.cpp +++ b/security/keymint/aidl/vts/functional/BootloaderStateTest.cpp @@ -149,7 +149,9 @@ TEST_P(BootloaderStateTest, VbmetaDigest) { digest512.data()); ASSERT_TRUE((attestedVbmetaDigest_ == digest256) || (attestedVbmetaDigest_ == digest512)) - << "Attested digest does not match computed digest."; + << "Attested vbmeta digest (" << bin2hex(attestedVbmetaDigest_) + << ") does not match computed digest (sha256: " << bin2hex(digest256) + << ", sha512: " << bin2hex(digest512) << ")."; } INSTANTIATE_KEYMINT_AIDL_TEST(BootloaderStateTest); diff --git a/security/keymint/aidl/vts/functional/KeyBlobUpgradeTest.cpp b/security/keymint/aidl/vts/functional/KeyBlobUpgradeTest.cpp index 7ccd24637550bd7ce3ed9f51cf2cf3bc08a27c32..c2509b8c7c6266d0c5db1e3aec0ab4bdd4ea8610 100644 --- a/security/keymint/aidl/vts/functional/KeyBlobUpgradeTest.cpp +++ b/security/keymint/aidl/vts/functional/KeyBlobUpgradeTest.cpp @@ -258,7 +258,8 @@ class KeyBlobUpgradeTest : public KeyMintAidlTestBase { if (upgraded_keyblob.empty()) { std::cerr << "Keyblob '" << name << "' did not require upgrade\n"; - EXPECT_TRUE(!expectUpgrade) << "Keyblob '" << name << "' unexpectedly upgraded"; + EXPECT_FALSE(expectUpgrade) + << "Keyblob '" << name << "' unexpectedly left as-is"; } else { // Ensure the old format keyblob is deleted (so any secure deletion data is // cleaned up). @@ -275,8 +276,7 @@ class KeyBlobUpgradeTest : public KeyMintAidlTestBase { save_keyblob(subdir, name, upgraded_keyblob, key_characteristics); // Cert file is left unchanged. std::cerr << "Keyblob '" << name << "' upgraded\n"; - EXPECT_TRUE(expectUpgrade) - << "Keyblob '" << name << "' unexpectedly left as-is"; + EXPECT_TRUE(expectUpgrade) << "Keyblob '" << name << "' unexpectedly upgraded"; } } } diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp index d3f6ae393e75d6c5451bc6112dafc8c4379701c9..087f7632b044dcaa95f181a641cf65c78a44794e 100644 --- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp @@ -64,6 +64,13 @@ namespace test { namespace { +// Possible values for the feature version. Assumes that future KeyMint versions +// will continue with the 100 * AIDL_version numbering scheme. +// +// Must be kept in numerically increasing order. +const int32_t kFeatureVersions[] = {10, 11, 20, 30, 40, 41, 100, 200, + 300, 400, 500, 600, 700, 800, 900}; + // Invalid value for a patchlevel (which is of form YYYYMMDD). const uint32_t kInvalidPatchlevel = 99998877; @@ -2278,6 +2285,43 @@ bool check_feature(const std::string& name) { return hasFeature; } +// Return the numeric value associated with a feature. +std::optional keymint_feature_value(bool strongbox) { + std::string name = strongbox ? FEATURE_STRONGBOX_KEYSTORE : FEATURE_HARDWARE_KEYSTORE; + ::android::String16 name16(name.c_str()); + ::android::sp<::android::IServiceManager> sm(::android::defaultServiceManager()); + ::android::sp<::android::IBinder> binder( + sm->waitForService(::android::String16("package_native"))); + if (binder == nullptr) { + GTEST_LOG_(ERROR) << "waitForService package_native failed"; + return std::nullopt; + } + ::android::sp<::android::content::pm::IPackageManagerNative> packageMgr = + ::android::interface_cast<::android::content::pm::IPackageManagerNative>(binder); + if (packageMgr == nullptr) { + GTEST_LOG_(ERROR) << "Cannot find package manager"; + return std::nullopt; + } + + // Package manager has no mechanism to retrieve the version of a feature, + // only to indicate whether a certain version or above is present. + std::optional result = std::nullopt; + for (auto version : kFeatureVersions) { + bool hasFeature = false; + auto status = packageMgr->hasSystemFeature(name16, version, &hasFeature); + if (!status.isOk()) { + GTEST_LOG_(ERROR) << "hasSystemFeature('" << name << "', " << version + << ") failed: " << status; + return result; + } else if (hasFeature) { + result = version; + } else { + break; + } + } + return result; +} + } // namespace test } // namespace aidl::android::hardware::security::keymint diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h index 4fb711c7bb6747fa74d9aea078f4ab635859b5ff..4ed769878a0d5dd8a50922eabaa1fab7a8be4a30 100644 --- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h +++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h @@ -56,6 +56,7 @@ constexpr uint64_t kOpHandleSentinel = 0xFFFFFFFFFFFFFFFF; const string FEATURE_KEYSTORE_APP_ATTEST_KEY = "android.hardware.keystore.app_attest_key"; const string FEATURE_STRONGBOX_KEYSTORE = "android.hardware.strongbox_keystore"; +const string FEATURE_HARDWARE_KEYSTORE = "android.hardware.hardware_keystore"; // RAII class to ensure that a keyblob is deleted regardless of how a test exits. class KeyBlobDeleter { @@ -444,6 +445,7 @@ void check_maced_pubkey(const MacedPublicKey& macedPubKey, bool testMode, void p256_pub_key(const vector& coseKeyData, EVP_PKEY_Ptr* signingKey); void device_id_attestation_check_acceptable_error(Tag tag, const ErrorCode& result); bool check_feature(const std::string& name); +std::optional keymint_feature_value(bool strongbox); AuthorizationSet HwEnforcedAuthorizations(const vector& key_characteristics); AuthorizationSet SwEnforcedAuthorizations(const vector& key_characteristics); diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp index d4adab53e44e8a8aebf95c9dd6448bb6ac9001da..9575183087503e089cf65efe3605d3fce2c6bb83 100644 --- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp @@ -21,6 +21,7 @@ #include #include +#include #include #include @@ -1027,9 +1028,9 @@ TEST_P(NewKeyGenerationTest, RsaWithMissingValidity) { * The KeyMint V1 spec required that CERTIFICATE_NOT_{BEFORE,AFTER} be * specified for asymmetric key generation. However, this was not * checked at the time so we can only be strict about checking this for - * implementations of KeyMint version 2 and above. + * implementations of KeyMint version 3 and above. */ - GTEST_SKIP() << "Validity strict since KeyMint v2"; + GTEST_SKIP() << "Validity strict since KeyMint v3"; } // Per RFC 5280 4.1.2.5, an undefined expiration (not-after) field should be set to // GeneralizedTime 999912312359559, which is 253402300799000 ms from Jan 1, 1970. @@ -1063,32 +1064,54 @@ TEST_P(NewKeyGenerationTest, RsaWithMissingValidity) { TEST_P(NewKeyGenerationTest, RsaWithSpecifiedValidity) { vector key_blob; vector key_characteristics; - ASSERT_EQ(ErrorCode::OK, - GenerateKey(AuthorizationSetBuilder() - .RsaSigningKey(2048, 65537) - .Digest(Digest::NONE) - .Padding(PaddingMode::NONE) - .Authorization(TAG_CERTIFICATE_NOT_BEFORE, - 1183806000000 /* 2007-07-07T11:00:00Z */) - .Authorization(TAG_CERTIFICATE_NOT_AFTER, - 1916049600000 /* 2030-09-19T12:00:00Z */), - &key_blob, &key_characteristics)); - ASSERT_GT(cert_chain_.size(), 0); + vector test_vector_not_before_millis = { + 458046000000, /* 1984-07-07T11:00:00Z */ + 1183806000000, /* 2007-07-07T11:00:00Z */ + 1924991999000, /* 2030-12-31T23:59:59Z */ + 3723753599000, /* 2087-12-31T23:59:59Z */ + 26223868799000, /* 2800-12-31T23:59:59Z */ + 45157996799000, /* 3400-12-31T23:59:59Z */ + 60719587199000, /* 3894-02-15T23:59:59Z */ + 95302051199000, /* 4989-12-31T23:59:59Z */ + 86182012799000, /* 4700-12-31T23:59:59Z */ + 111427574399000, /* 5500-12-31T23:59:59Z */ + 136988668799000, /* 6310-12-31T23:59:59Z */ + 139828895999000, /* 6400-12-31T23:59:59Z */ + 169839503999000, /* 7351-12-31T23:59:59Z */ + 171385804799000, /* 7400-12-31T23:59:59Z */ + 190320019199000, /* 8000-12-31T23:59:59Z */ + 193475692799000, /* 8100-12-31T23:59:59Z */ + 242515209599000, /* 9654-12-31T23:59:59Z */ + 250219065599000, /* 9899-02-15T23:59:59Z */ + }; + for (auto notBefore : test_vector_not_before_millis) { + uint64_t notAfter = notBefore + 378691200000 /* 12 years milliseconds*/; + SCOPED_TRACE(testing::Message() << "notBefore: " << notBefore << " notAfter: " << notAfter); + ASSERT_EQ(ErrorCode::OK, + GenerateKey(AuthorizationSetBuilder() + .RsaSigningKey(2048, 65537) + .Digest(Digest::NONE) + .Padding(PaddingMode::NONE) + .Authorization(TAG_CERTIFICATE_NOT_BEFORE, notBefore) + .Authorization(TAG_CERTIFICATE_NOT_AFTER, notAfter), + &key_blob, &key_characteristics)); + ASSERT_GT(cert_chain_.size(), 0); - X509_Ptr cert(parse_cert_blob(cert_chain_[0].encodedCertificate)); - ASSERT_TRUE(!!cert.get()); + X509_Ptr cert(parse_cert_blob(cert_chain_[0].encodedCertificate)); + ASSERT_TRUE(!!cert.get()); - const ASN1_TIME* not_before = X509_get0_notBefore(cert.get()); - ASSERT_NE(not_before, nullptr); - time_t not_before_time; - ASSERT_EQ(ASN1_TIME_to_time_t(not_before, ¬_before_time), 1); - EXPECT_EQ(not_before_time, 1183806000); + const ASN1_TIME* not_before = X509_get0_notBefore(cert.get()); + ASSERT_NE(not_before, nullptr); + int64_t not_before_time; + ASSERT_EQ(ASN1_TIME_to_posix(not_before, ¬_before_time), 1); + EXPECT_EQ(not_before_time, (notBefore / 1000)); - const ASN1_TIME* not_after = X509_get0_notAfter(cert.get()); - ASSERT_NE(not_after, nullptr); - time_t not_after_time; - ASSERT_EQ(ASN1_TIME_to_time_t(not_after, ¬_after_time), 1); - EXPECT_EQ(not_after_time, 1916049600); + const ASN1_TIME* not_after = X509_get0_notAfter(cert.get()); + ASSERT_NE(not_after, nullptr); + int64_t not_after_time; + ASSERT_EQ(ASN1_TIME_to_posix(not_after, ¬_after_time), 1); + EXPECT_EQ(not_after_time, (notAfter / 1000)); + } } /* @@ -8738,40 +8761,6 @@ TEST_P(EarlyBootKeyTest, DISABLED_FullTest) { INSTANTIATE_KEYMINT_AIDL_TEST(EarlyBootKeyTest); -using UnlockedDeviceRequiredTest = KeyMintAidlTestBase; - -// This may be a problematic test. It can't be run repeatedly without unlocking the device in -// between runs... and on most test devices there are no enrolled credentials so it can't be -// unlocked at all, meaning the only way to get the test to pass again on a properly-functioning -// device is to reboot it. For that reason, this is disabled by default. It can be used as part of -// a manual test process, which includes unlocking between runs, which is why it's included here. -// Well, that and the fact that it's the only test we can do without also making calls into the -// Gatekeeper HAL. We haven't written any cross-HAL tests, and don't know what all of the -// implications might be, so that may or may not be a solution. -TEST_P(UnlockedDeviceRequiredTest, DISABLED_KeysBecomeUnusable) { - auto [aesKeyData, hmacKeyData, rsaKeyData, ecdsaKeyData] = - CreateTestKeys(TAG_UNLOCKED_DEVICE_REQUIRED, ErrorCode::OK); - KeyBlobDeleter aes_deleter(keymint_, aesKeyData.blob); - KeyBlobDeleter hmac_deleter(keymint_, hmacKeyData.blob); - KeyBlobDeleter rsa_deleter(keymint_, rsaKeyData.blob); - KeyBlobDeleter ecdsa_deleter(keymint_, ecdsaKeyData.blob); - - EXPECT_EQ(ErrorCode::OK, UseAesKey(aesKeyData.blob)); - EXPECT_EQ(ErrorCode::OK, UseHmacKey(hmacKeyData.blob)); - EXPECT_EQ(ErrorCode::OK, UseRsaKey(rsaKeyData.blob)); - EXPECT_EQ(ErrorCode::OK, UseEcdsaKey(ecdsaKeyData.blob)); - - ErrorCode rc = GetReturnErrorCode( - keyMint().deviceLocked(false /* passwordOnly */, {} /* timestampToken */)); - ASSERT_EQ(ErrorCode::OK, rc); - EXPECT_EQ(ErrorCode::DEVICE_LOCKED, UseAesKey(aesKeyData.blob)); - EXPECT_EQ(ErrorCode::DEVICE_LOCKED, UseHmacKey(hmacKeyData.blob)); - EXPECT_EQ(ErrorCode::DEVICE_LOCKED, UseRsaKey(rsaKeyData.blob)); - EXPECT_EQ(ErrorCode::DEVICE_LOCKED, UseEcdsaKey(ecdsaKeyData.blob)); -} - -INSTANTIATE_KEYMINT_AIDL_TEST(UnlockedDeviceRequiredTest); - using VsrRequirementTest = KeyMintAidlTestBase; // @VsrTest = VSR-3.10-008 @@ -8794,12 +8783,97 @@ TEST_P(VsrRequirementTest, Vsr14Test) { INSTANTIATE_KEYMINT_AIDL_TEST(VsrRequirementTest); +class InstanceTest : public testing::Test { + protected: + static void SetUpTestSuite() { + auto params = ::android::getAidlHalInstanceNames(IKeyMintDevice::descriptor); + for (auto& param : params) { + ASSERT_TRUE(AServiceManager_isDeclared(param.c_str())) + << "IKeyMintDevice instance " << param << " found but not declared."; + ::ndk::SpAIBinder binder(AServiceManager_waitForService(param.c_str())); + auto keymint = IKeyMintDevice::fromBinder(binder); + ASSERT_NE(keymint, nullptr) << "Failed to get IKeyMintDevice instance " << param; + + KeyMintHardwareInfo info; + ASSERT_TRUE(keymint->getHardwareInfo(&info).isOk()); + ASSERT_EQ(keymints_.count(info.securityLevel), 0) + << "There must be exactly one IKeyMintDevice with security level " + << info.securityLevel; + + keymints_[info.securityLevel] = std::move(keymint); + } + } + + int32_t AidlVersion(shared_ptr keymint) { + int32_t version = 0; + auto status = keymint->getInterfaceVersion(&version); + if (!status.isOk()) { + ADD_FAILURE() << "Failed to determine interface version"; + } + return version; + } + + static std::map> keymints_; +}; + +std::map> InstanceTest::keymints_; + +// @VsrTest = VSR-3.10-017 +// Check that the AIDL version advertised by the HAL service matches +// the value in the package manager feature version. +TEST_F(InstanceTest, AidlVersionInFeature) { + if (is_gsi_image()) { + GTEST_SKIP() << "Versions not required to match under GSI"; + } + if (keymints_.count(SecurityLevel::TRUSTED_ENVIRONMENT) == 1) { + auto tee = keymints_.find(SecurityLevel::TRUSTED_ENVIRONMENT)->second; + int32_t tee_aidl_version = AidlVersion(tee) * 100; + std::optional tee_feature_version = keymint_feature_value(/* strongbox */ false); + ASSERT_TRUE(tee_feature_version.has_value()); + EXPECT_EQ(tee_aidl_version, tee_feature_version.value()); + } + if (keymints_.count(SecurityLevel::STRONGBOX) == 1) { + auto sb = keymints_.find(SecurityLevel::STRONGBOX)->second; + int32_t sb_aidl_version = AidlVersion(sb) * 100; + std::optional sb_feature_version = keymint_feature_value(/* strongbox */ true); + ASSERT_TRUE(sb_feature_version.has_value()); + EXPECT_EQ(sb_aidl_version, sb_feature_version.value()); + } +} + +// @VsrTest = VSR-3.10-017 +// Check that if package manager advertises support for KeyMint of a particular version, that +// version is present as a HAL service. +TEST_F(InstanceTest, FeatureVersionInAidl) { + if (is_gsi_image()) { + GTEST_SKIP() << "Versions not required to match under GSI"; + } + std::optional tee_feature_version = keymint_feature_value(/* strongbox */ false); + if (tee_feature_version.has_value() && tee_feature_version.value() >= 100) { + // Feature flag advertises the existence of KeyMint; check it is present. + ASSERT_EQ(keymints_.count(SecurityLevel::TRUSTED_ENVIRONMENT), 1); + auto tee = keymints_.find(SecurityLevel::TRUSTED_ENVIRONMENT)->second; + int32_t tee_aidl_version = AidlVersion(tee) * 100; + EXPECT_EQ(tee_aidl_version, tee_feature_version.value()); + } + + std::optional sb_feature_version = keymint_feature_value(/* strongbox */ true); + if (sb_feature_version.has_value() && sb_feature_version.value() >= 100) { + // Feature flag advertises the existence of KeyMint; check it is present. + ASSERT_EQ(keymints_.count(SecurityLevel::STRONGBOX), 1); + auto sb = keymints_.find(SecurityLevel::STRONGBOX)->second; + int32_t sb_aidl_version = AidlVersion(sb) * 100; + EXPECT_EQ(sb_aidl_version, sb_feature_version.value()); + } +} + } // namespace aidl::android::hardware::security::keymint::test +using aidl::android::hardware::security::keymint::test::KeyMintAidlTestBase; + int main(int argc, char** argv) { std::cout << "Testing "; - auto halInstances = - aidl::android::hardware::security::keymint::test::KeyMintAidlTestBase::build_params(); + auto halInstances = KeyMintAidlTestBase::build_params(); std::cout << "HAL instances:\n"; for (auto& entry : halInstances) { std::cout << " " << entry << '\n'; @@ -8809,12 +8883,10 @@ int main(int argc, char** argv) { for (int i = 1; i < argc; ++i) { if (argv[i][0] == '-') { if (std::string(argv[i]) == "--arm_deleteAllKeys") { - aidl::android::hardware::security::keymint::test::KeyMintAidlTestBase:: - arm_deleteAllKeys = true; + KeyMintAidlTestBase::arm_deleteAllKeys = true; } if (std::string(argv[i]) == "--dump_attestations") { - aidl::android::hardware::security::keymint::test::KeyMintAidlTestBase:: - dump_Attestations = true; + KeyMintAidlTestBase::dump_Attestations = true; } else { std::cout << "NOT dumping attestations" << std::endl; } @@ -8829,8 +8901,7 @@ int main(int argc, char** argv) { std::cerr << "Missing argument for --keyblob_dir\n"; return 1; } - aidl::android::hardware::security::keymint::test::KeyMintAidlTestBase::keyblob_dir = - std::string(argv[i + 1]); + KeyMintAidlTestBase::keyblob_dir = std::string(argv[i + 1]); ++i; } if (std::string(argv[i]) == "--expect_upgrade") { @@ -8839,11 +8910,17 @@ int main(int argc, char** argv) { return 1; } std::string arg = argv[i + 1]; - aidl::android::hardware::security::keymint::test::KeyMintAidlTestBase:: - expect_upgrade = - arg == "yes" - ? true - : (arg == "no" ? false : std::optional(std::nullopt)); + KeyMintAidlTestBase::expect_upgrade = + arg == "yes" ? true + : (arg == "no" ? false : std::optional(std::nullopt)); + if (KeyMintAidlTestBase::expect_upgrade.has_value()) { + std::cout << "expect_upgrade = " + << (KeyMintAidlTestBase::expect_upgrade.value() ? "true" : "false") + << std::endl; + } else { + std::cerr << "Error! Option --expect_upgrade " << arg << " unrecognized" + << std::endl; + } ++i; } } diff --git a/security/keymint/support/remote_prov_utils_test.cpp b/security/keymint/support/remote_prov_utils_test.cpp index 630f7bba56c668d307f75b6d78c1f0602f9c54c2..89469f11addbffd58eaec31aa890070aba1182d8 100644 --- a/security/keymint/support/remote_prov_utils_test.cpp +++ b/security/keymint/support/remote_prov_utils_test.cpp @@ -14,20 +14,23 @@ * limitations under the License. */ -#include "cppbor.h" -#include "keymaster/cppcose/cppcose.h" #include #include +#include #include -#include #include #include #include +#include #include #include #include #include +#include +#include +#include + namespace aidl::android::hardware::security::keymint::remote_prov { namespace { @@ -36,7 +39,11 @@ using ::keymaster::kStatusFailed; using ::keymaster::kStatusInvalidEek; using ::keymaster::StatusOr; using ::testing::ElementsAreArray; -using byte_view = std::basic_string_view; +using byte_view = std::span; + +inline bool equal_byte_views(const byte_view& view1, const byte_view& view2) { + return std::equal(view1.begin(), view1.end(), view2.begin(), view2.end()); +} struct KeyInfoEcdsa { CoseKeyCurve curve; @@ -44,7 +51,8 @@ struct KeyInfoEcdsa { byte_view pubKeyY; bool operator==(const KeyInfoEcdsa& other) const { - return curve == other.curve && pubKeyX == other.pubKeyX && pubKeyY == other.pubKeyY; + return curve == other.curve && equal_byte_views(pubKeyX, other.pubKeyX) && + equal_byte_views(pubKeyY, other.pubKeyY); } }; diff --git a/security/rkp/README.md b/security/rkp/README.md index 2180d0fc136d1266c8c4f60a2b84be95c5bee925..2d00b83295b3bddab1ccad9102b0afcc9880b59c 100644 --- a/security/rkp/README.md +++ b/security/rkp/README.md @@ -210,10 +210,10 @@ The following describes which certificate types may be request based on the RKP describes an RKP VM. If there are further certificates without the RKP VM marker, then the chain does not describe an RKP VM. - Implementations must include the first RPK VM marker as early as possible + Implementations must include the first RKP VM marker as early as possible after the point of divergence between TEE and non-TEE components in the DICE chain, prior to loading the Android Bootloader (ABL). 2. "widevine" or "keymint": If there are no certificates with the RKP VM marker then it describes a TEE component. 3. None: Any component described by a DICE chain that does not match the above - two categories. \ No newline at end of file + two categories. diff --git a/security/rkp/aidl/Android.bp b/security/rkp/aidl/Android.bp index e9e20214f5beaa883deac653ab41ce748bef343a..adc63f666ad10a8aeb8d8d7a206475ca94408f3c 100644 --- a/security/rkp/aidl/Android.bp +++ b/security/rkp/aidl/Android.bp @@ -25,6 +25,9 @@ aidl_interface { "//apex_available:platform", "com.android.rkpd", ], + lint: { + baseline_filename: "lint-baseline.xml", + }, }, rust: { enabled: true, diff --git a/security/rkp/aidl/lint-baseline.xml b/security/rkp/aidl/lint-baseline.xml index d25d383dfdfe26712f27825c7dd66bd8f6b46b13..8e980945754b3c1bfd0e485df40fe5303bceeb4a 100644 --- a/security/rkp/aidl/lint-baseline.xml +++ b/security/rkp/aidl/lint-baseline.xml @@ -1,5 +1,5 @@ - + @@ -18,8 +18,8 @@ errorLine1=" this.markVintfStability();" errorLine2=" ~~~~~~~~~~~~~~~~~~"> @@ -29,8 +29,19 @@ errorLine1=" this.markVintfStability();" errorLine2=" ~~~~~~~~~~~~~~~~~~"> + + + + diff --git a/security/rkp/aidl/vts/functional/VtsRemotelyProvisionedComponentTests.cpp b/security/rkp/aidl/vts/functional/VtsRemotelyProvisionedComponentTests.cpp index a1de93ee2a58632b33de01160aabe33544a2a306..68b966cda939e47894f34c511b5645349c4fd72e 100644 --- a/security/rkp/aidl/vts/functional/VtsRemotelyProvisionedComponentTests.cpp +++ b/security/rkp/aidl/vts/functional/VtsRemotelyProvisionedComponentTests.cpp @@ -402,7 +402,7 @@ class CertificateRequestTestBase : public VtsRemotelyProvisionedComponentTests { for (auto& key : keysToSign_) { bytevec privateKeyBlob; auto status = provisionable_->generateEcdsaP256KeyPair(testMode, &key, &privateKeyBlob); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); vector payload_value; check_maced_pubkey(key, testMode, &payload_value); @@ -447,7 +447,7 @@ TEST_P(CertificateRequestTest, EmptyRequest_testMode) { auto status = provisionable_->generateCertificateRequest( testMode, {} /* keysToSign */, testEekChain_.chain, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto result = verifyProductionProtectedData( deviceInfo, cppbor::Array(), keysToSignMac, protectedData, testEekChain_, eekId_, @@ -472,7 +472,7 @@ TEST_P(CertificateRequestTest, NewKeyPerCallInTestMode) { auto status = provisionable_->generateCertificateRequest( testMode, {} /* keysToSign */, testEekChain_.chain, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto firstBcc = verifyProductionProtectedData( deviceInfo, /*keysToSign=*/cppbor::Array(), keysToSignMac, protectedData, testEekChain_, @@ -482,7 +482,7 @@ TEST_P(CertificateRequestTest, NewKeyPerCallInTestMode) { status = provisionable_->generateCertificateRequest( testMode, {} /* keysToSign */, testEekChain_.chain, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto secondBcc = verifyProductionProtectedData( deviceInfo, /*keysToSign=*/cppbor::Array(), keysToSignMac, protectedData, testEekChain_, @@ -532,7 +532,7 @@ TEST_P(CertificateRequestTest, NonEmptyRequest_testMode) { auto status = provisionable_->generateCertificateRequest( testMode, keysToSign_, testEekChain_.chain, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto result = verifyProductionProtectedData( deviceInfo, cborKeysToSign_, keysToSignMac, protectedData, testEekChain_, eekId_, @@ -576,7 +576,7 @@ TEST_P(CertificateRequestTest, NonEmptyRequestCorruptMac_testMode) { auto status = provisionable_->generateCertificateRequest( testMode, {keyWithCorruptMac}, testEekChain_.chain, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_FALSE(status.isOk()) << status.getMessage(); + ASSERT_FALSE(status.isOk()) << status.getDescription(); EXPECT_EQ(status.getServiceSpecificError(), BnRemotelyProvisionedComponent::STATUS_INVALID_MAC); } @@ -596,7 +596,7 @@ TEST_P(CertificateRequestTest, NonEmptyRequestCorruptMac_prodMode) { auto status = provisionable_->generateCertificateRequest( testMode, {keyWithCorruptMac}, getProdEekChain(rpcHardwareInfo.supportedEekCurve), challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_FALSE(status.isOk()) << status.getMessage(); + ASSERT_FALSE(status.isOk()) << status.getDescription(); EXPECT_EQ(status.getServiceSpecificError(), BnRemotelyProvisionedComponent::STATUS_INVALID_MAC); } @@ -722,7 +722,7 @@ TEST_P(CertificateRequestV2Test, EmptyRequest) { auto challenge = randomBytes(size); auto status = provisionable_->generateCertificateRequestV2({} /* keysToSign */, challenge, &csr); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto result = verifyProductionCsr(cppbor::Array(), csr, provisionable_.get(), challenge); ASSERT_TRUE(result) << result.message(); @@ -743,7 +743,7 @@ TEST_P(CertificateRequestV2Test, NonEmptyRequest) { SCOPED_TRACE(testing::Message() << "challenge[" << size << "]"); auto challenge = randomBytes(size); auto status = provisionable_->generateCertificateRequestV2(keysToSign_, challenge, &csr); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto result = verifyProductionCsr(cborKeysToSign_, csr, provisionable_.get(), challenge); ASSERT_TRUE(result) << result.message(); @@ -758,7 +758,7 @@ TEST_P(CertificateRequestV2Test, EmptyRequestWithInvalidChallengeFail) { auto status = provisionable_->generateCertificateRequestV2( /* keysToSign */ {}, randomBytes(MAX_CHALLENGE_SIZE + 1), &csr); - EXPECT_FALSE(status.isOk()) << status.getMessage(); + EXPECT_FALSE(status.isOk()) << status.getDescription(); EXPECT_EQ(status.getServiceSpecificError(), BnRemotelyProvisionedComponent::STATUS_FAILED); } @@ -773,13 +773,13 @@ TEST_P(CertificateRequestV2Test, NonEmptyRequestReproducible) { bytevec csr; auto status = provisionable_->generateCertificateRequestV2(keysToSign_, challenge_, &csr); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto firstCsr = verifyProductionCsr(cborKeysToSign_, csr, provisionable_.get(), challenge_); ASSERT_TRUE(firstCsr) << firstCsr.message(); status = provisionable_->generateCertificateRequestV2(keysToSign_, challenge_, &csr); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto secondCsr = verifyProductionCsr(cborKeysToSign_, csr, provisionable_.get(), challenge_); ASSERT_TRUE(secondCsr) << secondCsr.message(); @@ -797,7 +797,7 @@ TEST_P(CertificateRequestV2Test, NonEmptyRequestMultipleKeys) { bytevec csr; auto status = provisionable_->generateCertificateRequestV2(keysToSign_, challenge_, &csr); - ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(status.isOk()) << status.getDescription(); auto result = verifyProductionCsr(cborKeysToSign_, csr, provisionable_.get(), challenge_); ASSERT_TRUE(result) << result.message(); @@ -815,7 +815,7 @@ TEST_P(CertificateRequestV2Test, NonEmptyRequestCorruptMac) { bytevec csr; auto status = provisionable_->generateCertificateRequestV2({keyWithCorruptMac}, challenge_, &csr); - ASSERT_FALSE(status.isOk()) << status.getMessage(); + ASSERT_FALSE(status.isOk()) << status.getDescription(); EXPECT_EQ(status.getServiceSpecificError(), BnRemotelyProvisionedComponent::STATUS_INVALID_MAC); } @@ -829,7 +829,7 @@ TEST_P(CertificateRequestV2Test, CertificateRequestV1Removed_prodMode) { auto status = provisionable_->generateCertificateRequest( false /* testMode */, {} /* keysToSign */, {} /* EEK chain */, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_FALSE(status.isOk()) << status.getMessage(); + ASSERT_FALSE(status.isOk()) << status.getDescription(); EXPECT_EQ(status.getServiceSpecificError(), BnRemotelyProvisionedComponent::STATUS_REMOVED); } @@ -843,7 +843,7 @@ TEST_P(CertificateRequestV2Test, CertificateRequestV1Removed_testMode) { auto status = provisionable_->generateCertificateRequest( true /* testMode */, {} /* keysToSign */, {} /* EEK chain */, challenge_, &deviceInfo, &protectedData, &keysToSignMac); - ASSERT_FALSE(status.isOk()) << status.getMessage(); + ASSERT_FALSE(status.isOk()) << status.getDescription(); EXPECT_EQ(status.getServiceSpecificError(), BnRemotelyProvisionedComponent::STATUS_REMOVED); } @@ -927,7 +927,7 @@ TEST_P(CertificateRequestV2Test, DeviceInfo) { bytevec csr; irpcStatus = provisionable_->generateCertificateRequestV2({} /* keysToSign */, challenge_, &csr); - ASSERT_TRUE(irpcStatus.isOk()) << irpcStatus.getMessage(); + ASSERT_TRUE(irpcStatus.isOk()) << irpcStatus.getDescription(); auto result = verifyProductionCsr(cppbor::Array(), csr, provisionable_.get(), challenge_); ASSERT_TRUE(result) << result.message(); diff --git a/security/secretkeeper/aidl/Android.bp b/security/secretkeeper/aidl/Android.bp index ac923ca71ebb24c976dc29354e43e999b1879921..d282621270e04bfe47b5b2e7d516160bddc5a407 100644 --- a/security/secretkeeper/aidl/Android.bp +++ b/security/secretkeeper/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_virtualization", default_applicable_licenses: ["Android-Apache-2.0"], } @@ -24,10 +25,11 @@ aidl_interface { "android.hardware.security.authgraph-V1", ], stability: "vintf", - frozen: false, + frozen: true, backend: { java: { - enabled: false, + enabled: true, + platform_apis: true, }, ndk: { enabled: true, @@ -40,6 +42,13 @@ aidl_interface { ], }, }, + versions_with_info: [ + { + version: "1", + imports: ["android.hardware.security.authgraph-V1"], + }, + ], + } // cc_defaults that includes the latest Secretkeeper AIDL library. diff --git a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/.hash b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/.hash new file mode 100644 index 0000000000000000000000000000000000000000..1f6c42bc6b4bb0c62a51ed35f5e54ac374cee026 --- /dev/null +++ b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/.hash @@ -0,0 +1 @@ +347439bd6088bd24a72e789a616a1586863e43b8 diff --git a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/ISecretkeeper.aidl b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/ISecretkeeper.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8ce37cd558b3fa1e79a4109685b8e357c3eadada --- /dev/null +++ b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/ISecretkeeper.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.secretkeeper; +@VintfStability +interface ISecretkeeper { + android.hardware.security.authgraph.IAuthGraphKeyExchange getAuthGraphKe(); + byte[] processSecretManagementRequest(in byte[] request); + void deleteIds(in android.hardware.security.secretkeeper.SecretId[] ids); + void deleteAll(); + const int ERROR_UNKNOWN_KEY_ID = 1; + const int ERROR_INTERNAL_ERROR = 2; + const int ERROR_REQUEST_MALFORMED = 3; +} diff --git a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ErrorCode.aidl b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/SecretId.aidl similarity index 93% rename from security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ErrorCode.aidl rename to security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/SecretId.aidl index cc07f9b3fa73fbb7b285180c1b46c8832e0d5f71..98870665128aea0615e8e5e404217c56db1b5691 100644 --- a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ErrorCode.aidl +++ b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/1/android/hardware/security/secretkeeper/SecretId.aidl @@ -33,10 +33,7 @@ package android.hardware.security.secretkeeper; /* @hide */ -@Backing(type="int") @VintfStability -enum ErrorCode { - OK = 0, - UNKNOWN_KEY_ID = 1, - INTERNAL_ERROR = 2, - REQUEST_MALFORMED = 3, +@VintfStability +parcelable SecretId { + byte[64] id; } diff --git a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ISecretkeeper.aidl b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ISecretkeeper.aidl index 023fc8f97ff34550cbba54af2c033525a851091d..8ce37cd558b3fa1e79a4109685b8e357c3eadada 100644 --- a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ISecretkeeper.aidl +++ b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/ISecretkeeper.aidl @@ -36,4 +36,9 @@ package android.hardware.security.secretkeeper; interface ISecretkeeper { android.hardware.security.authgraph.IAuthGraphKeyExchange getAuthGraphKe(); byte[] processSecretManagementRequest(in byte[] request); + void deleteIds(in android.hardware.security.secretkeeper.SecretId[] ids); + void deleteAll(); + const int ERROR_UNKNOWN_KEY_ID = 1; + const int ERROR_INTERNAL_ERROR = 2; + const int ERROR_REQUEST_MALFORMED = 3; } diff --git a/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/SecretId.aidl b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/SecretId.aidl new file mode 100644 index 0000000000000000000000000000000000000000..98870665128aea0615e8e5e404217c56db1b5691 --- /dev/null +++ b/security/secretkeeper/aidl/aidl_api/android.hardware.security.secretkeeper/current/android/hardware/security/secretkeeper/SecretId.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.security.secretkeeper; +/* @hide */ +@VintfStability +parcelable SecretId { + byte[64] id; +} diff --git a/security/secretkeeper/aidl/android/hardware/security/secretkeeper/ISecretkeeper.aidl b/security/secretkeeper/aidl/android/hardware/security/secretkeeper/ISecretkeeper.aidl index cb3e9b978aa87d5d1b603aea012c4d71ad652581..b07dba89751cbffeb81d3e7be705bee6d0813052 100644 --- a/security/secretkeeper/aidl/android/hardware/security/secretkeeper/ISecretkeeper.aidl +++ b/security/secretkeeper/aidl/android/hardware/security/secretkeeper/ISecretkeeper.aidl @@ -17,6 +17,7 @@ package android.hardware.security.secretkeeper; import android.hardware.security.authgraph.IAuthGraphKeyExchange; +import android.hardware.security.secretkeeper.SecretId; @VintfStability /** @@ -30,19 +31,22 @@ import android.hardware.security.authgraph.IAuthGraphKeyExchange; * - A trusted execution environment such as ARM TrustZone. * - A completely separate, purpose-built and certified secure CPU. * - * TODO(b/291224769): Extend the HAL interface to include: - * 1. Dice policy operation - These allow sealing of the secrets with a class of Dice chains. - * Typical operations are (securely) updating the dice policy sealing the Secrets above. These - * operations are core to AntiRollback protected secrets - ie, ensuring secrets of a pVM are only - * accessible to same or higher versions of the images. - * 2. Maintenance API: This is required for removing the Secretkeeper entries for obsolete pVMs. */ interface ISecretkeeper { + const int ERROR_UNKNOWN_KEY_ID = 1; + const int ERROR_INTERNAL_ERROR = 2; + const int ERROR_REQUEST_MALFORMED = 3; + /** * Retrieve the instance of the `IAuthGraphKeyExchange` HAL that should be used for shared - * session key establishment. These keys are used to perform encryption of messages as + * session key establishment. These keys are used to perform encryption of messages as * described in SecretManagement.cddl, allowing the client and Secretkeeper to have a - * cryptographically secure channel. + * cryptographically secure channel. In the key exchange protocol the client acts as P1 + * (source) and Secretkeeper as P2 (sink). The interface returned here can be used to invoke + * methods on the sink. + * + * The client's identity is its DICE chain; Secretkeeper's identity is a + * per-boot key pair. */ IAuthGraphKeyExchange getAuthGraphKe(); @@ -57,11 +61,11 @@ interface ISecretkeeper { * ProtectedRequestPacket & ProtectedResponsePacket using symmetric keys agreed between * the client & service. This cryptographic protection is required because the messages are * ferried via Android, which is allowed to be outside the TCB of clients (for example protected - * Virtual Machines). For this, service (& client) must implement a key exchange protocol, which - * is critical for establishing the secure channel. + * Virtual Machines). For this, service (& client) must implement the AuthGraph key exchange + * protocol to establish a secure channel between them. * - * If an encrypted response cannot be generated, then a service-specific Binder error using an - * error code from ErrorCode.aidl will be returned. + * If an encrypted response cannot be generated, then a service-specific Binder error using one + * of the ERROR_ codes above will be returned. * * Secretkeeper database should guarantee the following properties: * @@ -82,4 +86,19 @@ interface ISecretkeeper { * @return CBOR-encoded ProtectedResponsePacket. See SecretManagement.cddl for its definition */ byte[] processSecretManagementRequest(in byte[] request); + + /** + * Delete the data corresponding to a collection of IDs. + * + * Note that unlike `processSecretManagementRequest`, the contents of this method are in + * plaintext, and no client authentication is required. + * + * @param Secret identifiers to delete. + */ + void deleteIds(in SecretId[] ids); + + /** + * Delete data of all clients. + */ + void deleteAll(); } diff --git a/security/secretkeeper/aidl/android/hardware/security/secretkeeper/ErrorCode.aidl b/security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretId.aidl similarity index 69% rename from security/secretkeeper/aidl/android/hardware/security/secretkeeper/ErrorCode.aidl rename to security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretId.aidl index e9cce09f9f6fc76b93264cdc3d40c012b87ee1f8..b17917f2b517f7a4f95d54de8fa7650692d3619b 100644 --- a/security/secretkeeper/aidl/android/hardware/security/secretkeeper/ErrorCode.aidl +++ b/security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretId.aidl @@ -17,17 +17,13 @@ package android.hardware.security.secretkeeper; /** - * Secretkeeper unencrypted error code, returned via AIDL as service specific errors in - * EX_SERVICE_SPECIFIC. + * SecretId contains an identifier for a secret held by Secretkeeper. * @hide */ @VintfStability -@Backing(type="int") -enum ErrorCode { - OK = 0, - UNKNOWN_KEY_ID = 1, - INTERNAL_ERROR = 2, - REQUEST_MALFORMED = 3, - - // TODO(b/291224769): Create a more exhaustive set of error code values. +parcelable SecretId { + /** + * 64-byte identifier for a secret. + */ + byte[64] id; } diff --git a/security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretManagement.cddl b/security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretManagement.cddl index 66ca8ed6ba62c75658008d3df7e988d5db867f1f..6a824c91dffe564e8137df393ec1dd9862cfa44c 100644 --- a/security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretManagement.cddl +++ b/security/secretkeeper/aidl/android/hardware/security/secretkeeper/SecretManagement.cddl @@ -3,21 +3,22 @@ ; The input parameter to the `processSecretManagementRequest` operation in ; `ISecretkeeper.aidl` is always an encrypted request message, CBOR-encoded as a ; COSE_Encrypt0 object. The encryption uses the first of the keys agreed using -; the associated AuthGraph instance, referred to as `KeySourceToSink`. -ProtectedRequestPacket = CryptoPayload +; the associated AuthGraph instance, referred to as `KeySourceToSink`. Additionally, +; an external aad is used - RequestSeqNum. +ProtectedRequestPacket = CryptoPayload -CryptoPayload = [ ; COSE_Encrypt0 (untagged), [RFC 9052 s5.2] +CryptoPayload = [ ; COSE_Encrypt0 (untagged), [RFC 9052 s5.2] protected: bstr .cbor { 1 : 3, ; Algorithm: AES-GCM mode w/ 256-bit key, 128-bit tag - 4 : bstr ; key identifier, uniquely identifies the session - ; TODO(b/291228560): Refer to the Key Exchange spec. + 4 : bstr ; key identifier set to session ID produced + ; by AuthGraph key exchange. }, unprotected: { 5 : bstr .size 12 ; IV }, ciphertext : bstr ; AES-GCM-256(Key, bstr .cbor Payload) ; AAD for the encryption is CBOR-serialized - ; Enc_structure (RFC 9052 s5.3) with empty external_aad. + ; Enc_structure (RFC 9052 s5.3) with SeqNum as the external_aad. ] ; Once decrypted, the request packet is an encoded CBOR array holding: @@ -32,8 +33,11 @@ GetVersionOpcode = 1 ; Get version of the SecretManagement API StoreSecretOpcode = 2 ; Store a secret GetSecretOpcode = 3 ; Get the secret +; Retrieve Secretkeeper version. GetVersionParams = () +; Store a secret identified by the given ID, with access to the secret policed +; by the associated sealing policy. StoreSecretParams = ( id : SecretId, secret : Secret, @@ -42,6 +46,9 @@ StoreSecretParams = ( ; INCLUDE DicePolicy.cddl for: DicePolicy +; Retrieve a secret identified by the given ID, policed according to the sealing +; policy that was associated with the secret. If successful, optionally also +; update the sealing policy for the secret. GetSecretParams = ( id : SecretId, ; Retrieving the value of a secret may optionally also update the sealing @@ -52,10 +59,18 @@ GetSecretParams = ( SecretId = bstr .size 64 ; Unique identifier of the secret. Secret = bstr .size 32 ; The secret value. +; A monotonically incrementing number is associated with each RequestPacket to prevent replay +; of messages within a session. This starts with 0 and is incremented (by 1) for each request +; in a session. Secretkeeper implementation must maintain an expected RequestSeqNum for each +; session (increasing it by 1 for each SecretManagement request received). This will be used in +; in decryption (external_aad). +RequestSeqNum = bstr .cbor uint ; Encoded in accordance with Core Deterministic Encoding + ; Requirements [RFC 8949 s4.2.1] + ; The return value from a successful `processSecretManagementRequest` operation is a ; response message encrypted with the second of the keys agreed using the associated ; AuthGraph instance, referred to as `KeySinkToSource`. -ProtectedResponsePacket = CryptoPayload +ProtectedResponsePacket = CryptoPayload ; Once decrypted, the inner response message is encoded as a CBOR array holding: ; - An initial integer return code value. @@ -68,7 +83,6 @@ ResponsePacket = ; An error code in the inner response message indicates a failure in ; secret management processing. -; TODO(b/291224769): Create a more exhaustive set of ErrorCodes ErrorCode = &( ; Use this as if no other error code can be used. ErrorCode_UnexpectedServerError: 1, @@ -77,7 +91,7 @@ ErrorCode = &( ; Requested Entry not found. ErrorCode_EntryNotFound: 3, ; Error happened while serialization or deserialization. - SerializationError: 4, + ErrorCode_SerializationError: 4, ; Indicates that Dice Policy matching did not succeed & hence access not granted. ErrorCode_DicePolicyError: 5, ) @@ -90,8 +104,13 @@ Result = &( GetSecretResult, ) -GetVersionResult = (version : uint) +GetVersionResult = (1) StoreSecretResult = () GetSecretResult = (secret : Secret) + +; Analogous to RequestSeqNum, Secretkeeper must maintain ResponseSeqNum for each session. +; This will be input to the encryption (ProtectedResponsePacket) as external_aad. +ResponseSeqNum = bstr .cbor uint ; Encoded in accordance with Core Deterministic Encoding + ; Requirements [RFC 8949 s4.2.1] diff --git a/security/secretkeeper/aidl/vts/Android.bp b/security/secretkeeper/aidl/vts/Android.bp index c130a3a1182aced25e4598d7dc289a9b9fa90743..b9ce5cea862aab9798d9e42c9d4ed6e4e26dd018 100644 --- a/security/secretkeeper/aidl/vts/Android.bp +++ b/security/secretkeeper/aidl/vts/Android.bp @@ -15,27 +15,70 @@ */ package { + default_team: "trendy_team_virtualization", default_applicable_licenses: ["Android-Apache-2.0"], } +rust_library { + name: "libsecretkeeper_test", + crate_name: "secretkeeper_test", + srcs: ["lib.rs"], + rustlibs: [ + "libciborium", + "libcoset", + "libdiced_open_dice", + "liblog_rust", + "libsecretkeeper_client", + ], +} + rust_test { name: "VtsSecretkeeperTargetTest", srcs: ["secretkeeper_test_client.rs"], + defaults: [ + "rdroidtest.defaults", + ], test_suites: [ "general-tests", "vts", ], + test_config: "AndroidTest.xml", rustlibs: [ - "libsecretkeeper_comm_nostd", - "libsecretkeeper_core_nostd", "android.hardware.security.secretkeeper-V1-rust", "libauthgraph_boringssl", "libauthgraph_core", - "libcoset", + "libauthgraph_wire", "libauthgraph_vts_test", "libbinder_rs", + "libciborium", "libcoset", + "libdice_policy_builder", "liblog_rust", + "libsecretkeeper_client", + "libsecretkeeper_comm_nostd", + "libsecretkeeper_core_nostd", + "libsecretkeeper_test", ], require_root: true, } + +rust_binary { + name: "secretkeeper_cli", + srcs: ["secretkeeper_cli.rs"], + lints: "android", + rlibs: [ + "android.hardware.security.secretkeeper-V1-rust", + "libanyhow", + "libauthgraph_boringssl", + "libauthgraph_core", + "libbinder_rs", + "libclap", + "libcoset", + "libdice_policy_builder", + "libhex", + "liblog_rust", + "libsecretkeeper_client", + "libsecretkeeper_comm_nostd", + "libsecretkeeper_test", + ], +} diff --git a/security/secretkeeper/aidl/vts/AndroidTest.xml b/security/secretkeeper/aidl/vts/AndroidTest.xml new file mode 100644 index 0000000000000000000000000000000000000000..4fee78f5c2a53c7428b11f49390cb6b28bae9d2d --- /dev/null +++ b/security/secretkeeper/aidl/vts/AndroidTest.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + diff --git a/security/secretkeeper/aidl/vts/dice_sample.rs b/security/secretkeeper/aidl/vts/dice_sample.rs new file mode 100644 index 0000000000000000000000000000000000000000..97b4789985cd667c924cca30090b1b61b03b5410 --- /dev/null +++ b/security/secretkeeper/aidl/vts/dice_sample.rs @@ -0,0 +1,208 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +//! This module provides a set of sample DICE chains for testing purpose only. Note that this +//! module duplicates a large chunk of code in libdiced_sample_inputs. We avoid modifying the +//! latter for testing purposes because it is installed on device. + +use crate::{ + COMPONENT_NAME, COMPONENT_RESETTABLE, COMPONENT_VERSION, SUBCOMPONENT_AUTHORITY_HASH, + SUBCOMPONENT_CODE_HASH, SUBCOMPONENT_DESCRIPTORS, SUBCOMPONENT_NAME, + SUBCOMPONENT_SECURITY_VERSION, +}; +use ciborium::{cbor, de, ser, value::Value}; +use core::ffi::CStr; +use coset::{ + iana, Algorithm, AsCborValue, CborSerializable, CoseKey, KeyOperation, KeyType, Label, +}; +use diced_open_dice::{ + derive_cdi_private_key_seed, keypair_from_seed, retry_bcc_format_config_descriptor, + retry_bcc_main_flow, retry_dice_main_flow, Config, DiceArtifacts, DiceConfigValues, DiceError, + DiceMode, InputValues, OwnedDiceArtifacts, CDI_SIZE, HASH_SIZE, HIDDEN_SIZE, +}; +use log::error; +use secretkeeper_client::dice::OwnedDiceArtifactsWithExplicitKey; + +/// Sample UDS used to perform the root DICE flow by `make_sample_bcc_and_cdis`. +const UDS: &[u8; CDI_SIZE] = &[ + 0x65, 0x4f, 0xab, 0xa9, 0xa5, 0xad, 0x0f, 0x5e, 0x15, 0xc3, 0x12, 0xf7, 0x77, 0x45, 0xfa, 0x55, + 0x18, 0x6a, 0xa6, 0x34, 0xb6, 0x7c, 0x82, 0x7b, 0x89, 0x4c, 0xc5, 0x52, 0xd3, 0x27, 0x35, 0x8e, +]; + +const CODE_HASH_ABL: [u8; HASH_SIZE] = [ + 0x16, 0x48, 0xf2, 0x55, 0x53, 0x23, 0xdd, 0x15, 0x2e, 0x83, 0x38, 0xc3, 0x64, 0x38, 0x63, 0x26, + 0x0f, 0xcf, 0x5b, 0xd1, 0x3a, 0xd3, 0x40, 0x3e, 0x23, 0xf8, 0x34, 0x4c, 0x6d, 0xa2, 0xbe, 0x25, + 0x1c, 0xb0, 0x29, 0xe8, 0xc3, 0xfb, 0xb8, 0x80, 0xdc, 0xb1, 0xd2, 0xb3, 0x91, 0x4d, 0xd3, 0xfb, + 0x01, 0x0f, 0xe4, 0xe9, 0x46, 0xa2, 0xc0, 0x26, 0x57, 0x5a, 0xba, 0x30, 0xf7, 0x15, 0x98, 0x14, +]; +const AUTHORITY_HASH_ABL: [u8; HASH_SIZE] = [ + 0xf9, 0x00, 0x9d, 0xc2, 0x59, 0x09, 0xe0, 0xb6, 0x98, 0xbd, 0xe3, 0x97, 0x4a, 0xcb, 0x3c, 0xe7, + 0x6b, 0x24, 0xc3, 0xe4, 0x98, 0xdd, 0xa9, 0x6a, 0x41, 0x59, 0x15, 0xb1, 0x23, 0xe6, 0xc8, 0xdf, + 0xfb, 0x52, 0xb4, 0x52, 0xc1, 0xb9, 0x61, 0xdd, 0xbc, 0x5b, 0x37, 0x0e, 0x12, 0x12, 0xb2, 0xfd, + 0xc1, 0x09, 0xb0, 0xcf, 0x33, 0x81, 0x4c, 0xc6, 0x29, 0x1b, 0x99, 0xea, 0xae, 0xfd, 0xaa, 0x0d, +]; +const HIDDEN_ABL: [u8; HIDDEN_SIZE] = [ + 0xa2, 0x01, 0xd0, 0xc0, 0xaa, 0x75, 0x3c, 0x06, 0x43, 0x98, 0x6c, 0xc3, 0x5a, 0xb5, 0x5f, 0x1f, + 0x0f, 0x92, 0x44, 0x3b, 0x0e, 0xd4, 0x29, 0x75, 0xe3, 0xdb, 0x36, 0xda, 0xc8, 0x07, 0x97, 0x4d, + 0xff, 0xbc, 0x6a, 0xa4, 0x8a, 0xef, 0xc4, 0x7f, 0xf8, 0x61, 0x7d, 0x51, 0x4d, 0x2f, 0xdf, 0x7e, + 0x8c, 0x3d, 0xa3, 0xfc, 0x63, 0xd4, 0xd4, 0x74, 0x8a, 0xc4, 0x14, 0x45, 0x83, 0x6b, 0x12, 0x7e, +]; +const CODE_HASH_AVB: [u8; HASH_SIZE] = [ + 0xa4, 0x0c, 0xcb, 0xc1, 0xbf, 0xfa, 0xcc, 0xfd, 0xeb, 0xf4, 0xfc, 0x43, 0x83, 0x7f, 0x46, 0x8d, + 0xd8, 0xd8, 0x14, 0xc1, 0x96, 0x14, 0x1f, 0x6e, 0xb3, 0xa0, 0xd9, 0x56, 0xb3, 0xbf, 0x2f, 0xfa, + 0x88, 0x70, 0x11, 0x07, 0x39, 0xa4, 0xd2, 0xa9, 0x6b, 0x18, 0x28, 0xe8, 0x29, 0x20, 0x49, 0x0f, + 0xbb, 0x8d, 0x08, 0x8c, 0xc6, 0x54, 0xe9, 0x71, 0xd2, 0x7e, 0xa4, 0xfe, 0x58, 0x7f, 0xd3, 0xc7, +]; +const AUTHORITY_HASH_AVB: [u8; HASH_SIZE] = [ + 0xb2, 0x69, 0x05, 0x48, 0x56, 0xb5, 0xfa, 0x55, 0x6f, 0xac, 0x56, 0xd9, 0x02, 0x35, 0x2b, 0xaa, + 0x4c, 0xba, 0x28, 0xdd, 0x82, 0x3a, 0x86, 0xf5, 0xd4, 0xc2, 0xf1, 0xf9, 0x35, 0x7d, 0xe4, 0x43, + 0x13, 0xbf, 0xfe, 0xd3, 0x36, 0xd8, 0x1c, 0x12, 0x78, 0x5c, 0x9c, 0x3e, 0xf6, 0x66, 0xef, 0xab, + 0x3d, 0x0f, 0x89, 0xa4, 0x6f, 0xc9, 0x72, 0xee, 0x73, 0x43, 0x02, 0x8a, 0xef, 0xbc, 0x05, 0x98, +]; +const HIDDEN_AVB: [u8; HIDDEN_SIZE] = [ + 0x5b, 0x3f, 0xc9, 0x6b, 0xe3, 0x95, 0x59, 0x40, 0x5e, 0x64, 0xe5, 0x64, 0x3f, 0xfd, 0x21, 0x09, + 0x9d, 0xf3, 0xcd, 0xc7, 0xa4, 0x2a, 0xe2, 0x97, 0xdd, 0xe2, 0x4f, 0xb0, 0x7d, 0x7e, 0xf5, 0x8e, + 0xd6, 0x4d, 0x84, 0x25, 0x54, 0x41, 0x3f, 0x8f, 0x78, 0x64, 0x1a, 0x51, 0x27, 0x9d, 0x55, 0x8a, + 0xe9, 0x90, 0x35, 0xab, 0x39, 0x80, 0x4b, 0x94, 0x40, 0x84, 0xa2, 0xfd, 0x73, 0xeb, 0x35, 0x7a, +]; +const AUTHORITY_HASH_ANDROID: [u8; HASH_SIZE] = [ + 0x04, 0x25, 0x5d, 0x60, 0x5f, 0x5c, 0x45, 0x0d, 0xf2, 0x9a, 0x6e, 0x99, 0x30, 0x03, 0xb8, 0xd6, + 0xe1, 0x99, 0x71, 0x1b, 0xf8, 0x44, 0xfa, 0xb5, 0x31, 0x79, 0x1c, 0x37, 0x68, 0x4e, 0x1d, 0xc0, + 0x24, 0x74, 0x68, 0xf8, 0x80, 0x20, 0x3e, 0x44, 0xb1, 0x43, 0xd2, 0x9c, 0xfc, 0x12, 0x9e, 0x77, + 0x0a, 0xde, 0x29, 0x24, 0xff, 0x2e, 0xfa, 0xc7, 0x10, 0xd5, 0x73, 0xd4, 0xc6, 0xdf, 0x62, 0x9f, +]; + +/// Encode the public key to CBOR Value. The input (raw 32 bytes) is wrapped into CoseKey. +fn ed25519_public_key_to_cbor_value(public_key: &[u8]) -> Value { + let key = CoseKey { + kty: KeyType::Assigned(iana::KeyType::OKP), + alg: Some(Algorithm::Assigned(iana::Algorithm::EdDSA)), + key_ops: vec![KeyOperation::Assigned(iana::KeyOperation::Verify)].into_iter().collect(), + params: vec![ + ( + Label::Int(iana::Ec2KeyParameter::Crv as i64), + Value::from(iana::EllipticCurve::Ed25519 as u64), + ), + (Label::Int(iana::Ec2KeyParameter::X as i64), Value::Bytes(public_key.to_vec())), + ], + ..Default::default() + }; + key.to_cbor_value().unwrap() +} + +/// Makes a DICE chain (BCC) from the sample input. +/// +/// The DICE chain is of the following format: +/// public key derived from UDS -> ABL certificate -> AVB certificate -> Android certificate +/// The `security_version` is included in the Android certificate as well as each subcomponent +/// of AVB certificate. +pub fn make_explicit_owned_dice(security_version: u64) -> OwnedDiceArtifactsWithExplicitKey { + let dice = make_sample_bcc_and_cdis(security_version); + OwnedDiceArtifactsWithExplicitKey::from_owned_artifacts(dice).unwrap() +} + +fn make_sample_bcc_and_cdis(security_version: u64) -> OwnedDiceArtifacts { + let private_key_seed = derive_cdi_private_key_seed(UDS).unwrap(); + + // Gets the root public key in DICE chain (BCC). + let (public_key, _) = keypair_from_seed(private_key_seed.as_array()).unwrap(); + let ed25519_public_key_value = ed25519_public_key_to_cbor_value(&public_key); + + // Gets the ABL certificate to as the root certificate of DICE chain. + let config_values = DiceConfigValues { + component_name: Some(CStr::from_bytes_with_nul(b"ABL\0").unwrap()), + component_version: Some(1), + resettable: true, + ..Default::default() + }; + let config_descriptor = retry_bcc_format_config_descriptor(&config_values).unwrap(); + let input_values = InputValues::new( + CODE_HASH_ABL, + Config::Descriptor(config_descriptor.as_slice()), + AUTHORITY_HASH_ABL, + DiceMode::kDiceModeNormal, + HIDDEN_ABL, + ); + let (cdi_values, cert) = retry_dice_main_flow(UDS, UDS, &input_values).unwrap(); + let bcc_value = + Value::Array(vec![ed25519_public_key_value, de::from_reader(&cert[..]).unwrap()]); + let mut bcc: Vec = vec![]; + ser::into_writer(&bcc_value, &mut bcc).unwrap(); + + // Appends AVB certificate to DICE chain. + let config_desc = cbor!({ + COMPONENT_NAME => "AVB", + COMPONENT_VERSION => 1, + COMPONENT_RESETTABLE => null, + SUBCOMPONENT_DESCRIPTORS => [ + { + SUBCOMPONENT_NAME => "sub_1", + SUBCOMPONENT_SECURITY_VERSION => security_version, + SUBCOMPONENT_CODE_HASH=> b"xoxo", + SUBCOMPONENT_AUTHORITY_HASH => b"oxox" + }, + { + SUBCOMPONENT_NAME => "sub_2", + SUBCOMPONENT_SECURITY_VERSION => security_version, + SUBCOMPONENT_CODE_HASH => b"xoxo", + SUBCOMPONENT_AUTHORITY_HASH => b"oxox", + } + ] + }) + .unwrap() + .to_vec() + .unwrap(); + let input_values = InputValues::new( + CODE_HASH_AVB, + Config::Descriptor(&config_desc), + AUTHORITY_HASH_AVB, + DiceMode::kDiceModeNormal, + HIDDEN_AVB, + ); + let dice_artifacts = + retry_bcc_main_flow(&cdi_values.cdi_attest, &cdi_values.cdi_seal, &bcc, &input_values) + .unwrap(); + + // Appends Android certificate to DICE chain. + let config_values = DiceConfigValues { + component_name: Some(CStr::from_bytes_with_nul(b"Android\0").unwrap()), + component_version: Some(12), + security_version: Some(security_version), + resettable: true, + ..Default::default() + }; + let config_descriptor = retry_bcc_format_config_descriptor(&config_values).unwrap(); + let input_values = InputValues::new( + [0u8; HASH_SIZE], // code_hash + Config::Descriptor(config_descriptor.as_slice()), + AUTHORITY_HASH_ANDROID, + DiceMode::kDiceModeNormal, + [0u8; HIDDEN_SIZE], // hidden + ); + retry_bcc_main_flow( + dice_artifacts.cdi_attest(), + dice_artifacts.cdi_seal(), + dice_artifacts + .bcc() + .ok_or_else(|| { + error!("bcc is none"); + DiceError::InvalidInput + }) + .unwrap(), + &input_values, + ) + .unwrap() +} diff --git a/security/secretkeeper/aidl/vts/lib.rs b/security/secretkeeper/aidl/vts/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..3afe93826c17f8dfded7456cb01b4f933f33e60b --- /dev/null +++ b/security/secretkeeper/aidl/vts/lib.rs @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +//! Test helper functions. + +pub mod dice_sample; + +// Constants for DICE map keys. + +/// Map key for authority hash. +pub const AUTHORITY_HASH: i64 = -4670549; +/// Map key for config descriptor. +pub const CONFIG_DESC: i64 = -4670548; +/// Map key for component name. +pub const COMPONENT_NAME: i64 = -70002; +/// Map key for component version. +pub const COMPONENT_VERSION: i64 = -70003; +/// Map key for Resettable. +pub const COMPONENT_RESETTABLE: i64 = -70004; +/// Map key for security version. +pub const SECURITY_VERSION: i64 = -70005; +/// Map key for mode. +pub const MODE: i64 = -4670551; +/// Map key for SubcomponentDescriptor. +pub const SUBCOMPONENT_DESCRIPTORS: i64 = -71002; +/// Map key for name of subcomponent. +pub const SUBCOMPONENT_NAME: i64 = 1; +/// Map key for Security Version of subcomponent. +pub const SUBCOMPONENT_SECURITY_VERSION: i64 = 2; +/// Map key for Code hash of subcomponent. +pub const SUBCOMPONENT_CODE_HASH: i64 = 3; +/// Map key for Authority Hash of subcomponent. +pub const SUBCOMPONENT_AUTHORITY_HASH: i64 = 4; diff --git a/security/secretkeeper/aidl/vts/rustfmt.toml b/security/secretkeeper/aidl/vts/rustfmt.toml new file mode 120000 index 0000000000000000000000000000000000000000..ed2086b56b07b92ce93eb297bff00713533e1c7f --- /dev/null +++ b/security/secretkeeper/aidl/vts/rustfmt.toml @@ -0,0 +1 @@ +../../../../../../build/soong/scripts/rustfmt.toml \ No newline at end of file diff --git a/security/secretkeeper/aidl/vts/secretkeeper_cli.rs b/security/secretkeeper/aidl/vts/secretkeeper_cli.rs new file mode 100644 index 0000000000000000000000000000000000000000..377ed37b4e2b4cfc78db09f40fa22898d67524d1 --- /dev/null +++ b/security/secretkeeper/aidl/vts/secretkeeper_cli.rs @@ -0,0 +1,382 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +//! Command line test tool for interacting with Secretkeeper. + +use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::{ + ISecretkeeper::ISecretkeeper, SecretId::SecretId, +}; +use anyhow::{anyhow, bail, Context, Result}; +use authgraph_boringssl::BoringSha256; +use authgraph_core::traits::Sha256; +use clap::{Args, Parser, Subcommand}; +use coset::CborSerializable; +use dice_policy_builder::{ + policy_for_dice_chain, CertIndex, ConstraintSpec, ConstraintType, MissingAction, + WILDCARD_FULL_ARRAY, +}; + +use secretkeeper_client::{dice::OwnedDiceArtifactsWithExplicitKey, SkSession}; +use secretkeeper_comm::data_types::{ + error::SecretkeeperError, + packet::{ResponsePacket, ResponseType}, + request::Request, + request_response_impl::{GetSecretRequest, GetSecretResponse, StoreSecretRequest}, + response::Response, + {Id, Secret}, +}; +use secretkeeper_test::{ + dice_sample::make_explicit_owned_dice, AUTHORITY_HASH, CONFIG_DESC, MODE, SECURITY_VERSION, + SUBCOMPONENT_AUTHORITY_HASH, SUBCOMPONENT_DESCRIPTORS, SUBCOMPONENT_SECURITY_VERSION, +}; +use std::io::Write; + +#[derive(Parser, Debug)] +#[command(about = "Interact with Secretkeeper HAL")] +#[command(version = "0.1")] +#[command(propagate_version = true)] +struct Cli { + #[command(subcommand)] + command: Command, + + /// Secretkeeper instance to connect to. + #[arg(long, short)] + instance: Option, + + /// Security version in leaf DICE node. + #[clap(default_value_t = 100)] + #[arg(long, short = 'v')] + dice_version: u64, + + /// Show hex versions of secrets and their IDs. + #[clap(default_value_t = false)] + #[arg(long, short = 'v')] + hex: bool, +} + +#[derive(Subcommand, Debug)] +enum Command { + /// Store a secret value. + Store(StoreArgs), + /// Get a secret value. + Get(GetArgs), + /// Delete a secret value. + Delete(DeleteArgs), + /// Delete all secret values. + DeleteAll(DeleteAllArgs), +} + +#[derive(Args, Debug)] +struct StoreArgs { + /// Identifier for the secret, as either a short (< 32 byte) string, or as 32 bytes of hex. + id: String, + /// Value to use as the secret value. If specified as 32 bytes of hex, the decoded value + /// will be used as-is; otherwise, a string (less than 31 bytes in length) will be encoded + /// as the secret. + value: String, +} + +#[derive(Args, Debug)] +struct GetArgs { + /// Identifier for the secret, as either a short (< 32 byte) string, or as 32 bytes of hex. + id: String, +} + +#[derive(Args, Debug)] +struct DeleteArgs { + /// Identifier for the secret, as either a short (< 32 byte) string, or as 32 bytes of hex. + id: String, +} + +#[derive(Args, Debug)] +struct DeleteAllArgs { + /// Confirm deletion of all secrets. + yes: bool, +} + +const SECRETKEEPER_SERVICE: &str = "android.hardware.security.secretkeeper.ISecretkeeper"; + +/// Secretkeeper client information. +struct SkClient { + sk: binder::Strong, + session: SkSession, + dice_artifacts: OwnedDiceArtifactsWithExplicitKey, +} + +impl SkClient { + fn new(instance: &str, dice_artifacts: OwnedDiceArtifactsWithExplicitKey) -> Self { + let sk: binder::Strong = + binder::get_interface(&format!("{SECRETKEEPER_SERVICE}/{instance}")).unwrap(); + let session = SkSession::new(sk.clone(), &dice_artifacts, None).unwrap(); + Self { sk, session, dice_artifacts } + } + + fn secret_management_request(&mut self, req_data: &[u8]) -> Result> { + self.session + .secret_management_request(req_data) + .map_err(|e| anyhow!("secret management: {e:?}")) + } + + /// Construct a sealing policy on the DICE chain with constraints: + /// 1. `ExactMatch` on `AUTHORITY_HASH` (non-optional). + /// 2. `ExactMatch` on `MODE` (non-optional). + /// 3. `GreaterOrEqual` on `SECURITY_VERSION` (optional). + fn sealing_policy(&self) -> Result> { + let dice = + self.dice_artifacts.explicit_key_dice_chain().context("extract explicit DICE chain")?; + + let constraint_spec = [ + ConstraintSpec::new( + ConstraintType::ExactMatch, + vec![AUTHORITY_HASH], + MissingAction::Fail, + CertIndex::All, + ), + ConstraintSpec::new( + ConstraintType::ExactMatch, + vec![MODE], + MissingAction::Fail, + CertIndex::All, + ), + ConstraintSpec::new( + ConstraintType::GreaterOrEqual, + vec![CONFIG_DESC, SECURITY_VERSION], + MissingAction::Ignore, + CertIndex::All, + ), + // Constraints on sub components in the second last DiceChainEntry + ConstraintSpec::new( + ConstraintType::GreaterOrEqual, + vec![ + CONFIG_DESC, + SUBCOMPONENT_DESCRIPTORS, + WILDCARD_FULL_ARRAY, + SUBCOMPONENT_SECURITY_VERSION, + ], + MissingAction::Fail, + CertIndex::FromEnd(1), + ), + ConstraintSpec::new( + ConstraintType::ExactMatch, + vec![ + CONFIG_DESC, + SUBCOMPONENT_DESCRIPTORS, + WILDCARD_FULL_ARRAY, + SUBCOMPONENT_AUTHORITY_HASH, + ], + MissingAction::Fail, + CertIndex::FromEnd(1), + ), + ]; + policy_for_dice_chain(dice, &constraint_spec) + .unwrap() + .to_vec() + .context("serialize DICE policy") + } + + fn store(&mut self, id: &Id, secret: &Secret) -> Result<()> { + let store_request = StoreSecretRequest { + id: id.clone(), + secret: secret.clone(), + sealing_policy: self.sealing_policy().context("build sealing policy")?, + }; + let store_request = + store_request.serialize_to_packet().to_vec().context("serialize StoreSecretRequest")?; + + let store_response = self.secret_management_request(&store_request)?; + let store_response = + ResponsePacket::from_slice(&store_response).context("deserialize ResponsePacket")?; + let response_type = store_response.response_type().unwrap(); + if response_type == ResponseType::Success { + Ok(()) + } else { + let err = *SecretkeeperError::deserialize_from_packet(store_response).unwrap(); + Err(anyhow!("STORE failed: {err:?}")) + } + } + + fn get(&mut self, id: &Id) -> Result> { + let get_request = GetSecretRequest { id: id.clone(), updated_sealing_policy: None } + .serialize_to_packet() + .to_vec() + .context("serialize GetSecretRequest")?; + + let get_response = self.secret_management_request(&get_request).context("secret mgmt")?; + let get_response = + ResponsePacket::from_slice(&get_response).context("deserialize ResponsePacket")?; + + if get_response.response_type().unwrap() == ResponseType::Success { + let get_response = *GetSecretResponse::deserialize_from_packet(get_response).unwrap(); + Ok(Some(Secret(get_response.secret.0))) + } else { + // Only expect a not-found failure. + let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); + if err == SecretkeeperError::EntryNotFound { + Ok(None) + } else { + Err(anyhow!("GET failed: {err:?}")) + } + } + } + + /// Helper method to delete secrets. + fn delete(&self, ids: &[&Id]) -> Result<()> { + let ids: Vec = ids.iter().map(|id| SecretId { id: id.0 }).collect(); + self.sk.deleteIds(&ids).context("deleteIds") + } + + /// Helper method to delete everything. + fn delete_all(&self) -> Result<()> { + self.sk.deleteAll().context("deleteAll") + } +} + +/// Convert a string input into an `Id`. Input can be 64 bytes of hex, or a string +/// that will be hashed to give the `Id` value. Returns the `Id` and a display string. +fn string_to_id(s: &str, show_hex: bool) -> (Id, String) { + if let Ok(data) = hex::decode(s) { + if data.len() == 64 { + // Assume something that parses as 64 bytes of hex is it. + return (Id(data.try_into().unwrap()), s.to_string().to_lowercase()); + } + } + // Create a secret ID by repeating the SHA-256 hash of the string twice. + let hash = BoringSha256.compute_sha256(s.as_bytes()).unwrap(); + let mut id = Id([0; 64]); + id.0[..32].copy_from_slice(&hash); + id.0[32..].copy_from_slice(&hash); + if show_hex { + let hex_id = hex::encode(&id.0); + (id, format!("'{s}' (as {hex_id})")) + } else { + (id, format!("'{s}'")) + } +} + +/// Convert a string input into a `Secret`. Input can be 32 bytes of hex, or a short string +/// that will be encoded as the `Secret` value. Returns the `Secret` and a display string. +fn value_to_secret(s: &str, show_hex: bool) -> Result<(Secret, String)> { + if let Ok(data) = hex::decode(s) { + if data.len() == 32 { + // Assume something that parses as 32 bytes of hex is it. + return Ok((Secret(data.try_into().unwrap()), s.to_string().to_lowercase())); + } + } + let data = s.as_bytes(); + if data.len() > 31 { + return Err(anyhow!("secret too long")); + } + let mut secret = Secret([0; 32]); + secret.0[0] = data.len() as u8; + secret.0[1..1 + data.len()].copy_from_slice(data); + Ok(if show_hex { + let hex_secret = hex::encode(&secret.0); + (secret, format!("'{s}' (as {hex_secret})")) + } else { + (secret, format!("'{s}'")) + }) +} + +/// Convert a `Secret` into a displayable string. If the secret looks like an encoded +/// string, show that, otherwise show the value in hex. +fn secret_to_value_display(secret: &Secret, show_hex: bool) -> String { + let hex = hex::encode(&secret.0); + secret_to_value(secret) + .map(|s| if show_hex { format!("'{s}' (from {hex})") } else { format!("'{s}'") }) + .unwrap_or_else(|_e| format!("{hex}")) +} + +/// Attempt to convert a `Secret` back to a string. +fn secret_to_value(secret: &Secret) -> Result { + let len = secret.0[0] as usize; + if len > 31 { + return Err(anyhow!("too long")); + } + std::str::from_utf8(&secret.0[1..1 + len]).map(|s| s.to_string()).context("not UTF-8 string") +} + +fn main() -> Result<()> { + let cli = Cli::parse(); + + // Figure out which Secretkeeper instance is desired, and connect to it. + let instance = if let Some(instance) = &cli.instance { + // Explicitly specified. + instance.clone() + } else { + // If there's only one instance, use that. + let instances: Vec = binder::get_declared_instances(SECRETKEEPER_SERVICE) + .unwrap_or_default() + .into_iter() + .collect(); + match instances.len() { + 0 => bail!("No Secretkeeper instances available on device!"), + 1 => instances[0].clone(), + _ => { + bail!( + concat!( + "Multiple Secretkeeper instances available on device: {}\n", + "Use --instance to specify one." + ), + instances.join(", ") + ); + } + } + }; + let dice = make_explicit_owned_dice(cli.dice_version); + let mut sk_client = SkClient::new(&instance, dice); + + match cli.command { + Command::Get(args) => { + let (id, display_id) = string_to_id(&args.id, cli.hex); + print!("GET key {display_id}: "); + match sk_client.get(&id).context("GET") { + Ok(None) => println!("not found"), + Ok(Some(s)) => println!("{}", secret_to_value_display(&s, cli.hex)), + Err(e) => { + println!("failed!"); + return Err(e); + } + } + } + Command::Store(args) => { + let (id, display_id) = string_to_id(&args.id, cli.hex); + let (secret, display_secret) = value_to_secret(&args.value, cli.hex)?; + println!("STORE key {display_id}: {display_secret}"); + sk_client.store(&id, &secret).context("STORE")?; + } + Command::Delete(args) => { + let (id, display_id) = string_to_id(&args.id, cli.hex); + println!("DELETE key {display_id}"); + sk_client.delete(&[&id]).context("DELETE")?; + } + Command::DeleteAll(args) => { + if !args.yes { + // Request confirmation. + println!("Confirm delete all secrets: [y/N]"); + let _ = std::io::stdout().flush(); + let mut input = String::new(); + std::io::stdin().read_line(&mut input)?; + let c = input.chars().next(); + if c != Some('y') && c != Some('Y') { + bail!("DELETE_ALL not confirmed"); + } + } + println!("DELETE_ALL"); + sk_client.delete_all().context("DELETE_ALL")?; + } + } + Ok(()) +} diff --git a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs index a473bd0eba0a135b3d2124962b0606c78d7324c1..7c00aa93bbc5b9bf95afc62667281ba082abc186 100644 --- a/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs +++ b/security/secretkeeper/aidl/vts/secretkeeper_test_client.rs @@ -14,107 +14,340 @@ * limitations under the License. */ -#[cfg(test)] -use binder::StatusCode; -use coset::{CborSerializable, CoseEncrypt0}; -use log::warn; +use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::ISecretkeeper::ISecretkeeper; +use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::SecretId::SecretId; +use authgraph_vts_test as ag_vts; +use authgraph_boringssl as boring; +use authgraph_core::key; +use coset::{CborOrdering, CborSerializable, CoseEncrypt0, CoseKey}; +use dice_policy_builder::{CertIndex, ConstraintSpec, ConstraintType, MissingAction, WILDCARD_FULL_ARRAY, policy_for_dice_chain}; +use rdroidtest::{ignore_if, rdroidtest}; +use secretkeeper_client::dice::OwnedDiceArtifactsWithExplicitKey; +use secretkeeper_client::{SkSession, Error as SkClientError}; use secretkeeper_core::cipher; use secretkeeper_comm::data_types::error::SecretkeeperError; use secretkeeper_comm::data_types::request::Request; use secretkeeper_comm::data_types::request_response_impl::{ GetVersionRequest, GetVersionResponse, GetSecretRequest, GetSecretResponse, StoreSecretRequest, StoreSecretResponse }; -use secretkeeper_comm::data_types::{Id, ID_SIZE, Secret, SECRET_SIZE}; +use secretkeeper_comm::data_types::{Id, Secret, SeqNum}; use secretkeeper_comm::data_types::response::Response; use secretkeeper_comm::data_types::packet::{ResponsePacket, ResponseType}; -use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::ISecretkeeper::ISecretkeeper; -use authgraph_vts_test as ag_vts; -use authgraph_boringssl as boring; -use authgraph_core::key; - -const SECRETKEEPER_IDENTIFIER: &str = - "android.hardware.security.secretkeeper.ISecretkeeper/nonsecure"; +use secretkeeper_test::{ + AUTHORITY_HASH, MODE, CONFIG_DESC, SECURITY_VERSION, SUBCOMPONENT_AUTHORITY_HASH, + SUBCOMPONENT_DESCRIPTORS, SUBCOMPONENT_SECURITY_VERSION, + dice_sample::make_explicit_owned_dice +}; +use std::fs; +use std::path::Path; + +const SECRETKEEPER_SERVICE: &str = "android.hardware.security.secretkeeper.ISecretkeeper"; const CURRENT_VERSION: u64 = 1; - -// TODO(b/291238565): This will change once libdice_policy switches to Explicit-key DiceCertChain -// This is generated by patching libdice_policy such that it dumps an example dice chain & -// a policy, such that the former matches the latter. -const HYPOTHETICAL_DICE_POLICY: [u8; 43] = [ - 0x83, 0x01, 0x81, 0x83, 0x01, 0x80, 0xA1, 0x01, 0x00, 0x82, 0x83, 0x01, 0x81, 0x01, 0x73, 0x74, - 0x65, 0x73, 0x74, 0x69, 0x6E, 0x67, 0x5F, 0x64, 0x69, 0x63, 0x65, 0x5F, 0x70, 0x6F, 0x6C, 0x69, - 0x63, 0x79, 0x83, 0x02, 0x82, 0x03, 0x18, 0x64, 0x19, 0xE9, 0x75, -]; +const SECRETKEEPER_KEY_HOST_DT: &str = + "/proc/device-tree/avf/reference/avf/secretkeeper_public_key"; // Random bytes (of ID_SIZE/SECRET_SIZE) generated for tests. -const ID_EXAMPLE: [u8; ID_SIZE] = [ +const ID_EXAMPLE: Id = Id([ 0xF1, 0xB2, 0xED, 0x3B, 0xD1, 0xBD, 0xF0, 0x7D, 0xE1, 0xF0, 0x01, 0xFC, 0x61, 0x71, 0xD3, 0x42, 0xE5, 0x8A, 0xAF, 0x33, 0x6C, 0x11, 0xDC, 0xC8, 0x6F, 0xAE, 0x12, 0x5C, 0x26, 0x44, 0x6B, 0x86, 0xCC, 0x24, 0xFD, 0xBF, 0x91, 0x4A, 0x54, 0x84, 0xF9, 0x01, 0x59, 0x25, 0x70, 0x89, 0x38, 0x8D, 0x5E, 0xE6, 0x91, 0xDF, 0x68, 0x60, 0x69, 0x26, 0xBE, 0xFE, 0x79, 0x58, 0xF7, 0xEA, 0x81, 0x7D, -]; -const ID_NOT_STORED: [u8; ID_SIZE] = [ +]); +const ID_EXAMPLE_2: Id = Id([ + 0x6A, 0xCC, 0xB1, 0xEB, 0xBB, 0xAB, 0xE3, 0xEA, 0x44, 0xBD, 0xDC, 0x75, 0x75, 0x7D, 0xC0, 0xE5, + 0xC7, 0x86, 0x41, 0x56, 0x39, 0x66, 0x96, 0x10, 0xCB, 0x43, 0x10, 0x79, 0x03, 0xDC, 0xE6, 0x9F, + 0x12, 0x2B, 0xEF, 0x28, 0x9C, 0x1E, 0x32, 0x46, 0x5F, 0xA3, 0xE7, 0x8D, 0x53, 0x63, 0xE8, 0x30, + 0x5A, 0x17, 0x6F, 0xEF, 0x42, 0xD6, 0x58, 0x7A, 0xF0, 0xCB, 0xD4, 0x40, 0x58, 0x96, 0x32, 0xF4, +]); +const ID_NOT_STORED: Id = Id([ 0x56, 0xD0, 0x4E, 0xAA, 0xC1, 0x7B, 0x55, 0x6B, 0xA0, 0x2C, 0x65, 0x43, 0x39, 0x0A, 0x6C, 0xE9, 0x1F, 0xD0, 0x0E, 0x20, 0x3E, 0xFB, 0xF5, 0xF9, 0x3F, 0x5B, 0x11, 0x1B, 0x18, 0x73, 0xF6, 0xBB, 0xAB, 0x9F, 0xF2, 0xD6, 0xBD, 0xBA, 0x25, 0x68, 0x22, 0x30, 0xF2, 0x1F, 0x90, 0x05, 0xF3, 0x64, 0xE7, 0xEF, 0xC6, 0xB6, 0xA0, 0x85, 0xC9, 0x40, 0x40, 0xF0, 0xB4, 0xB9, 0xD8, 0x28, 0xEE, 0x9C, -]; -const SECRET_EXAMPLE: [u8; SECRET_SIZE] = [ +]); +const SECRET_EXAMPLE: Secret = Secret([ 0xA9, 0x89, 0x97, 0xFE, 0xAE, 0x97, 0x55, 0x4B, 0x32, 0x35, 0xF0, 0xE8, 0x93, 0xDA, 0xEA, 0x24, 0x06, 0xAC, 0x36, 0x8B, 0x3C, 0x95, 0x50, 0x16, 0x67, 0x71, 0x65, 0x26, 0xEB, 0xD0, 0xC3, 0x98, -]; - -fn get_connection() -> Option> { - match binder::get_interface(SECRETKEEPER_IDENTIFIER) { - Ok(sk) => Some(sk), - Err(StatusCode::NAME_NOT_FOUND) => None, - Err(e) => { - panic!( - "unexpected error while fetching connection to Secretkeeper {:?}", - e - ); - } +]); + +// Android expects the public key of Secretkeeper instance to be present in the Linux device tree. +// This allows clients to (cryptographically) verify that they are indeed talking to the real +// secretkeeper. +// Note that this is the identity of the `default` instance (and not `nonsecure`)! +fn get_secretkeeper_identity() -> Option { + let path = Path::new(SECRETKEEPER_KEY_HOST_DT); + if path.exists() { + let key = fs::read(path).unwrap(); + let mut key = CoseKey::from_slice(&key).unwrap(); + key.canonicalize(CborOrdering::Lexicographic); + Some(key) + } else { + None } } +fn get_instances() -> Vec<(String, String)> { + // Determine which instances are available. + binder::get_declared_instances(SECRETKEEPER_SERVICE) + .unwrap_or_default() + .into_iter() + .map(|v| (v.clone(), v)) + .collect() +} + +fn get_connection(instance: &str) -> binder::Strong { + let name = format!("{SECRETKEEPER_SERVICE}/{instance}"); + binder::get_interface(&name).unwrap() +} + /// Secretkeeper client information. +#[derive(Debug)] struct SkClient { sk: binder::Strong, - aes_keys: [key::AesKey; 2], - session_id: Vec, + session: SkSession, + dice_artifacts: OwnedDiceArtifactsWithExplicitKey, +} + +impl Drop for SkClient { + fn drop(&mut self) { + // Delete any IDs that may be left over. + self.delete(&[&ID_EXAMPLE, &ID_EXAMPLE_2]); + } } impl SkClient { - fn new() -> Option { - let sk = get_connection()?; - let (aes_keys, session_id) = authgraph_key_exchange(sk.clone()); - Some(Self { - sk, - aes_keys, - session_id, + /// Create an `SkClient` using the default `OwnedDiceArtifactsWithExplicitKey` for identity. + fn new(instance: &str) -> Result { + let default_dice = make_explicit_owned_dice(/*Security version in a node */ 5); + Self::create(instance, default_dice, None) + } + + /// Create an `SkClient` using given `OwnedDiceArtifactsWithExplicitKey` as client identity. + fn with_identity( + instance: &str, + dice_artifacts: OwnedDiceArtifactsWithExplicitKey, + ) -> Result { + Self::create(instance, dice_artifacts, None) + } + + /// Create an `SkClient` with default client identity, requiring Secretkeeper's identity to be + /// matched against given `expected_sk_key`. + fn with_expected_sk_identity( + instance: &str, + expected_sk_key: coset::CoseKey, + ) -> Result { + let default_dice = make_explicit_owned_dice(/*Security version in a node */ 5); + Self::create(instance, default_dice, Some(expected_sk_key)) + } + + fn create( + instance: &str, + dice_artifacts: OwnedDiceArtifactsWithExplicitKey, + expected_sk_key: Option, + ) -> Result { + let sk = get_connection(instance); + Ok(Self { + sk: sk.clone(), + session: SkSession::new(sk, &dice_artifacts, expected_sk_key)?, + dice_artifacts, }) } - /// Wrapper around `ISecretkeeper::processSecretManagementRequest` that handles + + /// This method is wrapper that use `SkSession::secret_management_request` which handles /// encryption and decryption. - fn secret_management_request(&self, req_data: &[u8]) -> Vec { + fn secret_management_request(&mut self, req_data: &[u8]) -> Result, Error> { + Ok(self.session.secret_management_request(req_data)?) + } + + /// Unlike the method [`secret_management_request`], this method directly uses + /// `cipher::encrypt_message` & `cipher::decrypt_message`, allowing finer control of request + /// & response aad. + fn secret_management_request_custom_aad( + &self, + req_data: &[u8], + req_aad: &[u8], + expected_res_aad: &[u8], + ) -> Result, Error> { let aes_gcm = boring::BoringAes; let rng = boring::BoringRng; let request_bytes = cipher::encrypt_message( &aes_gcm, &rng, - &self.aes_keys[0], - &self.session_id, + self.session.encryption_key(), + self.session.session_id(), &req_data, + req_aad, ) - .unwrap(); + .map_err(|e| secretkeeper_client::Error::CipherError(e))?; - let response_bytes = self - .sk - .processSecretManagementRequest(&request_bytes) - .unwrap(); + // Binder call! + let response_bytes = self.sk.processSecretManagementRequest(&request_bytes)?; - let response_encrypt0 = CoseEncrypt0::from_slice(&response_bytes).unwrap(); - cipher::decrypt_message(&aes_gcm, &self.aes_keys[1], &response_encrypt0).unwrap() + let response_encrypt0 = CoseEncrypt0::from_slice(&response_bytes)?; + Ok(cipher::decrypt_message( + &aes_gcm, + self.session.decryption_key(), + &response_encrypt0, + expected_res_aad, + ) + .map_err(|e| secretkeeper_client::Error::CipherError(e))?) } + + /// Helper method to store a secret. This uses the default compatible sealing_policy on + /// dice_chain. + fn store(&mut self, id: &Id, secret: &Secret) -> Result<(), Error> { + let sealing_policy = sealing_policy( + self.dice_artifacts.explicit_key_dice_chain().ok_or(Error::UnexpectedError)?, + ); + let store_request = + StoreSecretRequest { id: id.clone(), secret: secret.clone(), sealing_policy }; + let store_request = store_request.serialize_to_packet().to_vec()?; + + let store_response = self.secret_management_request(&store_request)?; + let store_response = ResponsePacket::from_slice(&store_response)?; + + assert_eq!(store_response.response_type()?, ResponseType::Success); + // Really just checking that the response is indeed StoreSecretResponse + let _ = StoreSecretResponse::deserialize_from_packet(store_response)?; + Ok(()) + } + + /// Helper method to get a secret. + fn get(&mut self, id: &Id) -> Result { + self.get_update_policy(id, None) + } + + /// Helper method to get a secret, updating the sealing policy along the way. + fn get_update_policy( + &mut self, + id: &Id, + updated_sealing_policy: Option>, + ) -> Result { + let get_request = GetSecretRequest { id: id.clone(), updated_sealing_policy }; + let get_request = get_request.serialize_to_packet().to_vec()?; + + let get_response = self.secret_management_request(&get_request)?; + let get_response = ResponsePacket::from_slice(&get_response)?; + + if get_response.response_type()? == ResponseType::Success { + let get_response = *GetSecretResponse::deserialize_from_packet(get_response)?; + Ok(Secret(get_response.secret.0)) + } else { + let err = *SecretkeeperError::deserialize_from_packet(get_response)?; + Err(Error::SecretkeeperError(err)) + } + } + + /// Helper method to delete secrets. + fn delete(&self, ids: &[&Id]) { + let ids: Vec = ids.iter().map(|id| SecretId { id: id.0 }).collect(); + self.sk.deleteIds(&ids).unwrap(); + } + + /// Helper method to delete everything. + fn delete_all(&self) { + self.sk.deleteAll().unwrap(); + } +} + +#[derive(Debug)] +enum Error { + // Errors from Secretkeeper API errors. These are thrown by core SecretManagement and + // not visible without decryption. + SecretkeeperError(SecretkeeperError), + InfraError(secretkeeper_client::Error), + UnexpectedError, +} + +impl From for Error { + fn from(e: secretkeeper_client::Error) -> Self { + Self::InfraError(e) + } +} + +impl From for Error { + fn from(e: SecretkeeperError) -> Self { + Self::SecretkeeperError(e) + } +} + +impl From for Error { + fn from(e: coset::CoseError) -> Self { + Self::InfraError(secretkeeper_client::Error::from(e)) + } +} + +impl From for Error { + fn from(s: binder::Status) -> Self { + Self::InfraError(secretkeeper_client::Error::from(s)) + } +} + +impl From for Error { + fn from(e: secretkeeper_comm::data_types::error::Error) -> Self { + Self::InfraError(secretkeeper_client::Error::from(e)) + } +} + +// Assert that the error is EntryNotFound +fn assert_entry_not_found(res: Result) { + assert!(matches!(res.unwrap_err(), Error::SecretkeeperError(SecretkeeperError::EntryNotFound))) +} + +/// Construct a sealing policy on the dice chain. This method uses the following set of +/// constraints which are compatible with sample DICE chains used in VTS. +/// 1. ExactMatch on AUTHORITY_HASH (non-optional). +/// 2. ExactMatch on MODE (non-optional). +/// 3. GreaterOrEqual on SECURITY_VERSION (optional). +/// 4. The second last DiceChainEntry contain SubcomponentDescriptor, for each of those: +/// a) GreaterOrEqual on SECURITY_VERSION (Required) +// b) ExactMatch on AUTHORITY_HASH (Required). +fn sealing_policy(dice: &[u8]) -> Vec { + let constraint_spec = [ + ConstraintSpec::new( + ConstraintType::ExactMatch, + vec![AUTHORITY_HASH], + MissingAction::Fail, + CertIndex::All, + ), + ConstraintSpec::new( + ConstraintType::ExactMatch, + vec![MODE], + MissingAction::Fail, + CertIndex::All, + ), + ConstraintSpec::new( + ConstraintType::GreaterOrEqual, + vec![CONFIG_DESC, SECURITY_VERSION], + MissingAction::Ignore, + CertIndex::All, + ), + // Constraints on sub components in the second last DiceChainEntry + ConstraintSpec::new( + ConstraintType::GreaterOrEqual, + vec![ + CONFIG_DESC, + SUBCOMPONENT_DESCRIPTORS, + WILDCARD_FULL_ARRAY, + SUBCOMPONENT_SECURITY_VERSION, + ], + MissingAction::Fail, + CertIndex::FromEnd(1), + ), + ConstraintSpec::new( + ConstraintType::ExactMatch, + vec![ + CONFIG_DESC, + SUBCOMPONENT_DESCRIPTORS, + WILDCARD_FULL_ARRAY, + SUBCOMPONENT_AUTHORITY_HASH, + ], + MissingAction::Fail, + CertIndex::FromEnd(1), + ), + ]; + + policy_for_dice_chain(dice, &constraint_spec).unwrap().to_vec().unwrap() } /// Perform AuthGraph key exchange, returning the session keys and session ID. @@ -124,47 +357,29 @@ fn authgraph_key_exchange(sk: binder::Strong) -> ([key::AesKe ag_vts::sink::test_mainline(&mut source, sink) } -/// Test that the AuthGraph instance returned by SecretKeeper correctly performs -/// mainline key exchange against a local source implementation. -#[test] -fn authgraph_mainline() { - let sk = match get_connection() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; +// Test that the AuthGraph instance returned by SecretKeeper correctly performs +// mainline key exchange against a local source implementation. +#[rdroidtest(get_instances())] +fn authgraph_mainline(instance: String) { + let sk = get_connection(&instance); let (_aes_keys, _session_id) = authgraph_key_exchange(sk); } -/// Test that the AuthGraph instance returned by SecretKeeper correctly rejects -/// a corrupted session ID signature. -#[test] -fn authgraph_corrupt_sig() { - let sk = match get_connection() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; +// Test that the AuthGraph instance returned by SecretKeeper correctly rejects +// a corrupted session ID signature. +#[rdroidtest(get_instances())] +fn authgraph_corrupt_sig(instance: String) { + let sk = get_connection(&instance); let sink = sk.getAuthGraphKe().expect("failed to get AuthGraph"); let mut source = ag_vts::test_ag_participant().expect("failed to create a local source"); ag_vts::sink::test_corrupt_sig(&mut source, sink); } -/// Test that the AuthGraph instance returned by SecretKeeper correctly detects -/// when corrupted keys are returned to it. -#[test] -fn authgraph_corrupt_keys() { - let sk = match get_connection() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; +// Test that the AuthGraph instance returned by SecretKeeper correctly detects +// when corrupted keys are returned to it. +#[rdroidtest(get_instances())] +fn authgraph_corrupt_keys(instance: String) { + let sk = get_connection(&instance); let sink = sk.getAuthGraphKe().expect("failed to get AuthGraph"); let mut source = ag_vts::test_ag_participant().expect("failed to create a local source"); ag_vts::sink::test_corrupt_keys(&mut source, sink); @@ -173,41 +388,26 @@ fn authgraph_corrupt_keys() { // TODO(b/2797757): Add tests that match different HAL defined objects (like request/response) // with expected bytes. -#[test] -fn secret_management_get_version() { - let sk_client = match SkClient::new() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; +#[rdroidtest(get_instances())] +fn secret_management_get_version(instance: String) { + let mut sk_client = SkClient::new(&instance).unwrap(); let request = GetVersionRequest {}; let request_packet = request.serialize_to_packet(); let request_bytes = request_packet.to_vec().unwrap(); - let response_bytes = sk_client.secret_management_request(&request_bytes); + let response_bytes = sk_client.secret_management_request(&request_bytes).unwrap(); let response_packet = ResponsePacket::from_slice(&response_bytes).unwrap(); - assert_eq!( - response_packet.response_type().unwrap(), - ResponseType::Success - ); + assert_eq!(response_packet.response_type().unwrap(), ResponseType::Success); let get_version_response = *GetVersionResponse::deserialize_from_packet(response_packet).unwrap(); assert_eq!(get_version_response.version, CURRENT_VERSION); } -#[test] -fn secret_management_malformed_request() { - let sk_client = match SkClient::new() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; +#[rdroidtest(get_instances())] +fn secret_management_malformed_request(instance: String) { + let mut sk_client = SkClient::new(&instance).unwrap(); let request = GetVersionRequest {}; let request_packet = request.serialize_to_packet(); @@ -216,96 +416,279 @@ fn secret_management_malformed_request() { // Deform the request request_bytes[0] = !request_bytes[0]; - let response_bytes = sk_client.secret_management_request(&request_bytes); + let response_bytes = sk_client.secret_management_request(&request_bytes).unwrap(); let response_packet = ResponsePacket::from_slice(&response_bytes).unwrap(); - assert_eq!( - response_packet.response_type().unwrap(), - ResponseType::Error - ); + assert_eq!(response_packet.response_type().unwrap(), ResponseType::Error); let err = *SecretkeeperError::deserialize_from_packet(response_packet).unwrap(); assert_eq!(err, SecretkeeperError::RequestMalformed); } -#[test] -fn secret_management_store_get_secret_found() { - let sk_client = match SkClient::new() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; +#[rdroidtest(get_instances())] +fn secret_management_store_get_secret_found(instance: String) { + let mut sk_client = SkClient::new(&instance).unwrap(); - let store_request = StoreSecretRequest { - id: Id(ID_EXAMPLE), - secret: Secret(SECRET_EXAMPLE), - sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), - }; + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); - let store_request = store_request.serialize_to_packet().to_vec().unwrap(); + // Get the secret that was just stored + assert_eq!(sk_client.get(&ID_EXAMPLE).unwrap(), SECRET_EXAMPLE); +} - let store_response = sk_client.secret_management_request(&store_request); - let store_response = ResponsePacket::from_slice(&store_response).unwrap(); +#[rdroidtest(get_instances())] +fn secret_management_store_get_secret_not_found(instance: String) { + let mut sk_client = SkClient::new(&instance).unwrap(); - assert_eq!( - store_response.response_type().unwrap(), - ResponseType::Success - ); - // Really just checking that the response is indeed StoreSecretResponse - let _ = StoreSecretResponse::deserialize_from_packet(store_response).unwrap(); + // Store a secret (corresponding to an id). + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); - // Get the secret that was just stored - let get_request = GetSecretRequest { - id: Id(ID_EXAMPLE), - updated_sealing_policy: None, - }; - let get_request = get_request.serialize_to_packet().to_vec().unwrap(); + // Get the secret that was never stored + assert_entry_not_found(sk_client.get(&ID_NOT_STORED)); +} + +#[rdroidtest(get_instances())] +fn secretkeeper_store_delete_ids(instance: String) { + let mut sk_client = SkClient::new(&instance).unwrap(); - let get_response = sk_client.secret_management_request(&get_request); - let get_response = ResponsePacket::from_slice(&get_response).unwrap(); - assert_eq!(get_response.response_type().unwrap(), ResponseType::Success); - let get_response = *GetSecretResponse::deserialize_from_packet(get_response).unwrap(); - assert_eq!(get_response.secret.0, SECRET_EXAMPLE); + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); + sk_client.delete(&[&ID_EXAMPLE]); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE)); + assert_eq!(sk_client.get(&ID_EXAMPLE_2).unwrap(), SECRET_EXAMPLE); + + sk_client.delete(&[&ID_EXAMPLE_2]); + + assert_entry_not_found(sk_client.get(&ID_EXAMPLE)); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE_2)); } -#[test] -fn secret_management_store_get_secret_not_found() { - let sk_client = match SkClient::new() { - Some(sk) => sk, - None => { - warn!("Secretkeeper HAL is unavailable, skipping test"); - return; - } - }; +#[rdroidtest(get_instances())] +fn secretkeeper_store_delete_multiple_ids(instance: String) { + let mut sk_client = SkClient::new(&instance).unwrap(); - // Store a secret (corresponding to an id). - let store_request = StoreSecretRequest { - id: Id(ID_EXAMPLE), - secret: Secret(SECRET_EXAMPLE), - sealing_policy: HYPOTHETICAL_DICE_POLICY.to_vec(), - }; + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); + sk_client.delete(&[&ID_EXAMPLE, &ID_EXAMPLE_2]); - let store_request = store_request.serialize_to_packet().to_vec().unwrap(); - let store_response = sk_client.secret_management_request(&store_request); - let store_response = ResponsePacket::from_slice(&store_response).unwrap(); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE)); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE_2)); +} +#[rdroidtest(get_instances())] +fn secretkeeper_store_delete_duplicate_ids(instance: String) { + let mut sk_client = SkClient::new(&instance).unwrap(); + + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); + // Delete the same secret twice. + sk_client.delete(&[&ID_EXAMPLE, &ID_EXAMPLE]); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE)); + assert_eq!(sk_client.get(&ID_EXAMPLE_2).unwrap(), SECRET_EXAMPLE); +} + +#[rdroidtest(get_instances())] +fn secretkeeper_store_delete_nonexistent(instance: String) { + let mut sk_client = SkClient::new(&instance).unwrap(); + + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); + sk_client.delete(&[&ID_NOT_STORED]); + + assert_eq!(sk_client.get(&ID_EXAMPLE).unwrap(), SECRET_EXAMPLE); + assert_eq!(sk_client.get(&ID_EXAMPLE_2).unwrap(), SECRET_EXAMPLE); + assert_entry_not_found(sk_client.get(&ID_NOT_STORED)); +} + +// Don't run deleteAll() on a secure device, as it might affect real secrets. +#[rdroidtest(get_instances())] +#[ignore_if(|p| p != "nonsecure")] +fn secretkeeper_store_delete_all(instance: String) { + let mut sk_client = SkClient::new(&instance).unwrap(); + + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + sk_client.store(&ID_EXAMPLE_2, &SECRET_EXAMPLE).unwrap(); + + sk_client.delete_all(); + + assert_entry_not_found(sk_client.get(&ID_EXAMPLE)); + assert_entry_not_found(sk_client.get(&ID_EXAMPLE_2)); + + // Store a new secret (corresponding to an id). + sk_client.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + + // Get the restored secret. + assert_eq!(sk_client.get(&ID_EXAMPLE).unwrap(), SECRET_EXAMPLE); + + // (Try to) Get the secret that was never stored + assert_entry_not_found(sk_client.get(&ID_NOT_STORED)); +} + +// This test checks that Secretkeeper uses the expected [`RequestSeqNum`] as aad while +// decrypting requests and the responses are encrypted with correct [`ResponseSeqNum`] for the +// first few messages. +#[rdroidtest(get_instances())] +fn secret_management_replay_protection_seq_num(instance: String) { + let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 5); + let sealing_policy = sealing_policy(dice_chain.explicit_key_dice_chain().unwrap()); + let sk_client = SkClient::with_identity(&instance, dice_chain).unwrap(); + // Construct encoded request packets for the test + let (req_1, req_2, req_3) = construct_secret_management_requests(sealing_policy); + + // Lets now construct the seq_numbers(in request & expected in response) + let mut seq_a = SeqNum::new(); + let [seq_0, seq_1, seq_2] = std::array::from_fn(|_| seq_a.get_then_increment().unwrap()); + + // Check first request/response is successful + let res = ResponsePacket::from_slice( + &sk_client.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0).unwrap(), + ) + .unwrap(); + assert_eq!(res.response_type().unwrap(), ResponseType::Success); + + // Check 2nd request/response is successful + let res = ResponsePacket::from_slice( + &sk_client.secret_management_request_custom_aad(&req_2, &seq_1, &seq_1).unwrap(), + ) + .unwrap(); + assert_eq!(res.response_type().unwrap(), ResponseType::Success); + + // Check 3rd request/response is successful + let res = ResponsePacket::from_slice( + &sk_client.secret_management_request_custom_aad(&req_3, &seq_2, &seq_2).unwrap(), + ) + .unwrap(); + assert_eq!(res.response_type().unwrap(), ResponseType::Success); +} + +// This test checks that Secretkeeper uses fresh [`RequestSeqNum`] & [`ResponseSeqNum`] +// for new sessions. +#[rdroidtest(get_instances())] +fn secret_management_replay_protection_seq_num_per_session(instance: String) { + let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 5); + let sealing_policy = sealing_policy(dice_chain.explicit_key_dice_chain().unwrap()); + let sk_client = SkClient::with_identity(&instance, dice_chain).unwrap(); + + // Construct encoded request packets for the test + let (req_1, _, _) = construct_secret_management_requests(sealing_policy); + + // Lets now construct the seq_number (in request & expected in response) + let mut seq_a = SeqNum::new(); + let seq_0 = seq_a.get_then_increment().unwrap(); + // Check first request/response is successful + let res = ResponsePacket::from_slice( + &sk_client.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0).unwrap(), + ) + .unwrap(); + assert_eq!(res.response_type().unwrap(), ResponseType::Success); + + // Start another session + let sk_client_diff = SkClient::new(&instance).unwrap(); + // Check first request/response is with seq_0 is successful + let res = ResponsePacket::from_slice( + &sk_client_diff.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0).unwrap(), + ) + .unwrap(); + assert_eq!(res.response_type().unwrap(), ResponseType::Success); +} + +// This test checks that Secretkeeper rejects requests with out of order [`RequestSeqNum`] +// TODO(b/317416663): This test fails, when HAL is not present in the device. Refactor to fix this. +#[rdroidtest(get_instances())] +fn secret_management_replay_protection_out_of_seq_req_not_accepted(instance: String) { + let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 5); + let sealing_policy = sealing_policy(dice_chain.explicit_key_dice_chain().unwrap()); + let sk_client = SkClient::with_identity(&instance, dice_chain).unwrap(); + + // Construct encoded request packets for the test + let (req_1, req_2, _) = construct_secret_management_requests(sealing_policy); + + // Lets now construct the seq_numbers(in request & expected in response) + let mut seq_a = SeqNum::new(); + let [seq_0, seq_1, seq_2] = std::array::from_fn(|_| seq_a.get_then_increment().unwrap()); + + // Assume First request/response is successful + sk_client.secret_management_request_custom_aad(&req_1, &seq_0, &seq_0).unwrap(); + + // Check 2nd request/response with skipped seq_num in request is a binder error + let res = sk_client + .secret_management_request_custom_aad(&req_2, /*Skipping seq_1*/ &seq_2, &seq_1); + let err = res.expect_err("Out of Seq messages accepted!"); + // Incorrect sequence numbers lead to failed decryption. The resultant error should be + // thrown in clear text & wrapped in Binder errors. + assert!(matches!(err, Error::InfraError(secretkeeper_client::Error::BinderStatus(_e)))); +} + +// This test checks DICE policy based access control of Secretkeeper. +#[rdroidtest(get_instances())] +fn secret_management_policy_gate(instance: String) { + let dice_chain = make_explicit_owned_dice(/*Security version in a node */ 100); + let mut sk_client_original = SkClient::with_identity(&instance, dice_chain).unwrap(); + sk_client_original.store(&ID_EXAMPLE, &SECRET_EXAMPLE).unwrap(); + assert_eq!(sk_client_original.get(&ID_EXAMPLE).unwrap(), SECRET_EXAMPLE); + + // Start a session with higher security_version & get the stored secret. + let dice_chain_upgraded = make_explicit_owned_dice(/*Security version in a node */ 101); + let mut sk_client_upgraded = SkClient::with_identity(&instance, dice_chain_upgraded).unwrap(); + assert_eq!(sk_client_upgraded.get(&ID_EXAMPLE).unwrap(), SECRET_EXAMPLE); + + // Start a session with lower security_version (This should be denied access to the secret). + let dice_chain_downgraded = make_explicit_owned_dice(/*Security version in a node */ 99); + let mut sk_client_downgraded = + SkClient::with_identity(&instance, dice_chain_downgraded).unwrap(); + assert!(matches!( + sk_client_downgraded.get(&ID_EXAMPLE).unwrap_err(), + Error::SecretkeeperError(SecretkeeperError::DicePolicyError) + )); + + // Now get the secret with the later version, and upgrade the sealing policy along the way. + let sealing_policy = + sealing_policy(sk_client_upgraded.dice_artifacts.explicit_key_dice_chain().unwrap()); assert_eq!( - store_response.response_type().unwrap(), - ResponseType::Success + sk_client_upgraded.get_update_policy(&ID_EXAMPLE, Some(sealing_policy)).unwrap(), + SECRET_EXAMPLE ); - // (Try to) Get the secret that was never stored - let get_request = GetSecretRequest { - id: Id(ID_NOT_STORED), - updated_sealing_policy: None, - }; - let get_request = get_request.serialize_to_packet().to_vec().unwrap(); - let get_response = sk_client.secret_management_request(&get_request); + // The original version of the client should no longer be able to retrieve the secret. + assert!(matches!( + sk_client_original.get(&ID_EXAMPLE).unwrap_err(), + Error::SecretkeeperError(SecretkeeperError::DicePolicyError) + )); +} - // Check that response is `SecretkeeperError::EntryNotFound` - let get_response = ResponsePacket::from_slice(&get_response).unwrap(); - assert_eq!(get_response.response_type().unwrap(), ResponseType::Error); - let err = *SecretkeeperError::deserialize_from_packet(get_response).unwrap(); - assert_eq!(err, SecretkeeperError::EntryNotFound); +// This test checks that the identity of Secretkeeper (in context of AuthGraph key exchange) is +// same as the one advertized in Linux device tree. This is only expected from `default` instance. +#[rdroidtest(get_instances())] +#[ignore_if(|p| p != "default")] +fn secretkeeper_check_identity(instance: String) { + let sk_key = get_secretkeeper_identity() + .expect("Failed to extract identity of default instance from device tree"); + // Create a session with this expected identity. This succeeds only if the identity used by + // Secretkeeper is sk_key. + let _ = SkClient::with_expected_sk_identity(&instance, sk_key).unwrap(); + // Create a session using any other expected sk identity, this should fail. Note that the + // failure arises from validation which happens at the local participant. + let mut any_other_key = CoseKey::default(); + any_other_key.canonicalize(CborOrdering::Lexicographic); + let err = SkClient::with_expected_sk_identity(&instance, any_other_key).unwrap_err(); + assert!(matches!( + err, + SkClientError::AuthgraphError(authgraph_core::error::Error( + authgraph_wire::ErrorCode::InvalidPeerKeKey, + _ + )) + )); } + +// Helper method that constructs 3 SecretManagement requests. Callers would usually not care about +// what each of the request concretely is. +fn construct_secret_management_requests(sealing_policy: Vec) -> (Vec, Vec, Vec) { + let version_request = GetVersionRequest {}; + let version_request = version_request.serialize_to_packet().to_vec().unwrap(); + let store_request = + StoreSecretRequest { id: ID_EXAMPLE, secret: SECRET_EXAMPLE, sealing_policy }; + let store_request = store_request.serialize_to_packet().to_vec().unwrap(); + let get_request = GetSecretRequest { id: ID_EXAMPLE, updated_sealing_policy: None }; + let get_request = get_request.serialize_to_packet().to_vec().unwrap(); + (version_request, store_request, get_request) +} + +rdroidtest::test_main!(); diff --git a/security/secretkeeper/default/Android.bp b/security/secretkeeper/default/Android.bp index 08cc67a5d08783c7181de96eae17e0afef72da8a..799188fd564522e5d64aa371b15c04c33b7c686b 100644 --- a/security/secretkeeper/default/Android.bp +++ b/security/secretkeeper/default/Android.bp @@ -15,9 +15,33 @@ */ package { + default_team: "trendy_team_virtualization", default_applicable_licenses: ["Android-Apache-2.0"], } +rust_library { + name: "libsecretkeeper_nonsecure", + crate_name: "secretkeeper_nonsecure", + srcs: [ + "src/lib.rs", + ], + vendor_available: true, + defaults: [ + "authgraph_use_latest_hal_aidl_rust", + ], + rustlibs: [ + "android.hardware.security.secretkeeper-V1-rust", + "libauthgraph_boringssl", + "libauthgraph_core", + "libauthgraph_hal", + "libbinder_rs", + "libcoset", + "liblog_rust", + "libsecretkeeper_core_nostd", + "libsecretkeeper_comm_nostd", + ], +} + rust_binary { name: "android.hardware.security.secretkeeper-service.nonsecure", relative_install_path: "hw", @@ -30,20 +54,34 @@ rust_binary { rustlibs: [ "android.hardware.security.secretkeeper-V1-rust", "libandroid_logger", - "libauthgraph_boringssl", - "libauthgraph_core", - "libauthgraph_hal", "libbinder_rs", "liblog_rust", - "libsecretkeeper_comm_nostd", - "libsecretkeeper_core_nostd", "libsecretkeeper_hal", + "libsecretkeeper_nonsecure", ], srcs: [ "src/main.rs", ], } +rust_fuzz { + name: "android.hardware.security.secretkeeper-service.nonsecure_fuzzer", + rustlibs: [ + "libsecretkeeper_hal", + "libsecretkeeper_nonsecure", + "libbinder_random_parcel_rs", + "libbinder_rs", + ], + srcs: ["src/fuzzer.rs"], + fuzz_config: { + cc: [ + "alanstokes@google.com", + "drysdale@google.com", + "shikhapanwar@google.com", + ], + }, +} + prebuilt_etc { name: "secretkeeper.rc", src: "secretkeeper.rc", diff --git a/security/secretkeeper/default/src/fuzzer.rs b/security/secretkeeper/default/src/fuzzer.rs new file mode 100644 index 0000000000000000000000000000000000000000..914ebe6320c7e91e1338275faacc608f1f972199 --- /dev/null +++ b/security/secretkeeper/default/src/fuzzer.rs @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#![allow(missing_docs)] +#![no_main] +extern crate libfuzzer_sys; + +use binder_random_parcel_rs::fuzz_service; +use libfuzzer_sys::fuzz_target; +use secretkeeper_hal::SecretkeeperService; +use secretkeeper_nonsecure::{AuthGraphChannel, LocalTa, SecretkeeperChannel}; +use std::sync::{Arc, Mutex}; + +fuzz_target!(|data: &[u8]| { + let ta = Arc::new(Mutex::new(LocalTa::new())); + let ag_channel = AuthGraphChannel(ta.clone()); + let sk_channel = SecretkeeperChannel(ta.clone()); + + let service = SecretkeeperService::new_as_binder(sk_channel, ag_channel); + fuzz_service(&mut service.as_binder(), data); +}); diff --git a/security/secretkeeper/default/src/lib.rs b/security/secretkeeper/default/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..eb7817c5583bb0d95bb43dd2d38e59d472abc681 --- /dev/null +++ b/security/secretkeeper/default/src/lib.rs @@ -0,0 +1,136 @@ +/* + * 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. + */ + +//! Non-secure implementation of a local Secretkeeper TA. + +use authgraph_boringssl as boring; +use authgraph_core::keyexchange::{AuthGraphParticipant, MAX_OPENED_SESSIONS}; +use authgraph_core::ta::{AuthGraphTa, Role}; +use authgraph_hal::channel::SerializedChannel; +use log::error; +use secretkeeper_core::ta::SecretkeeperTa; +use std::cell::RefCell; +use std::rc::Rc; +use std::sync::mpsc; +use std::sync::{Arc, Mutex}; + +mod store; + +/// Implementation of the Secrekeeper TA that runs locally in-process (and which is therefore +/// insecure). +pub struct LocalTa { + in_tx: mpsc::Sender>, + out_rx: mpsc::Receiver>, +} + +/// Prefix byte for messages intended for the AuthGraph TA. +const AG_MESSAGE_PREFIX: u8 = 0x00; +/// Prefix byte for messages intended for the Secretkeeper TA. +const SK_MESSAGE_PREFIX: u8 = 0x01; + +impl LocalTa { + /// Create a new instance. + pub fn new() -> Self { + // Create a pair of channels to communicate with the TA thread. + let (in_tx, in_rx) = mpsc::channel(); + let (out_tx, out_rx) = mpsc::channel(); + + // The TA code expects to run single threaded, so spawn a thread to run it in. + std::thread::spawn(move || { + let mut crypto_impls = boring::crypto_trait_impls(); + let storage_impl = Box::new(store::InMemoryStore::default()); + let sk_ta = Rc::new(RefCell::new( + SecretkeeperTa::new( + &mut crypto_impls, + storage_impl, + coset::iana::EllipticCurve::Ed25519, + ) + .expect("Failed to create local Secretkeeper TA"), + )); + let mut ag_ta = AuthGraphTa::new( + AuthGraphParticipant::new(crypto_impls, sk_ta.clone(), MAX_OPENED_SESSIONS) + .expect("Failed to create local AuthGraph TA"), + Role::Sink, + ); + + // Loop forever processing request messages. + loop { + let req_data: Vec = match in_rx.recv() { + Ok(data) => data, + Err(_) => { + error!("local TA failed to receive request!"); + break; + } + }; + let rsp_data = match req_data[0] { + AG_MESSAGE_PREFIX => ag_ta.process(&req_data[1..]), + SK_MESSAGE_PREFIX => { + // It's safe to `borrow_mut()` because this code is not a callback + // from AuthGraph (the only other holder of an `Rc`), and so there + // can be no live `borrow()`s in this (single) thread. + sk_ta.borrow_mut().process(&req_data[1..]) + } + prefix => panic!("unexpected messageprefix {prefix}!"), + }; + match out_tx.send(rsp_data) { + Ok(_) => {} + Err(_) => { + error!("local TA failed to send out response"); + break; + } + } + } + error!("local TA terminating!"); + }); + Self { in_tx, out_rx } + } + + fn execute_for(&mut self, prefix: u8, req_data: &[u8]) -> Vec { + let mut prefixed_req = Vec::with_capacity(req_data.len() + 1); + prefixed_req.push(prefix); + prefixed_req.extend_from_slice(req_data); + self.in_tx + .send(prefixed_req) + .expect("failed to send in request"); + self.out_rx.recv().expect("failed to receive response") + } +} + +pub struct AuthGraphChannel(pub Arc>); + +impl SerializedChannel for AuthGraphChannel { + const MAX_SIZE: usize = usize::MAX; + fn execute(&self, req_data: &[u8]) -> binder::Result> { + Ok(self + .0 + .lock() + .unwrap() + .execute_for(AG_MESSAGE_PREFIX, req_data)) + } +} + +pub struct SecretkeeperChannel(pub Arc>); + +impl SerializedChannel for SecretkeeperChannel { + const MAX_SIZE: usize = usize::MAX; + fn execute(&self, req_data: &[u8]) -> binder::Result> { + Ok(self + .0 + .lock() + .unwrap() + .execute_for(SK_MESSAGE_PREFIX, req_data)) + } +} diff --git a/security/secretkeeper/default/src/main.rs b/security/secretkeeper/default/src/main.rs index c8c15215c2777526e9a830e2b021beafc415b05e..081b97d953e25e9b6f47117ff41d03539a08ca5d 100644 --- a/security/secretkeeper/default/src/main.rs +++ b/security/secretkeeper/default/src/main.rs @@ -15,120 +15,22 @@ */ //! Non-secure implementation of the Secretkeeper HAL. -mod store; -use authgraph_boringssl as boring; -use authgraph_core::keyexchange::{AuthGraphParticipant, MAX_OPENED_SESSIONS}; -use authgraph_core::ta::{AuthGraphTa, Role}; -use authgraph_hal::channel::SerializedChannel; -use log::{error, info, Level}; -use secretkeeper_core::ta::SecretkeeperTa; +use log::{error, info, LevelFilter}; use secretkeeper_hal::SecretkeeperService; -use std::sync::Arc; -use std::sync::Mutex; -use store::InMemoryStore; - +use secretkeeper_nonsecure::{AuthGraphChannel, SecretkeeperChannel, LocalTa}; +use std::sync::{Arc, Mutex}; use android_hardware_security_secretkeeper::aidl::android::hardware::security::secretkeeper::ISecretkeeper::{ BpSecretkeeper, ISecretkeeper, }; -use std::cell::RefCell; -use std::rc::Rc; -use std::sync::mpsc; - -/// Implementation of the Secrekeeper TA that runs locally in-process (and which is therefore -/// insecure). -pub struct LocalTa { - in_tx: mpsc::Sender>, - out_rx: mpsc::Receiver>, -} - -/// Prefix byte for messages intended for the AuthGraph TA. -const AG_MESSAGE_PREFIX: u8 = 0x00; -/// Prefix byte for messages intended for the Secretkeeper TA. -const SK_MESSAGE_PREFIX: u8 = 0x01; - -impl LocalTa { - /// Create a new instance. - pub fn new() -> Self { - // Create a pair of channels to communicate with the TA thread. - let (in_tx, in_rx) = mpsc::channel(); - let (out_tx, out_rx) = mpsc::channel(); - - // The TA code expects to run single threaded, so spawn a thread to run it in. - std::thread::spawn(move || { - let mut crypto_impls = boring::crypto_trait_impls(); - let storage_impl = Box::new(InMemoryStore::default()); - let sk_ta = Rc::new(RefCell::new( - SecretkeeperTa::new(&mut crypto_impls, storage_impl) - .expect("Failed to create local Secretkeeper TA"), - )); - let mut ag_ta = AuthGraphTa::new( - AuthGraphParticipant::new(crypto_impls, sk_ta.clone(), MAX_OPENED_SESSIONS) - .expect("Failed to create local AuthGraph TA"), - Role::Sink, - ); - - // Loop forever processing request messages. - loop { - let req_data: Vec = in_rx.recv().expect("failed to receive next req"); - let rsp_data = match req_data[0] { - AG_MESSAGE_PREFIX => ag_ta.process(&req_data[1..]), - SK_MESSAGE_PREFIX => { - // It's safe to `borrow_mut()` because this code is not a callback - // from AuthGraph (the only other holder of an `Rc`), and so there - // can be no live `borrow()`s in this (single) thread. - sk_ta.borrow_mut().process(&req_data[1..]) - } - prefix => panic!("unexpected messageprefix {prefix}!"), - }; - out_tx.send(rsp_data).expect("failed to send out rsp"); - } - }); - Self { in_tx, out_rx } - } - - fn execute_for(&mut self, prefix: u8, req_data: &[u8]) -> Vec { - let mut prefixed_req = Vec::with_capacity(req_data.len() + 1); - prefixed_req.push(prefix); - prefixed_req.extend_from_slice(req_data); - self.in_tx - .send(prefixed_req) - .expect("failed to send in request"); - self.out_rx.recv().expect("failed to receive response") - } -} - -pub struct AuthGraphChannel(Arc>); -impl SerializedChannel for AuthGraphChannel { - const MAX_SIZE: usize = usize::MAX; - fn execute(&self, req_data: &[u8]) -> binder::Result> { - Ok(self - .0 - .lock() - .unwrap() - .execute_for(AG_MESSAGE_PREFIX, req_data)) - } -} - -pub struct SecretkeeperChannel(Arc>); -impl SerializedChannel for SecretkeeperChannel { - const MAX_SIZE: usize = usize::MAX; - fn execute(&self, req_data: &[u8]) -> binder::Result> { - Ok(self - .0 - .lock() - .unwrap() - .execute_for(SK_MESSAGE_PREFIX, req_data)) - } -} fn main() { // Initialize Android logging. android_logger::init_once( android_logger::Config::default() .with_tag("NonSecureSecretkeeper") - .with_min_level(Level::Info) - .with_log_id(android_logger::LogId::System), + .with_max_level(LevelFilter::Info) + .with_log_buffer(android_logger::LogId::System), ); // Redirect panic messages to logcat. std::panic::set_hook(Box::new(|panic_info| { diff --git a/security/secretkeeper/default/src/store.rs b/security/secretkeeper/default/src/store.rs index 7b2d0b94d6d2128ed2d55cc171f3c85aaf47b774..6c7dba1c7474e51f6a7294fe93b1e81ae4b88fa5 100644 --- a/security/secretkeeper/default/src/store.rs +++ b/security/secretkeeper/default/src/store.rs @@ -13,12 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +//! In-memory store for nonsecure Secretkeeper. + use secretkeeper_comm::data_types::error::Error; use secretkeeper_core::store::KeyValueStore; use std::collections::HashMap; -/// An in-memory implementation of KeyValueStore. Please note that this is entirely for -/// testing purposes. Refer to the documentation of `PolicyGatedStorage` & Secretkeeper HAL for +/// An in-memory implementation of [`KeyValueStore`]. Please note that this is entirely for testing +/// purposes. Refer to the documentation of `PolicyGatedStorage` and Secretkeeper HAL for /// persistence requirements. #[derive(Default)] pub struct InMemoryStore(HashMap, Vec>); @@ -33,4 +36,14 @@ impl KeyValueStore for InMemoryStore { let optional_val = self.0.get(key); Ok(optional_val.cloned()) } + + fn delete(&mut self, key: &[u8]) -> Result<(), Error> { + self.0.remove(key); + Ok(()) + } + + fn delete_all(&mut self) -> Result<(), Error> { + self.0.clear(); + Ok(()) + } } diff --git a/sensors/aidl/Android.bp b/sensors/aidl/Android.bp index 3914ec1f7b3d7926a81099f21775ee7c0ba96a09..8877e6eaa3f4e1bd9353dcc9d03021d5001e4436 100644 --- a/sensors/aidl/Android.bp +++ b/sensors/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/aidl/convert/Android.bp b/sensors/aidl/convert/Android.bp index 53060b958a583d278fd86d243edf824ef0e5790c..7217b2fb382028b1fd88469c4669d202138a8aa6 100644 --- a/sensors/aidl/convert/Android.bp +++ b/sensors/aidl/convert/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/aidl/default/Android.bp b/sensors/aidl/default/Android.bp index 08ee77380128946ecddb407887c5f95f1af30897..6f011eefeb360947fc499f8a9cdf51ccd714e71d 100644 --- a/sensors/aidl/default/Android.bp +++ b/sensors/aidl/default/Android.bp @@ -15,6 +15,7 @@ */ package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -97,12 +98,5 @@ apex { prebuilts: [ "sensors-default.rc", // init rc "sensors-default.xml", // vintf fragment - "android.hardware.sensor.ambient_temperature.prebuilt.xml", - "android.hardware.sensor.barometer.prebuilt.xml", - "android.hardware.sensor.gyroscope.prebuilt.xml", - "android.hardware.sensor.hinge_angle.prebuilt.xml", - "android.hardware.sensor.light.prebuilt.xml", - "android.hardware.sensor.proximity.prebuilt.xml", - "android.hardware.sensor.relative_humidity.prebuilt.xml", ], } diff --git a/sensors/aidl/default/multihal/Android.bp b/sensors/aidl/default/multihal/Android.bp index a20d6d74340fe06a0cd7d0b8aebaa86ee67682a6..7482ffe7b52888c57142a7bf382b684cb0e2aecc 100644 --- a/sensors/aidl/default/multihal/Android.bp +++ b/sensors/aidl/default/multihal/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -45,11 +46,6 @@ cc_library_static { "HalProxyAidl.cpp", "ConvertUtils.cpp", ], - visibility: [ - ":__subpackages__", - "//hardware/interfaces/sensors/aidl/multihal:__subpackages__", - "//hardware/interfaces/tests/extension/sensors:__subpackages__", - ], static_libs: [ "android.hardware.sensors@1.0-convert", "android.hardware.sensors@2.X-multihal", diff --git a/sensors/aidl/multihal/Android.bp b/sensors/aidl/multihal/Android.bp index 522d305d86c3f0fba8e94f882321fdecbc24121e..cac5fc27c83f284670516dee85292879fecf9ea9 100644 --- a/sensors/aidl/multihal/Android.bp +++ b/sensors/aidl/multihal/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/aidl/vts/Android.bp b/sensors/aidl/vts/Android.bp index c17a5585fdca017dd855e6c969a5f90e325260c6..1f96bb438e9e9aadd92d42727a7346a1ecb9a704 100644 --- a/sensors/aidl/vts/Android.bp +++ b/sensors/aidl/vts/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/common/convert/Android.bp b/sensors/common/convert/Android.bp index 230665e71ff074fde0539caa53e5cd042758833a..5c6aba338fd09f4623dafef49651231597c5471a 100644 --- a/sensors/common/convert/Android.bp +++ b/sensors/common/convert/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_sensors", default_applicable_licenses: ["Android-Apache-2.0"], } diff --git a/sensors/common/default/2.X/Android.bp b/sensors/common/default/2.X/Android.bp index 82c942f701269b36a406950574a7468ae653a56d..300598f8f4947ec8fb39127e8596f266e2090d83 100644 --- a/sensors/common/default/2.X/Android.bp +++ b/sensors/common/default/2.X/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/common/default/2.X/multihal/Android.bp b/sensors/common/default/2.X/multihal/Android.bp index b0ad9348267113752893b510ac7fa9678c9b6f8b..c25b17afb01d324cd926272430d9ae9adfce29e8 100644 --- a/sensors/common/default/2.X/multihal/Android.bp +++ b/sensors/common/default/2.X/multihal/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/common/default/2.X/multihal/tests/Android.bp b/sensors/common/default/2.X/multihal/tests/Android.bp index 21d1d77abfdcb71773cee916d559e3abd6de157b..d743d1e35f3c12503c6c706c0c2ac5d9e7304def 100644 --- a/sensors/common/default/2.X/multihal/tests/Android.bp +++ b/sensors/common/default/2.X/multihal/tests/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/common/utils/Android.bp b/sensors/common/utils/Android.bp index 97e857c680d9efbade88be19a7fc9ecbe0928a2d..2aeeb14c6e0fe699498e9fe93396d629c2b0783a 100644 --- a/sensors/common/utils/Android.bp +++ b/sensors/common/utils/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/common/vts/2_X/Android.bp b/sensors/common/vts/2_X/Android.bp index 4cf6a08382635b393578c4c3364735b7d93b770c..e7cab6de5a38da4559568b90c64b24f01a514661 100644 --- a/sensors/common/vts/2_X/Android.bp +++ b/sensors/common/vts/2_X/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/sensors/common/vts/utils/Android.bp b/sensors/common/vts/utils/Android.bp index ab3984ca74eb964056c59584cca34560741d85fc..69b1224608cbb9748fe34f4220b89d36c4d3e1c9 100644 --- a/sensors/common/vts/utils/Android.bp +++ b/sensors/common/vts/utils/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_sensors", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/soundtrigger/aidl/Android.bp b/soundtrigger/aidl/Android.bp index aa400c1ac86e19b2061e1796d6407e32319c93f3..af9a5fc41dc53cb5dffc247405c6a9277daa6f8b 100644 --- a/soundtrigger/aidl/Android.bp +++ b/soundtrigger/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -34,12 +35,17 @@ aidl_interface { sdk_version: "module_current", }, }, - frozen: false, + frozen: true, versions_with_info: [ { version: "1", imports: ["android.media.soundtrigger.types-V1"], }, + { + version: "2", + imports: ["android.media.soundtrigger.types-V2"], + }, + // IMPORTANT: Update latest_android_hardware_soundtrigger3 every time // you add the latest frozen version to versions_with_info ], diff --git a/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/.hash b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/.hash new file mode 100644 index 0000000000000000000000000000000000000000..9b334006ab45c101b41f21085dc7c944ee3edd39 --- /dev/null +++ b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/.hash @@ -0,0 +1 @@ +6b24e60ad261e3ff56106efd86ce6aa7ef5621b0 diff --git a/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHw.aidl b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHw.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bbfe7d91610b11b623ef2a3414cc1a97b24ab9b6 --- /dev/null +++ b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHw.aidl @@ -0,0 +1,48 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.soundtrigger3; +@VintfStability +interface ISoundTriggerHw { + android.media.soundtrigger.Properties getProperties(); + void registerGlobalCallback(in android.hardware.soundtrigger3.ISoundTriggerHwGlobalCallback callback); + int loadSoundModel(in android.media.soundtrigger.SoundModel soundModel, in android.hardware.soundtrigger3.ISoundTriggerHwCallback callback); + int loadPhraseSoundModel(in android.media.soundtrigger.PhraseSoundModel soundModel, in android.hardware.soundtrigger3.ISoundTriggerHwCallback callback); + void unloadSoundModel(in int modelHandle); + void startRecognition(in int modelHandle, in int deviceHandle, in int ioHandle, in android.media.soundtrigger.RecognitionConfig config); + void stopRecognition(in int modelHandle); + void forceRecognitionEvent(in int modelHandle); + @nullable android.media.soundtrigger.ModelParameterRange queryParameter(in int modelHandle, in android.media.soundtrigger.ModelParameter modelParam); + int getParameter(in int modelHandle, in android.media.soundtrigger.ModelParameter modelParam); + void setParameter(in int modelHandle, in android.media.soundtrigger.ModelParameter modelParam, in int value); +} diff --git a/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwCallback.aidl b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..152dfed637127403b47ef1122497d07d3b104e54 --- /dev/null +++ b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwCallback.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.soundtrigger3; +@VintfStability +interface ISoundTriggerHwCallback { + void modelUnloaded(in int model); + void phraseRecognitionCallback(in int model, in android.media.soundtrigger.PhraseRecognitionEvent event); + void recognitionCallback(in int model, in android.media.soundtrigger.RecognitionEvent event); +} diff --git a/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwGlobalCallback.aidl b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwGlobalCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6dfee9fa2fd903b81da53781ee98c5732b0e82a9 --- /dev/null +++ b/soundtrigger/aidl/aidl_api/android.hardware.soundtrigger3/2/android/hardware/soundtrigger3/ISoundTriggerHwGlobalCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.soundtrigger3; +@VintfStability +interface ISoundTriggerHwGlobalCallback { + void onResourcesAvailable(); +} diff --git a/soundtrigger/aidl/cli/Android.bp b/soundtrigger/aidl/cli/Android.bp index 935e438c3d51b24e378ce9a7ca52085ee4545c0a..2d01b0b30a237758f0e3d3153b7bf82395a724df 100644 --- a/soundtrigger/aidl/cli/Android.bp +++ b/soundtrigger/aidl/cli/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_media_audio_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/staging/security/see/storage/aidl/Android.bp b/staging/security/see/storage/aidl/Android.bp new file mode 100644 index 0000000000000000000000000000000000000000..f669be820ad9c7d9036a42c5032413070e189023 --- /dev/null +++ b/staging/security/see/storage/aidl/Android.bp @@ -0,0 +1,26 @@ +package { + default_applicable_licenses: ["hardware_interfaces_license"], +} + +aidl_interface { + name: "android.hardware.security.see.storage", + unstable: true, + host_supported: true, + srcs: [ + "android/hardware/security/see/storage/*.aidl", + ], + backend: { + java: { + enabled: false, + }, + cpp: { + enabled: true, + }, + ndk: { + enabled: true, + }, + rust: { + enabled: true, + }, + }, +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/CreationMode.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/CreationMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1c65038745da64d167a5d4af8edfee9959c60059 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/CreationMode.aidl @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +enum CreationMode { + /** Returns an error if the file does not already exist. */ + NO_CREATE, + + /** Creates the file or returns an error if it already exists. */ + CREATE_EXCLUSIVE, + + /** Creates the file if it does not already exist. */ + CREATE, +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/DeleteOptions.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/DeleteOptions.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1a94eb293e3a74f6ae76a82b2c103053427e27c0 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/DeleteOptions.aidl @@ -0,0 +1,37 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.ReadIntegrity; + +parcelable DeleteOptions { + /** + * Set to acknowledge possible files tampering. + * + * If unacknowledged tampering is detected, the operation will fail with an ERR_FS_* + * service-specific code. + */ + ReadIntegrity readIntegrity = ReadIntegrity.NO_TAMPER; + + /** + * Allow writes to succeed while the filesystem is in the middle of an A/B update. + * + * If the A/B update fails, the operation will be rolled back. This rollback will not + * cause subsequent operations fail with any ERR_FS_* code nor will need to be + * acknowledged by setting the `readIntegrity`. + */ + boolean allowWritesDuringAbUpdate = false; +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileAvailability.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileAvailability.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d33917090fd9e48d1fce9fa7c6034bd3ea29e172 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileAvailability.aidl @@ -0,0 +1,25 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +/** Determines how early during the boot process file is able to be accessed. */ +enum FileAvailability { + /** Available before userdata is mounted, but after android has booted. */ + BEFORE_USERDATA, + + /** Available after userdata is mounted. */ + AFTER_USERDATA, +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileIntegrity.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileIntegrity.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1879b1680dfaf867d8b0499a8df1516bbde265c0 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileIntegrity.aidl @@ -0,0 +1,33 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +enum FileIntegrity { + /** REE may prevent operations, but cannot alter data once written. */ + TAMPER_PROOF_AT_REST, + + /** + * REE may alter written data, but changes will be detected and reported as + * an error on read. + */ + TAMPER_DETECT, + + /** + * REE may alter written data. Changes other than full filesystem resets will be detected and + * reported. + */ + TAMPER_DETECT_IGNORE_RESET, +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileMode.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..18a2eae3c8eb4b8835b0edead9f61bc40bab5502 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileMode.aidl @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +enum FileMode { + /** The file may only be read from. */ + READ_ONLY, + + /** The file may only be written to. */ + WRITE_ONLY, + + /** The file may be both read from and written to. */ + READ_WRITE, +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileProperties.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileProperties.aidl new file mode 100644 index 0000000000000000000000000000000000000000..733b5b06fa8d454f8dc075c188a57f7c6e272cca --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/FileProperties.aidl @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.FileAvailability; +import android.hardware.security.see.storage.FileIntegrity; + +parcelable FileProperties { + FileIntegrity integrity = FileIntegrity.TAMPER_PROOF_AT_REST; + FileAvailability availability = FileAvailability.BEFORE_USERDATA; + + /** Whether the file is reset when user data is wiped. */ + boolean persistent; +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/IDir.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/IDir.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a0a9f3d25b2c22fd5820cd16549f2b27b254d0a0 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/IDir.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +/** The interface for an open directory */ +interface IDir { + /** + * Gets the next batch of filenames in this directory. + * + * Calling multiple times will return different results as the IDir iterates through all the + * files it contains. When all filenames have been returned, all successive calls will return an + * empty list. + * + * @maxCount: + * the maximum number of filenames to return. A @maxCount of 0 signifies no limit on the + * number of filenames returned. + * + * Returns: + * An ordered list of filenames. If @maxCount > 0, the length of the returned list will be + * less than or equal to @maxCount. + * + * May return service-specific errors: + * - ERR_FS_* if the filesystem has been tampered with in a way that the `readIntegrity` the + * dir was opened with does not acknowledge + */ + @utf8InCpp String[] readNextFilenames(int maxCount); +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/IFile.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/IFile.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ff26aa4d01f3276e04a7f1422a748b36abeae1a2 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/IFile.aidl @@ -0,0 +1,95 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.CreationMode; + +/** The interface for an open file */ +interface IFile { + /** + * Read bytes from this file. + * + * @size: + * the size (in bytes) of the segment to read. If @size is larger than the service's maximum + * read size, the call will return an error (EX_ILLEGAL_ARGUMENT). + * @offset: + * the offset (in bytes) at which to start reading + * + * Return: + * the sequence of bytes at [offset, offset + size) in the file + * + * May return service-specific errors: + * - ERR_FS_* if the filesystem has been tampered with in a way that the `readIntegrity` the + * file was opened with does not acknowledge + */ + byte[] read(long size, long offset); + + /** + * Write the bytes in `buffer` to this file. + * + * @offset: + * the offset (in bytes) at which to start writing + * + * Return: + * the number of bytes written successfully + * + * May return service-specific errors: + * - ERR_FS_* if the filesystem has been tampered with in a way that the `readIntegrity` the + * file was opened with does not acknowledge + */ + long write(long offset, in byte[] buffer); + + /** + * Reads this file's size. + * + * May return service-specific errors: + * - ERR_FS_* if the filesystem has been tampered with in a way that the `readIntegrity` the + * file was opened with does not acknowledge + */ + long getSize(); + + /** + * Sets this file's size. + * + * Truncates the file if `new_size` is less than the current size. If `new_size` is greater than + * the current size, the file will be extended with zeroed data. + * + * @newSize: + * the file's new size + * + * May return service-specific errors: + * - ERR_FS_* if the filesystem has been tampered with in a way that the `readIntegrity` the + * file was opened with does not acknowledge + */ + void setSize(long newSize); + + /** + * Renames this file. + * + * @destPath: + * the file's new path, relative to filesystem root + * @destCreateMode: + * controls creation behavior of the dest file + * + * May return service-specific errors: + * - ERR_NOT_FOUND if no file exists at @destPath and @destCreateMode is `NO_CREATE` + * - ERR_ALREADY_EXISTS if a file already exists at @destPath and @destCreateMode is + * `CREATE_EXCLUSIVE` + * - ERR_FS_* if the filesystem has been tampered with in a way that the `readIntegrity` the + * file was opened with does not acknowledge + */ + void rename(in @utf8InCpp String destPath, in CreationMode destCreateMode); +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/ISecureStorage.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/ISecureStorage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..be3c04552290804174816847bb909a0bc79f1f75 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/ISecureStorage.aidl @@ -0,0 +1,47 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.FileProperties; +import android.hardware.security.see.storage.IStorageSession; + +/** + * Interface for the Secure Storage HAL + * + * Creates sessions which can be used to access storage. + */ +interface ISecureStorage { + const int ERR_UNSUPPORTED_PROPERTIES = 1; + const int ERR_NOT_FOUND = 2; + const int ERR_ALREADY_EXISTS = 3; + const int ERR_BAD_TRANSACTION = 4; + + const int ERR_FS_RESET = 5; + const int ERR_FS_ROLLED_BACK = 6; + const int ERR_FS_TAMPERED = 7; + + /** + * Starts a storage session for a filesystem. + * + * @properties: + * the minimum filesystem properties requested for the session. + * + * May return service-specific errors: + * - ERR_UNSUPPORTED_PROPERTIES if no filesystems exist which meet the minimum requested + * requirements + */ + IStorageSession startSession(in FileProperties properties); +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/IStorageSession.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/IStorageSession.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cd126b8a0268c7187ef73a9d4c0bbc783f3a6b6e --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/IStorageSession.aidl @@ -0,0 +1,129 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.DeleteOptions; +import android.hardware.security.see.storage.IDir; +import android.hardware.security.see.storage.IFile; +import android.hardware.security.see.storage.OpenOptions; +import android.hardware.security.see.storage.ReadIntegrity; +import android.hardware.security.see.storage.RenameOptions; + +/** + * Interface for a Secure Storage session + * + * When the connection is opened, it will start a transaction and any changes made through this + * session or the interfaces this session returns will be added to this transaction's pending + * changes. Calling `CommitChanges`/`AbandonChanges` will commit/abandon these pending changes, and + * start a new, empty transaction. The interfaces this session returns _remain_ valid across + * transactions; it is not necessary, for example, to reopen a file after a commit. + * + * Any changes still pending when the session is dropped will be abandoned. + */ +interface IStorageSession { + /** + * Commits any pending changes made through this session to storage. + * + * The session will no longer have pending changes after this call returns. Files may then still + * be modified through this session to create another commit. + * + * May return service-specific errors: + * - ERR_BAD_TRANSACTION + */ + void commitChanges(); + + /** + * Abandons any pending changes made through this session. + * + * The session can then be reused to make new changes. + */ + void abandonChanges(); + + /** + * Opens a secure file for writing and/or reading. + * + * Changes made to the file are part of the current transaction. Dropping this session + * invalidates the returned `IFile` interface + * + * @filePath: + * path to the file, relative to filesystem root + * @options: + * options controlling opening behavior + * + * May return service-specific errors: + * - ERR_NOT_FOUND + * - ERR_ALREADY_EXISTS + * - ERR_FS_* if the filesystem has been tampered with in a way that @options.readIntegrity + * does not acknowledge + */ + IFile openFile(in @utf8InCpp String filePath, in OpenOptions options); + + /** + * Delete a file. + * + * @filePath: + * path to the file, relative to filesystem root + * @options: + * options controlling deletion behavior + * + * May return service-specific errors: + * - ERR_NOT_FOUND + * - ERR_FS_* if the filesystem has been tampered with in a way that @options.readIntegrity + * does not acknowledge + */ + void deleteFile(in @utf8InCpp String filePath, in DeleteOptions options); + + /** + * Renames an existing file. + * + * The file must not already be opened. (If it is, use `IFile::rename`.) + * + * @currentPath: + * path to the file, relative to filesystem root + * @destPath: + * the file's new path, relative to filesystem root + * @options: + * options controlling rename behavior + * + * May return service-specific errors: + * - ERR_NOT_FOUND if no file exists at @currentPath, or if @options.destCreateMode is + * `NO_CREATE` and no file exists at @destPath + * - ERR_ALREADY_EXISTS if @options.destCreateMode is `CREATE_EXCLUSIVE` and a file exists at + * @destPath + * - ERR_FS_* if the filesystem has been tampered with in a way that @options.readIntegrity + * does not acknowledge + */ + void renameFile(in @utf8InCpp String currentPath, in @utf8InCpp String destPath, + in RenameOptions options); + + /** + * Opens a directory from a filesystem with the given properties. + * + * Dropping this session invalidates the returned `IDir` interface. + * + * @path: + * path to the directory, relative to filesystem root + * @readIntegrity: + * allow opening (and subsequent read/write operations) despite possible tampering for the + * directory + * + * May return service-specific errors: + * - ERR_NOT_FOUND + * - ERR_FS_* if the filesystem has been tampered with in a way that @readIntegrity does not + * acknowledge + */ + IDir openDir(in @utf8InCpp String path, in ReadIntegrity readIntegrity); +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/OpenOptions.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/OpenOptions.aidl new file mode 100644 index 0000000000000000000000000000000000000000..997ca62e608a0479878174caf5f00757a7535b02 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/OpenOptions.aidl @@ -0,0 +1,51 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.CreationMode; +import android.hardware.security.see.storage.FileMode; +import android.hardware.security.see.storage.ReadIntegrity; + +parcelable OpenOptions { + /** Controls creation behavior of the to-be-opened file. See `CreationMode` docs for details. */ + CreationMode createMode = CreationMode.NO_CREATE; + + /** Controls access behavior of the to-be-opened file. See `FileMode` docs for details. */ + FileMode accessMode = FileMode.READ_WRITE; + + /** + * Set to acknowledge possible files tampering. + * + * If unacknowledged tampering is detected, the operation will fail with an ERR_FS_* + * service-specific code. + */ + ReadIntegrity readIntegrity = ReadIntegrity.NO_TAMPER; + + /** + * If this file already exists, discard existing content and open + * it as a new file. No semantic change if the file does not exist. + */ + boolean truncateOnOpen; + + /** + * Allow writes to succeed while the filesystem is in the middle of an A/B update. + * + * If the A/B update fails, the operation will be rolled back. This rollback will not + * cause subsequent operations fail with any ERR_FS_* code nor will need to be + * acknowledged by setting the `readIntegrity`. + */ + boolean allowWritesDuringAbUpdate = false; +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/ReadIntegrity.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/ReadIntegrity.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cc0e4f998d616025d30374123d3811b02e62e834 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/ReadIntegrity.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +enum ReadIntegrity { + /** + * Return an error on reads if any REE alteration of the written data + * has been detected. + */ + NO_TAMPER, + + /** + * Return an error on reads if any REE alteration other than a reset + * has been detected. + */ + IGNORE_RESET, + + /** + * Return an error if any REE alteration other than a rollback to a + * valid checkpoint has been detected. (What makes a checkpoint valid is + * implementation defined; an implementation might take a checkpoint on its + * first post-factory boot. A reset is a rollback to the initial state.) + */ + IGNORE_ROLLBACK, + + // There's no `IGNORE_ALL` because if REE has done any alteration other + // than a rollback, the file contents will be known-bad data. +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/RenameOptions.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/RenameOptions.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f55ea7f60ef60640e90c65ab41a99427ccedce65 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/RenameOptions.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +import android.hardware.security.see.storage.CreationMode; +import android.hardware.security.see.storage.ReadIntegrity; + +parcelable RenameOptions { + /** Controls creation behavior of the dest file. See `CreationMode` docs for details. */ + CreationMode destCreateMode = CreationMode.CREATE_EXCLUSIVE; + + /** + * Set to acknowledge possible files tampering. + * + * If unacknowledged tampering is detected, the operation will fail with an ERR_FS_* + * service-specific code. + */ + ReadIntegrity readIntegrity = ReadIntegrity.NO_TAMPER; + + /** + * Allow writes to succeed while the filesystem is in the middle of an A/B update. + * + * If the A/B update fails, the operation will be rolled back. This rollback will not + * cause subsequent operations fail with any ERR_FS_* code nor will need to be + * acknowledged by setting the `readIntegrity`. + */ + boolean allowWritesDuringAbUpdate = false; +} diff --git a/staging/security/see/storage/aidl/android/hardware/security/see/storage/Tamper.aidl b/staging/security/see/storage/aidl/android/hardware/security/see/storage/Tamper.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0a39fdd3716f34ae92746e4e4b4f7bab74c58140 --- /dev/null +++ b/staging/security/see/storage/aidl/android/hardware/security/see/storage/Tamper.aidl @@ -0,0 +1,28 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.security.see.storage; + +/** Specifies types of REE tampering the filesystem may detect */ +enum Tamper { + /** REE has reset this file or the containing file system. */ + RESET, + + /** REE has rolled back this file or the containing file system to a previous state. */ + ROLLBACK, + + /** REE has made some other modification to the file. */ + OTHER, +} diff --git a/tetheroffload/aidl/Android.bp b/tetheroffload/aidl/Android.bp index 6de27c3462f28f20c10aa4b721e3871d10a039f8..e091c5bab84e353c4b3a7bb6136435fb4431a63b 100644 --- a/tetheroffload/aidl/Android.bp +++ b/tetheroffload/aidl/Android.bp @@ -18,6 +18,9 @@ aidl_interface { ], min_sdk_version: "30", enabled: true, + lint: { + baseline_filename: "lint-baseline.xml", + }, }, ndk: { apps_enabled: false, diff --git a/tetheroffload/aidl/lint-baseline.xml b/tetheroffload/aidl/lint-baseline.xml new file mode 100644 index 0000000000000000000000000000000000000000..62924b1471bf8bd3beb5d2bc1b3f9205e601115f --- /dev/null +++ b/tetheroffload/aidl/lint-baseline.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/tetheroffload/config/1.0/Android.bp b/tetheroffload/config/1.0/Android.bp index 116c9b62647933735b01b55fb555e269cd7f5d30..b5c41856a10934c61fa6a7c7bd201d87e1c721f6 100644 --- a/tetheroffload/config/1.0/Android.bp +++ b/tetheroffload/config/1.0/Android.bp @@ -19,4 +19,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.tethering", + ], } diff --git a/tetheroffload/control/1.0/Android.bp b/tetheroffload/control/1.0/Android.bp index acb5ee8a1b8e6632fe4944f429906fdd43f0252e..6589ee29dda63ea5ce6b2d4489f2b2cba4828ee5 100644 --- a/tetheroffload/control/1.0/Android.bp +++ b/tetheroffload/control/1.0/Android.bp @@ -21,4 +21,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.tethering", + ], } diff --git a/thermal/aidl/Android.bp b/thermal/aidl/Android.bp index 734aab7d0e5c54552d9a130f48cddefaa6067c26..597a166beb6f95305479057e977c7591d4c7106a 100644 --- a/thermal/aidl/Android.bp +++ b/thermal/aidl/Android.bp @@ -44,7 +44,12 @@ aidl_interface { version: "1", imports: [], }, + { + version: "2", + imports: [], + }, + ], - frozen: false, + frozen: true, } diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/.hash b/thermal/aidl/aidl_api/android.hardware.thermal/2/.hash new file mode 100644 index 0000000000000000000000000000000000000000..23d3c07621e5a5cdebd1d913fb6efd6080bf1562 --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/.hash @@ -0,0 +1 @@ +2f49c78011338b42b43d5d0e250d9b520850cc1f diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingDevice.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingDevice.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7e1aed7e3c81813b28add544af473374d3fa477a --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingDevice.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * +1 * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable CoolingDevice { + android.hardware.thermal.CoolingType type; + String name; + long value; + long powerLimitMw; + long powerMw; + long timeWindowMs; +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingType.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5e88aa056cdeb84cbc9459e3d51ee8d6810c7369 --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/CoolingType.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@Backing(type="int") @VintfStability +enum CoolingType { + FAN, + BATTERY, + CPU, + GPU, + MODEM, + NPU, + COMPONENT, + TPU, + POWER_AMPLIFIER, + DISPLAY, + SPEAKER, + WIFI, + CAMERA, + FLASHLIGHT, + USB_PORT, +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ICoolingDeviceChangedCallback.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ICoolingDeviceChangedCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ea75b1c8a90fd679bfc5cdcb6e67561da1375dbd --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ICoolingDeviceChangedCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@VintfStability +interface ICoolingDeviceChangedCallback { + oneway void notifyCoolingDeviceChanged(in android.hardware.thermal.CoolingDevice coolingDevice); +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermal.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermal.aidl new file mode 100644 index 0000000000000000000000000000000000000000..904496cdf1e7c1ed1577460431b6f03d165f3588 --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermal.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@VintfStability +interface IThermal { + android.hardware.thermal.CoolingDevice[] getCoolingDevices(); + android.hardware.thermal.CoolingDevice[] getCoolingDevicesWithType(in android.hardware.thermal.CoolingType type); + android.hardware.thermal.Temperature[] getTemperatures(); + android.hardware.thermal.Temperature[] getTemperaturesWithType(in android.hardware.thermal.TemperatureType type); + android.hardware.thermal.TemperatureThreshold[] getTemperatureThresholds(); + android.hardware.thermal.TemperatureThreshold[] getTemperatureThresholdsWithType(in android.hardware.thermal.TemperatureType type); + void registerThermalChangedCallback(in android.hardware.thermal.IThermalChangedCallback callback); + void registerThermalChangedCallbackWithType(in android.hardware.thermal.IThermalChangedCallback callback, in android.hardware.thermal.TemperatureType type); + void unregisterThermalChangedCallback(in android.hardware.thermal.IThermalChangedCallback callback); + void registerCoolingDeviceChangedCallbackWithType(in android.hardware.thermal.ICoolingDeviceChangedCallback callback, in android.hardware.thermal.CoolingType type); + void unregisterCoolingDeviceChangedCallback(in android.hardware.thermal.ICoolingDeviceChangedCallback callback); +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermalChangedCallback.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermalChangedCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5e1d753d181c7d897aeda66a88af60d235559805 --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/IThermalChangedCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@VintfStability +interface IThermalChangedCallback { + oneway void notifyThrottling(in android.hardware.thermal.Temperature temperature); +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/Temperature.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/Temperature.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ce70ab844f26f18ae89ce4b4ba6d8a6f3f37c738 --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/Temperature.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable Temperature { + android.hardware.thermal.TemperatureType type; + String name; + float value; + android.hardware.thermal.ThrottlingSeverity throttlingStatus; +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureThreshold.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureThreshold.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a384d19600776a79c7cd8eb6163c7e71cede5254 --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureThreshold.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@JavaDerive(toString=true) @VintfStability +parcelable TemperatureThreshold { + android.hardware.thermal.TemperatureType type; + String name; + float[] hotThrottlingThresholds; + float[] coldThrottlingThresholds; +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureType.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..665a36e8b184008d6994a8bfe3af572099050c35 --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/TemperatureType.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@Backing(type="int") @VintfStability +enum TemperatureType { + UNKNOWN = (-1) /* -1 */, + CPU = 0, + GPU = 1, + BATTERY = 2, + SKIN = 3, + USB_PORT = 4, + POWER_AMPLIFIER = 5, + BCL_VOLTAGE = 6, + BCL_CURRENT = 7, + BCL_PERCENTAGE = 8, + NPU = 9, + TPU = 10, + DISPLAY = 11, + MODEM = 12, + SOC = 13, + WIFI = 14, + CAMERA = 15, + FLASHLIGHT = 16, + SPEAKER = 17, + AMBIENT = 18, + POGO = 19, +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ThrottlingSeverity.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ThrottlingSeverity.aidl new file mode 100644 index 0000000000000000000000000000000000000000..183344d45bc770b6852604930c8cdb695f87383d --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/2/android/hardware/thermal/ThrottlingSeverity.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@Backing(type="int") @VintfStability +enum ThrottlingSeverity { + NONE = 0, + LIGHT, + MODERATE, + SEVERE, + CRITICAL, + EMERGENCY, + SHUTDOWN, +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/current/android/hardware/thermal/CoolingDevice.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/current/android/hardware/thermal/CoolingDevice.aidl index dff3c4cc49fe6e3e372b92dd84071e4ac6283495..7e1aed7e3c81813b28add544af473374d3fa477a 100644 --- a/thermal/aidl/aidl_api/android.hardware.thermal/current/android/hardware/thermal/CoolingDevice.aidl +++ b/thermal/aidl/aidl_api/android.hardware.thermal/current/android/hardware/thermal/CoolingDevice.aidl @@ -38,4 +38,7 @@ parcelable CoolingDevice { android.hardware.thermal.CoolingType type; String name; long value; + long powerLimitMw; + long powerMw; + long timeWindowMs; } diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/current/android/hardware/thermal/ICoolingDeviceChangedCallback.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/current/android/hardware/thermal/ICoolingDeviceChangedCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ea75b1c8a90fd679bfc5cdcb6e67561da1375dbd --- /dev/null +++ b/thermal/aidl/aidl_api/android.hardware.thermal/current/android/hardware/thermal/ICoolingDeviceChangedCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.thermal; +/* @hide */ +@VintfStability +interface ICoolingDeviceChangedCallback { + oneway void notifyCoolingDeviceChanged(in android.hardware.thermal.CoolingDevice coolingDevice); +} diff --git a/thermal/aidl/aidl_api/android.hardware.thermal/current/android/hardware/thermal/IThermal.aidl b/thermal/aidl/aidl_api/android.hardware.thermal/current/android/hardware/thermal/IThermal.aidl index c9b6cab364f648e2fa59d797772d470915a36508..904496cdf1e7c1ed1577460431b6f03d165f3588 100644 --- a/thermal/aidl/aidl_api/android.hardware.thermal/current/android/hardware/thermal/IThermal.aidl +++ b/thermal/aidl/aidl_api/android.hardware.thermal/current/android/hardware/thermal/IThermal.aidl @@ -44,4 +44,6 @@ interface IThermal { void registerThermalChangedCallback(in android.hardware.thermal.IThermalChangedCallback callback); void registerThermalChangedCallbackWithType(in android.hardware.thermal.IThermalChangedCallback callback, in android.hardware.thermal.TemperatureType type); void unregisterThermalChangedCallback(in android.hardware.thermal.IThermalChangedCallback callback); + void registerCoolingDeviceChangedCallbackWithType(in android.hardware.thermal.ICoolingDeviceChangedCallback callback, in android.hardware.thermal.CoolingType type); + void unregisterCoolingDeviceChangedCallback(in android.hardware.thermal.ICoolingDeviceChangedCallback callback); } diff --git a/thermal/aidl/android/hardware/thermal/CoolingDevice.aidl b/thermal/aidl/android/hardware/thermal/CoolingDevice.aidl index 0c5c17d3a96705eb5f972720c94a1b63a1f7ecc1..406733bc5ca5419adf4914a31cf8486977e9353a 100644 --- a/thermal/aidl/android/hardware/thermal/CoolingDevice.aidl +++ b/thermal/aidl/android/hardware/thermal/CoolingDevice.aidl @@ -40,4 +40,16 @@ parcelable CoolingDevice { * means deeper throttling. */ long value; + /** + * Power budget (mW) of the cooling device. + */ + long powerLimitMw; + /** + * Target cooling device's AVG power for the last time_window_ms. + */ + long powerMw; + /** + * The time window (millisecond) to calculate the power consumption + */ + long timeWindowMs; } diff --git a/thermal/aidl/android/hardware/thermal/ICoolingDeviceChangedCallback.aidl b/thermal/aidl/android/hardware/thermal/ICoolingDeviceChangedCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e6bb9fe2f90e52229236eeaa8acd59b524541f2d --- /dev/null +++ b/thermal/aidl/android/hardware/thermal/ICoolingDeviceChangedCallback.aidl @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.thermal; + +import android.hardware.thermal.CoolingDevice; +import android.hardware.thermal.Temperature; + +/** + * ICoolingDeviceChangedCallback send cooling device change notification to clients. + * @hide + */ +@VintfStability +interface ICoolingDeviceChangedCallback { + /** + * Send a cooling device change event to all ThermalHAL + * cooling device event listeners. + * + * @param cooling_device The cooling device information associated with the + * change event. + */ + oneway void notifyCoolingDeviceChanged(in CoolingDevice coolingDevice); +} diff --git a/thermal/aidl/android/hardware/thermal/IThermal.aidl b/thermal/aidl/android/hardware/thermal/IThermal.aidl index c94edcda726c62c22079692ec05619aedcb47db5..4aa4090752c7fd1bf7827377d2ed88a2c4e28c59 100644 --- a/thermal/aidl/android/hardware/thermal/IThermal.aidl +++ b/thermal/aidl/android/hardware/thermal/IThermal.aidl @@ -18,6 +18,7 @@ package android.hardware.thermal; import android.hardware.thermal.CoolingDevice; import android.hardware.thermal.CoolingType; +import android.hardware.thermal.ICoolingDeviceChangedCallback; import android.hardware.thermal.IThermalChangedCallback; import android.hardware.thermal.Temperature; import android.hardware.thermal.TemperatureThreshold; @@ -188,4 +189,40 @@ interface IThermal { * getMessage() must be populated with human-readable error message. */ void unregisterThermalChangedCallback(in IThermalChangedCallback callback); + + /** + * Register an ICoolingDeviceChangedCallback for a given CoolingType, used by + * the Thermal HAL to receive CDEV events when cooling device status + * changed. + * Multiple registrations with different ICoolingDeviceChangedCallback must be allowed. + * Multiple registrations with same ICoolingDeviceChangedCallback is not allowed, client + * should unregister the given ICoolingDeviceChangedCallback first. + * + * @param callback the ICoolingChangedCallback to use for receiving + * cooling device events. If nullptr callback is given, the status code will be + * STATUS_BAD_VALUE and the operation will fail. + * @param type the type to be filtered. + * + * @throws EX_ILLEGAL_ARGUMENT If the callback is given nullptr or already registered. And the + * getMessage() must be populated with human-readable error message. + * @throws EX_ILLEGAL_STATE If the Thermal HAL is not initialized successfully. And the + * getMessage() must be populated with human-readable error message. + */ + void registerCoolingDeviceChangedCallbackWithType( + in ICoolingDeviceChangedCallback callback, in CoolingType type); + + /** + * Unregister an ICoolingDeviceChangedCallback, used by the Thermal HAL + * to receive CDEV events when cooling device status changed. + * + * @param callback the ICoolingDeviceChangedCallback to use for receiving + * cooling device events. if nullptr callback is given, the status code will be + * STATUS_BAD_VALUE and the operation will fail. + * + * @throws EX_ILLEGAL_ARGUMENT If the callback is given nullptr or not previously registered. + * And the getMessage() must be populated with human-readable error message. + * @throws EX_ILLEGAL_STATE If the Thermal HAL is not initialized successfully. And the + * getMessage() must be populated with human-readable error message. + */ + void unregisterCoolingDeviceChangedCallback(in ICoolingDeviceChangedCallback callback); } diff --git a/thermal/aidl/default/Thermal.cpp b/thermal/aidl/default/Thermal.cpp index f643d22f1f3e6f82ffbfa6c19974c14b33f874dc..41d0be8346937433aac92a98df887c8014e35a67 100644 --- a/thermal/aidl/default/Thermal.cpp +++ b/thermal/aidl/default/Thermal.cpp @@ -142,4 +142,53 @@ ScopedAStatus Thermal::unregisterThermalChangedCallback( return ScopedAStatus::ok(); } +ScopedAStatus Thermal::registerCoolingDeviceChangedCallbackWithType( + const std::shared_ptr& in_callback, CoolingType in_type) { + LOG(VERBOSE) << __func__ << " ICoolingDeviceChangedCallback: " << in_callback + << ", CoolingType: " << static_cast(in_type); + if (in_callback == nullptr) { + return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "Invalid nullptr callback"); + } + { + std::lock_guard _lock(cdev_callback_mutex_); + if (std::any_of(cdev_callbacks_.begin(), cdev_callbacks_.end(), + [&](const std::shared_ptr& c) { + return interfacesEqual(c, in_callback); + })) { + return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "Callback already registered"); + } + cdev_callbacks_.push_back(in_callback); + } + return ScopedAStatus::ok(); +} + +ScopedAStatus Thermal::unregisterCoolingDeviceChangedCallback( + const std::shared_ptr& in_callback) { + LOG(VERBOSE) << __func__ << " ICoolingDeviceChangedCallback: " << in_callback; + if (in_callback == nullptr) { + return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "Invalid nullptr callback"); + } + { + std::lock_guard _lock(cdev_callback_mutex_); + bool removed = false; + cdev_callbacks_.erase( + std::remove_if(cdev_callbacks_.begin(), cdev_callbacks_.end(), + [&](const std::shared_ptr& c) { + if (interfacesEqual(c, in_callback)) { + removed = true; + return true; + } + return false; + }), + cdev_callbacks_.end()); + if (!removed) { + return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT, + "Callback wasn't registered"); + } + } + return ScopedAStatus::ok(); +} } // namespace aidl::android::hardware::thermal::impl::example diff --git a/thermal/aidl/default/Thermal.h b/thermal/aidl/default/Thermal.h index 8885e631fe8492638a32e40b116f679ed01b37ec..d3d88748ee78e2654c7eccaf395a2e022f52d7d6 100644 --- a/thermal/aidl/default/Thermal.h +++ b/thermal/aidl/default/Thermal.h @@ -46,6 +46,7 @@ class Thermal : public BnThermal { ndk::ScopedAStatus registerThermalChangedCallback( const std::shared_ptr& in_callback) override; + ndk::ScopedAStatus registerThermalChangedCallbackWithType( const std::shared_ptr& in_callback, TemperatureType in_type) override; @@ -53,9 +54,18 @@ class Thermal : public BnThermal { ndk::ScopedAStatus unregisterThermalChangedCallback( const std::shared_ptr& in_callback) override; + ndk::ScopedAStatus registerCoolingDeviceChangedCallbackWithType( + const std::shared_ptr& in_callback, + CoolingType in_type) override; + + ndk::ScopedAStatus unregisterCoolingDeviceChangedCallback( + const std::shared_ptr& in_callback) override; + private: std::mutex thermal_callback_mutex_; std::vector> thermal_callbacks_; + std::mutex cdev_callback_mutex_; + std::vector> cdev_callbacks_; }; } // namespace example diff --git a/thermal/aidl/vts/VtsHalThermalTargetTest.cpp b/thermal/aidl/vts/VtsHalThermalTargetTest.cpp index 4b0eb655b54071898c81ee4893e81b94440ff21e..4208d093f80809818626255a2442b47b49b3b809 100644 --- a/thermal/aidl/vts/VtsHalThermalTargetTest.cpp +++ b/thermal/aidl/vts/VtsHalThermalTargetTest.cpp @@ -20,12 +20,14 @@ #include #include #include +#include #include #define LOG_TAG "thermal_aidl_hal_test" #include #include +#include #include #include #include @@ -59,6 +61,15 @@ static const Temperature kThrottleTemp = { .throttlingStatus = ThrottlingSeverity::CRITICAL, }; +static const CoolingDevice kCoolingDevice = { + .type = CoolingType::CPU, + .name = "test cooling device", + .value = 1, + .powerLimitMw = 300, + .powerMw = 500, + .timeWindowMs = 7000, +}; + // Callback class for receiving thermal event notifications from main class class ThermalCallback : public BnThermalChangedCallback { public: @@ -85,6 +96,33 @@ class ThermalCallback : public BnThermalChangedCallback { bool mInvoke = false; }; +// Callback class for receiving cooling device event notifications from main class +class CoolingDeviceCallback : public BnCoolingDeviceChangedCallback { + public: + ndk::ScopedAStatus notifyCoolingDeviceChanged(const CoolingDevice&) override { + { + std::lock_guard lock(mMutex); + mInvoke = true; + } + mNotifyCoolingDeviceChanged.notify_all(); + return ndk::ScopedAStatus::ok(); + } + + template + [[nodiscard]] bool waitForCallback(std::chrono::duration duration) { + std::unique_lock lock(mMutex); + bool r = mNotifyCoolingDeviceChanged.wait_for(lock, duration, + [this] { return this->mInvoke; }); + mInvoke = false; + return r; + } + + private: + std::mutex mMutex; + std::condition_variable mNotifyCoolingDeviceChanged; + bool mInvoke = false; +}; + // The main test class for THERMAL HIDL HAL. class ThermalAidlTest : public testing::TestWithParam { public: @@ -97,19 +135,42 @@ class ThermalAidlTest : public testing::TestWithParam { ASSERT_NE(mThermalCallback, nullptr); ::ndk::ScopedAStatus status = mThermal->registerThermalChangedCallback(mThermalCallback); ASSERT_TRUE(status.isOk()) << status.getMessage(); + + auto ret = mThermal->getInterfaceVersion(&thermal_version); + ASSERT_TRUE(ret.isOk()) << ret; + if (thermal_version > 1) { + mCoolingDeviceCallback = ndk::SharedRefBase::make(); + ASSERT_NE(mCoolingDeviceCallback, nullptr); + status = mThermal->registerCoolingDeviceChangedCallbackWithType(mCoolingDeviceCallback, + kCoolingDevice.type); + ASSERT_TRUE(status.isOk()) << status.getMessage(); + } } void TearDown() override { ::ndk::ScopedAStatus status = mThermal->unregisterThermalChangedCallback(mThermalCallback); ASSERT_TRUE(status.isOk()) << status.getMessage(); + // Expect to fail if unregister again status = mThermal->unregisterThermalChangedCallback(mThermalCallback); ASSERT_EQ(EX_ILLEGAL_ARGUMENT, status.getExceptionCode()); + + auto ret = mThermal->getInterfaceVersion(&thermal_version); + ASSERT_TRUE(ret.isOk()) << ret; + if (thermal_version > 1) { + status = mThermal->unregisterCoolingDeviceChangedCallback(mCoolingDeviceCallback); + ASSERT_TRUE(status.isOk()) << status.getMessage(); + status = mThermal->unregisterCoolingDeviceChangedCallback(mCoolingDeviceCallback); + ASSERT_EQ(EX_ILLEGAL_ARGUMENT, status.getExceptionCode()); + } } + // Stores thermal version + int32_t thermal_version; protected: std::shared_ptr mThermal; std::shared_ptr mThermalCallback; + std::shared_ptr mCoolingDeviceCallback; }; // Test ThermalChangedCallback::notifyThrottling(). @@ -121,6 +182,21 @@ TEST_P(ThermalAidlTest, NotifyThrottlingTest) { ASSERT_TRUE(thermalCallback->waitForCallback(200ms)); } +// Test CoolingDeviceChangedCallback::notifyCoolingDeviceChanged(). +// This just calls into and back from our local CoolingDeviceChangedCallback impl. +TEST_P(ThermalAidlTest, NotifyCoolingDeviceChangedTest) { + auto ret = mThermal->getInterfaceVersion(&thermal_version); + ASSERT_TRUE(ret.isOk()) << ret; + if (thermal_version < 2) { + return; + } + std::shared_ptr cdevCallback = + ndk::SharedRefBase::make(); + ::ndk::ScopedAStatus status = cdevCallback->notifyCoolingDeviceChanged(kCoolingDevice); + ASSERT_TRUE(status.isOk()) << status.getMessage(); + ASSERT_TRUE(cdevCallback->waitForCallback(200ms)); +} + // Test Thermal->registerThermalChangedCallback. TEST_P(ThermalAidlTest, RegisterThermalChangedCallbackTest) { // Expect to fail with same callback @@ -169,6 +245,37 @@ TEST_P(ThermalAidlTest, RegisterThermalChangedCallbackWithTypeTest) { || status.getExceptionCode() == EX_NULL_POINTER); } +// Test Thermal->registerCoolingDeviceChangedCallbackWithType. +TEST_P(ThermalAidlTest, RegisterCoolingDeviceChangedCallbackWithTypeTest) { + auto ret = mThermal->getInterfaceVersion(&thermal_version); + ASSERT_TRUE(ret.isOk()) << ret; + if (thermal_version < 2) { + return; + } + + // Expect to fail with same callback + ::ndk::ScopedAStatus status = mThermal->registerCoolingDeviceChangedCallbackWithType( + mCoolingDeviceCallback, CoolingType::CPU); + ASSERT_EQ(EX_ILLEGAL_ARGUMENT, status.getExceptionCode()); + // Expect to fail with null callback + status = mThermal->registerCoolingDeviceChangedCallbackWithType(nullptr, CoolingType::CPU); + ASSERT_TRUE(status.getExceptionCode() == EX_ILLEGAL_ARGUMENT || + status.getExceptionCode() == EX_NULL_POINTER); + std::shared_ptr localCoolingDeviceCallback = + ndk::SharedRefBase::make(); + // Expect to succeed with different callback + status = mThermal->registerCoolingDeviceChangedCallbackWithType(localCoolingDeviceCallback, + CoolingType::CPU); + ASSERT_TRUE(status.isOk()) << status.getMessage(); + // Remove the local callback + status = mThermal->unregisterCoolingDeviceChangedCallback(localCoolingDeviceCallback); + ASSERT_TRUE(status.isOk()) << status.getMessage(); + // Expect to fail with null callback + status = mThermal->unregisterCoolingDeviceChangedCallback(nullptr); + ASSERT_TRUE(status.getExceptionCode() == EX_ILLEGAL_ARGUMENT || + status.getExceptionCode() == EX_NULL_POINTER); +} + // Test Thermal->getCurrentTemperatures(). TEST_P(ThermalAidlTest, TemperatureTest) { std::vector ret; @@ -227,6 +334,49 @@ TEST_P(ThermalAidlTest, TemperatureThresholdTest) { } } +// Test Thermal->getTemperatureThresholdsWithType(SKIN). +// @VsrTest = GMS-VSR-3.2.5-001 +// @VsrTest = VSR-3.2.5-001 +// @VsrTest = GMS-VSR-3.2.5-002 +// @VsrTest = VSR-3.2.5-002 +TEST_P(ThermalAidlTest, SkinTemperatureThresholdsTest) { + auto apiLevel = ::android::base::GetIntProperty("ro.vendor.api_level", 0); + if (apiLevel < 35) { + GTEST_SKIP() << "Skipping test as the vendor level is below 35: " << apiLevel; + } + std::vector temperatures; + ::ndk::ScopedAStatus status = + mThermal->getTemperaturesWithType(TemperatureType::SKIN, &temperatures); + ASSERT_TRUE(status.isOk()) << "getTemperaturesWithType(SKIN) failed"; + ASSERT_FALSE(temperatures.empty()) << "getTemperaturesWithType(SKIN) returns empty"; + ASSERT_EQ(1, temperatures.size()) + << "getTemperaturesWithType(SKIN) returns multiple temperatures"; + + std::vector thresholds; + status = mThermal->getTemperatureThresholdsWithType(TemperatureType::SKIN, &thresholds); + ASSERT_TRUE(status.isOk()) << "getTemperatureThresholdsWithType(SKIN) failed"; + ASSERT_FALSE(thresholds.empty()) << "getTemperatureThresholdsWithType(SKIN) returns empty"; + ASSERT_EQ(1, thresholds.size()) + << "getTemperatureThresholdsWithType(SKIN) returns multiple thresholds"; + auto temperature = temperatures[0]; + auto threshold = thresholds[0]; + ASSERT_EQ(temperature.name, threshold.name); + auto severities = ::ndk::enum_range(); + auto cardinality = std::distance(severities.begin(), severities.end()); + ASSERT_NE(NAN, temperature.value); + ASSERT_EQ(cardinality, threshold.hotThrottlingThresholds.size()); + float lastThreshold = threshold.hotThrottlingThresholds[1]; + // skip NONE, and check that the rest should be set and non-decreasing + for (auto i = 2; i < cardinality; i++) { + float t = threshold.hotThrottlingThresholds[i]; + ASSERT_NE(NAN, t); + ASSERT_TRUE(t >= lastThreshold) << "Temperature thresholds should be non-decreasing " + << "but got " << t << " for status " << i << " and " + << lastThreshold << " for status " << i - 1; + lastThreshold = t; + } +} + // Test Thermal->getCoolingDevices(). TEST_P(ThermalAidlTest, CoolingDeviceTest) { std::vector ret; diff --git a/threadnetwork/aidl/Android.bp b/threadnetwork/aidl/Android.bp index 7e674e07297748963e7eb2c5dc3769efa26bed8c..d674ad7b64ec8845bffbc2d8fdf6a6f616ca08c0 100644 --- a/threadnetwork/aidl/Android.bp +++ b/threadnetwork/aidl/Android.bp @@ -19,4 +19,12 @@ aidl_interface { min_sdk_version: "30", }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + } diff --git a/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/.hash b/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/.hash new file mode 100644 index 0000000000000000000000000000000000000000..d60de43e67ef4c3403e8d0941e3a4cc2455822ee --- /dev/null +++ b/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/.hash @@ -0,0 +1 @@ +9e4d90844dd965def6c11732252f49d6aeaffc8e diff --git a/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChip.aidl b/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChip.aidl new file mode 100644 index 0000000000000000000000000000000000000000..607ceb398d89939f5b51f5fe4006fab749530763 --- /dev/null +++ b/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChip.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.threadnetwork; +@VintfStability +interface IThreadChip { + void open(in android.hardware.threadnetwork.IThreadChipCallback callback); + void close(); + void hardwareReset(); + void sendSpinelFrame(in byte[] frame); + const int ERROR_FAILED = 1; + const int ERROR_NO_BUFS = 2; + const int ERROR_BUSY = 3; +} diff --git a/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChipCallback.aidl b/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChipCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e86b3ec8b008278a0bdfdb197080bd43afd20de3 --- /dev/null +++ b/threadnetwork/aidl/aidl_api/android.hardware.threadnetwork/1/android/hardware/threadnetwork/IThreadChipCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.threadnetwork; +@VintfStability +interface IThreadChipCallback { + oneway void onReceiveSpinelFrame(in byte[] frame); +} diff --git a/threadnetwork/aidl/default/Android.bp b/threadnetwork/aidl/default/Android.bp index 816f89225bb39ce140dbe8cf4b50b5a1ff9129db..82a76e0669d0cbab9c80ddbd3502debc9c164303 100644 --- a/threadnetwork/aidl/default/Android.bp +++ b/threadnetwork/aidl/default/Android.bp @@ -37,6 +37,7 @@ cc_binary { srcs: [ "main.cpp", "service.cpp", + "socket_interface.cpp", "thread_chip.cpp", "utils.cpp", ], @@ -63,6 +64,7 @@ cc_fuzz { ], srcs: [ + "socket_interface.cpp", "thread_chip.cpp", "utils.cpp", "fuzzer.cpp", diff --git a/threadnetwork/aidl/default/socket_interface.cpp b/threadnetwork/aidl/default/socket_interface.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f874209aaf1707674257128da9f49548f883c7f2 --- /dev/null +++ b/threadnetwork/aidl/default/socket_interface.cpp @@ -0,0 +1,301 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * This file includes the implementation for the Socket interface to radio + * (RCP). + */ + +#include "socket_interface.hpp" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "common/code_utils.hpp" +#include "openthread/openthread-system.h" +#include "platform-posix.h" + +namespace aidl { +namespace android { +namespace hardware { +namespace threadnetwork { + +SocketInterface::SocketInterface(const ot::Url::Url& aRadioUrl) + : mReceiveFrameCallback(nullptr), + mReceiveFrameContext(nullptr), + mReceiveFrameBuffer(nullptr), + mSockFd(-1), + mRadioUrl(aRadioUrl) { + memset(&mInterfaceMetrics, 0, sizeof(mInterfaceMetrics)); + mInterfaceMetrics.mRcpInterfaceType = kSpinelInterfaceTypeVendor; +} + +otError SocketInterface::Init(ReceiveFrameCallback aCallback, void* aCallbackContext, + RxFrameBuffer& aFrameBuffer) { + otError error = OT_ERROR_NONE; + + VerifyOrExit(mSockFd == -1, error = OT_ERROR_ALREADY); + + WaitForSocketFileCreated(mRadioUrl.GetPath()); + + mSockFd = OpenFile(mRadioUrl); + VerifyOrExit(mSockFd != -1, error = OT_ERROR_FAILED); + + mReceiveFrameCallback = aCallback; + mReceiveFrameContext = aCallbackContext; + mReceiveFrameBuffer = &aFrameBuffer; + +exit: + return error; +} + +SocketInterface::~SocketInterface(void) { + Deinit(); +} + +void SocketInterface::Deinit(void) { + CloseFile(); + + mReceiveFrameCallback = nullptr; + mReceiveFrameContext = nullptr; + mReceiveFrameBuffer = nullptr; +} + +otError SocketInterface::SendFrame(const uint8_t* aFrame, uint16_t aLength) { + Write(aFrame, aLength); + + return OT_ERROR_NONE; +} + +otError SocketInterface::WaitForFrame(uint64_t aTimeoutUs) { + otError error = OT_ERROR_NONE; + struct timeval timeout; + timeout.tv_sec = static_cast(aTimeoutUs / US_PER_S); + timeout.tv_usec = static_cast(aTimeoutUs % US_PER_S); + + fd_set readFds; + fd_set errorFds; + int rval; + + FD_ZERO(&readFds); + FD_ZERO(&errorFds); + FD_SET(mSockFd, &readFds); + FD_SET(mSockFd, &errorFds); + + rval = TEMP_FAILURE_RETRY(select(mSockFd + 1, &readFds, nullptr, &errorFds, &timeout)); + + if (rval > 0) { + if (FD_ISSET(mSockFd, &readFds)) { + Read(); + } else if (FD_ISSET(mSockFd, &errorFds)) { + DieNowWithMessage("RCP error", OT_EXIT_FAILURE); + } else { + DieNow(OT_EXIT_FAILURE); + } + } else if (rval == 0) { + ExitNow(error = OT_ERROR_RESPONSE_TIMEOUT); + } else { + DieNowWithMessage("wait response", OT_EXIT_FAILURE); + } + +exit: + return error; +} + +void SocketInterface::UpdateFdSet(void* aMainloopContext) { + otSysMainloopContext* context = reinterpret_cast(aMainloopContext); + + assert(context != nullptr); + + FD_SET(mSockFd, &context->mReadFdSet); + + if (context->mMaxFd < mSockFd) { + context->mMaxFd = mSockFd; + } +} + +void SocketInterface::Process(const void* aMainloopContext) { + const otSysMainloopContext* context = + reinterpret_cast(aMainloopContext); + + assert(context != nullptr); + + if (FD_ISSET(mSockFd, &context->mReadFdSet)) { + Read(); + } +} + +void SocketInterface::Read(void) { + uint8_t buffer[kMaxFrameSize]; + + ssize_t rval = TEMP_FAILURE_RETRY(read(mSockFd, buffer, sizeof(buffer))); + + if (rval > 0) { + ProcessReceivedData(buffer, static_cast(rval)); + } else if (rval < 0) { + DieNow(OT_EXIT_ERROR_ERRNO); + } else { + otLogCritPlat("Socket connection is closed by remote."); + exit(OT_EXIT_FAILURE); + } +} + +void SocketInterface::Write(const uint8_t* aFrame, uint16_t aLength) { + ssize_t rval = TEMP_FAILURE_RETRY(write(mSockFd, aFrame, aLength)); + VerifyOrDie(rval >= 0, OT_EXIT_ERROR_ERRNO); + VerifyOrDie(rval > 0, OT_EXIT_FAILURE); +} + +void SocketInterface::ProcessReceivedData(const uint8_t* aBuffer, uint16_t aLength) { + while (aLength--) { + uint8_t byte = *aBuffer++; + if (mReceiveFrameBuffer->CanWrite(sizeof(uint8_t))) { + IgnoreError(mReceiveFrameBuffer->WriteByte(byte)); + } else { + HandleSocketFrame(this, OT_ERROR_NO_BUFS); + return; + } + } + HandleSocketFrame(this, OT_ERROR_NONE); +} + +void SocketInterface::HandleSocketFrame(void* aContext, otError aError) { + static_cast(aContext)->HandleSocketFrame(aError); +} + +void SocketInterface::HandleSocketFrame(otError aError) { + VerifyOrExit((mReceiveFrameCallback != nullptr) && (mReceiveFrameBuffer != nullptr)); + + if (aError == OT_ERROR_NONE) { + mReceiveFrameCallback(mReceiveFrameContext); + } else { + mReceiveFrameBuffer->DiscardFrame(); + otLogWarnPlat("Process socket frame failed: %s", otThreadErrorToString(aError)); + } + +exit: + return; +} + +int SocketInterface::OpenFile(const ot::Url::Url& aRadioUrl) { + int fd = -1; + sockaddr_un serverAddress; + + VerifyOrExit(sizeof(serverAddress.sun_path) > strlen(aRadioUrl.GetPath()), + otLogCritPlat("Invalid file path length")); + strncpy(serverAddress.sun_path, aRadioUrl.GetPath(), sizeof(serverAddress.sun_path)); + serverAddress.sun_family = AF_UNIX; + + fd = socket(AF_UNIX, SOCK_SEQPACKET, 0); + VerifyOrExit(fd != -1, otLogCritPlat("open(): errno=%s", strerror(errno))); + + if (connect(fd, reinterpret_cast(&serverAddress), sizeof(serverAddress)) == + -1) { + otLogCritPlat("connect(): errno=%s", strerror(errno)); + close(fd); + fd = -1; + } + +exit: + return fd; +} + +void SocketInterface::CloseFile(void) { + VerifyOrExit(mSockFd != -1); + + VerifyOrExit(0 == close(mSockFd), otLogCritPlat("close(): errno=%s", strerror(errno))); + VerifyOrExit(wait(nullptr) != -1 || errno == ECHILD, + otLogCritPlat("wait(): errno=%s", strerror(errno))); + + mSockFd = -1; + +exit: + return; +} + +void SocketInterface::WaitForSocketFileCreated(const char* aPath) { + int inotifyFd; + int wd; + int lastSlashIdx; + std::string folderPath; + std::string socketPath(aPath); + + VerifyOrExit(!IsSocketFileExisted(aPath)); + + inotifyFd = inotify_init(); + VerifyOrDie(inotifyFd != -1, OT_EXIT_ERROR_ERRNO); + + lastSlashIdx = socketPath.find_last_of('/'); + VerifyOrDie(lastSlashIdx != std::string::npos, OT_EXIT_ERROR_ERRNO); + + folderPath = socketPath.substr(0, lastSlashIdx); + wd = inotify_add_watch(inotifyFd, folderPath.c_str(), IN_CREATE); + VerifyOrDie(wd != -1, OT_EXIT_ERROR_ERRNO); + + otLogInfoPlat("Waiting for socket file %s be created...", aPath); + + while (true) { + fd_set fds; + FD_ZERO(&fds); + FD_SET(inotifyFd, &fds); + struct timeval timeout = {kMaxSelectTimeMs / MS_PER_S, + (kMaxSelectTimeMs % MS_PER_S) * MS_PER_S}; + + int rval = select(inotifyFd + 1, &fds, nullptr, nullptr, &timeout); + VerifyOrDie(rval >= 0, OT_EXIT_ERROR_ERRNO); + + if (rval == 0 && IsSocketFileExisted(aPath)) { + break; + } + + if (FD_ISSET(inotifyFd, &fds)) { + char buffer[sizeof(struct inotify_event)]; + ssize_t bytesRead = read(inotifyFd, buffer, sizeof(buffer)); + + VerifyOrDie(bytesRead >= 0, OT_EXIT_ERROR_ERRNO); + + struct inotify_event* event = reinterpret_cast(buffer); + if ((event->mask & IN_CREATE) && IsSocketFileExisted(aPath)) { + break; + } + } + } + + close(inotifyFd); + +exit: + otLogInfoPlat("Socket file: %s is created", aPath); + return; +} + +bool SocketInterface::IsSocketFileExisted(const char* aPath) { + struct stat st; + return stat(aPath, &st) == 0 && S_ISSOCK(st.st_mode); +} + +} // namespace threadnetwork +} // namespace hardware +} // namespace android +} // namespace aidl diff --git a/threadnetwork/aidl/default/socket_interface.hpp b/threadnetwork/aidl/default/socket_interface.hpp new file mode 100644 index 0000000000000000000000000000000000000000..f88e92670c16fc233812a191b304c3d29efc4627 --- /dev/null +++ b/threadnetwork/aidl/default/socket_interface.hpp @@ -0,0 +1,258 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file + * This file includes definitions for the Socket interface interface to radio + * (RCP). + */ + +#include "lib/spinel/spinel_interface.hpp" +#include "lib/url/url.hpp" + +namespace aidl { +namespace android { +namespace hardware { +namespace threadnetwork { + +/** + * Defines a Socket interface to the Radio Co-processor (RCP) + * + */ +class SocketInterface : public ot::Spinel::SpinelInterface { + public: + /** + * Initializes the object. + * + * @param[in] aRadioUrl RadioUrl parsed from radio url. + * + */ + explicit SocketInterface(const ot::Url::Url& aRadioUrl); + + /** + * This destructor deinitializes the object. + * + */ + ~SocketInterface(); + + /** + * Initializes the interface to the Radio Co-processor (RCP) + * + * @note This method should be called before reading and sending Spinel + * frames to the interface. + * + * @param[in] aCallback Callback on frame received + * @param[in] aCallbackContext Callback context + * @param[in] aFrameBuffer A reference to a `RxFrameBuffer` object. + * + * @retval OT_ERROR_NONE The interface is initialized successfully + * @retval OT_ERROR_ALREADY The interface is already initialized. + * @retval OT_ERROR_FAILED Failed to initialize the interface. + * + */ + otError Init(ReceiveFrameCallback aCallback, void* aCallbackContext, + RxFrameBuffer& aFrameBuffer); + + /** + * Deinitializes the interface to the RCP. + * + */ + void Deinit(void); + + /** + * Sends a Spinel frame to Radio Co-processor (RCP) over the + * socket. + * + * @param[in] aFrame A pointer to buffer containing the Spinel frame to + * send. + * @param[in] aLength The length (number of bytes) in the frame. + * + * @retval OT_ERROR_NONE Successfully sent the Spinel frame. + * @retval OT_ERROR_FAILED Failed to send a frame. + * + */ + otError SendFrame(const uint8_t* aFrame, uint16_t aLength); + + /** + * Waits for receiving part or all of Spinel frame within specified + * interval. + * + * @param[in] aTimeout The timeout value in microseconds. + * + * @retval OT_ERROR_NONE Part or all of Spinel frame is + * received. + * @retval OT_ERROR_RESPONSE_TIMEOUT No Spinel frame is received within @p + * aTimeout. + * @retval OT_EXIT_FAILURE RCP error + * + */ + otError WaitForFrame(uint64_t aTimeoutUs); + + /** + * Updates the file descriptor sets with file descriptors used by the radio + * driver. + * + * @param[in,out] aMainloopContext A pointer to the mainloop context + * containing fd_sets. + * + */ + void UpdateFdSet(void* aMainloopContext); + + /** + * Performs radio driver processing. + * + * @param[in] aMainloopContext A pointer to the mainloop context + * containing fd_sets. + * + */ + void Process(const void* aMainloopContext); + + /** + * Returns the bus speed between the host and the radio. + * + * @return Bus speed in bits/second. + * + */ + uint32_t GetBusSpeed(void) const { return 1000000; } + + /** + * Hardware resets the RCP. + * + * @retval OT_ERROR_NONE Successfully reset the RCP. + * @retval OT_ERROR_NOT_IMPLEMENT The hardware reset is not implemented. + * + */ + otError HardwareReset(void) { return OT_ERROR_NOT_IMPLEMENTED; } + + /** + * Returns the RCP interface metrics. + * + * @return The RCP interface metrics. + * + */ + const otRcpInterfaceMetrics* GetRcpInterfaceMetrics(void) const { return &mInterfaceMetrics; } + + /** + * Indicates whether or not the given interface matches this interface name. + * + * @param[in] aInterfaceName A pointer to the interface name. + * + * @retval TRUE The given interface name matches this interface name. + * @retval FALSE The given interface name doesn't match this interface + * name. + */ + static bool IsInterfaceNameMatch(const char* aInterfaceName) { + static const char kInterfaceName[] = "spinel+socket"; + return (strncmp(aInterfaceName, kInterfaceName, strlen(kInterfaceName)) == 0); + } + + private: + /** + * Instructs `SocketInterface` to read data from radio over the + * socket. + * + * If a full Spinel frame is received, this method invokes the + * `HandleSocketFrame()` (on the `aCallback` object from constructor) to + * pass the received frame to be processed. + * + */ + void Read(void); + + /** + * Writes a given frame to the socket. + * + * @param[in] aFrame A pointer to buffer containing the frame to write. + * @param[in] aLength The length (number of bytes) in the frame. + * + */ + void Write(const uint8_t* aFrame, uint16_t aLength); + + /** + * Process received data. + * + * If a full frame is finished processing and we obtain the raw Spinel + * frame, this method invokes the `HandleSocketFrame()` (on the `aCallback` + * object from constructor) to pass the received frame to be processed. + * + * @param[in] aBuffer A pointer to buffer containing data. + * @param[in] aLength The length (number of bytes) in the buffer. + * + */ + void ProcessReceivedData(const uint8_t* aBuffer, uint16_t aLength); + + static void HandleSocketFrame(void* aContext, otError aError); + void HandleSocketFrame(otError aError); + + /** + * Opens file specified by aRadioUrl. + * + * @param[in] aRadioUrl A reference to object containing path to file and + * data for configuring the connection with tty type file. + * + * @retval The file descriptor of newly opened file. + * @retval -1 Fail to open file. + * + */ + int OpenFile(const ot::Url::Url& aRadioUrl); + + /** + * Closes file associated with the file descriptor. + * + */ + void CloseFile(void); + + /** + * Check if socket file is created. + * + * @param[in] aPath Socket file path name. + * + * @retval TRUE The required socket file is created. + * @retval FALSE The required socket file is not created. + * + */ + bool IsSocketFileExisted(const char* aPath); + + /** + * Wait until the socket file is created. + * + * @param[in] aPath Socket file path name. + * + */ + void WaitForSocketFileCreated(const char* aPath); + + enum { + kMaxSelectTimeMs = 2000, ///< Maximum wait time in Milliseconds for file + ///< descriptor to become available. + }; + + ReceiveFrameCallback mReceiveFrameCallback; + void* mReceiveFrameContext; + RxFrameBuffer* mReceiveFrameBuffer; + + int mSockFd; + const ot::Url::Url& mRadioUrl; + + otRcpInterfaceMetrics mInterfaceMetrics; + + // Non-copyable, intentionally not implemented. + SocketInterface(const SocketInterface&); + SocketInterface& operator=(const SocketInterface&); +}; + +} // namespace threadnetwork +} // namespace hardware +} // namespace android +} // namespace aidl diff --git a/threadnetwork/aidl/default/thread_chip.cpp b/threadnetwork/aidl/default/thread_chip.cpp index ed34e630b86c410a574ecbbe4cc92fd990e7cdb7..d1e1d4ceaf61e8018e36cb1e2996ca4ce0f986f7 100644 --- a/threadnetwork/aidl/default/thread_chip.cpp +++ b/threadnetwork/aidl/default/thread_chip.cpp @@ -24,6 +24,7 @@ #include #include "hdlc_interface.hpp" +#include "socket_interface.hpp" #include "spi_interface.hpp" namespace aidl { @@ -43,6 +44,8 @@ ThreadChip::ThreadChip(char* url) : mUrl(), mRxFrameBuffer(), mCallback(nullptr) mSpinelInterface = std::make_shared(mUrl); } else if (ot::Posix::HdlcInterface::IsInterfaceNameMatch(interfaceName)) { mSpinelInterface = std::make_shared(mUrl); + } else if (SocketInterface::IsInterfaceNameMatch(interfaceName)) { + mSpinelInterface = std::make_shared(mUrl); } else { ALOGE("The interface \"%s\" is not supported", interfaceName); exit(EXIT_FAILURE); diff --git a/threadnetwork/aidl/vts/VtsHalThreadNetworkTargetTest.cpp b/threadnetwork/aidl/vts/VtsHalThreadNetworkTargetTest.cpp index 5925b54b6a1a38ab67be7587a96e788920c17298..2f71b2f1e2dc86f0c0b1cae9ae0dbb30cc74846c 100644 --- a/threadnetwork/aidl/vts/VtsHalThreadNetworkTargetTest.cpp +++ b/threadnetwork/aidl/vts/VtsHalThreadNetworkTargetTest.cpp @@ -87,11 +87,16 @@ TEST_P(ThreadNetworkAidl, Close) { } TEST_P(ThreadNetworkAidl, Reset) { + ndk::ScopedAStatus status; std::shared_ptr callback = ndk::SharedRefBase::make([](auto /* data */) {}); EXPECT_TRUE(thread_chip->open(callback).isOk()); - EXPECT_TRUE(thread_chip->hardwareReset().isOk()); + status = thread_chip->hardwareReset(); + EXPECT_TRUE(status.isOk() || (status.getExceptionCode() == EX_UNSUPPORTED_OPERATION)); + if (status.getExceptionCode() == EX_UNSUPPORTED_OPERATION) { + GTEST_SKIP() << "Hardware reset is not supported"; + } } TEST_P(ThreadNetworkAidl, SendSpinelFrame) { diff --git a/tv/cec/1.0/Android.bp b/tv/cec/1.0/Android.bp index 889399ab431399cb34627e372e8e6328e606f752..836f265fbde62378df4df6f7be55eb937326c4a7 100644 --- a/tv/cec/1.0/Android.bp +++ b/tv/cec/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/cec/1.0/default/Android.bp b/tv/cec/1.0/default/Android.bp index e4c226d6f621fb03f94b5d25f4829712f4b7d2aa..abde1f2efa926be98edd5c2e345f822c2339292a 100644 --- a/tv/cec/1.0/default/Android.bp +++ b/tv/cec/1.0/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/cec/1.0/vts/functional/Android.bp b/tv/cec/1.0/vts/functional/Android.bp index 9a2c71437a82f25449a2f11d55f98aae30658b59..402204300090eb9c2a9807133596ae9dc153cbaa 100644 --- a/tv/cec/1.0/vts/functional/Android.bp +++ b/tv/cec/1.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/cec/1.1/Android.bp b/tv/cec/1.1/Android.bp index 27b4f03767fdf2bda102443f21924fe232a0449c..bdfb64c4765a4637c5028480a478f9f7d3062a8a 100644 --- a/tv/cec/1.1/Android.bp +++ b/tv/cec/1.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/cec/1.1/default/Android.bp b/tv/cec/1.1/default/Android.bp index b536d23b29bd47a55e6591b4a5330ea5b1fe4695..0b93cf33ecdfb643be06285884ebe9d6f6b64433 100644 --- a/tv/cec/1.1/default/Android.bp +++ b/tv/cec/1.1/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/cec/1.1/vts/functional/Android.bp b/tv/cec/1.1/vts/functional/Android.bp index 5a6548d4dc9e2365a8d9adc0d906ae5d0aef97d5..f8ca80403839ba8e887774650459001a2ef9ffa9 100644 --- a/tv/cec/1.1/vts/functional/Android.bp +++ b/tv/cec/1.1/vts/functional/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/hdmi/cec/aidl/Android.bp b/tv/hdmi/cec/aidl/Android.bp index 53cb5a9246f2069df9e3e318923bb5c3b7c6f586..11d3af2bd4211a0efc2b28dfac534b92be1141f8 100644 --- a/tv/hdmi/cec/aidl/Android.bp +++ b/tv/hdmi/cec/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/cec/aidl/default/Android.bp b/tv/hdmi/cec/aidl/default/Android.bp index ea4bb946875e686ee3fa80656781d84dcf92c390..71efb092891c737c64eb768d91999ee5db3dfeae 100644 --- a/tv/hdmi/cec/aidl/default/Android.bp +++ b/tv/hdmi/cec/aidl/default/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/cec/aidl/vts/functional/Android.bp b/tv/hdmi/cec/aidl/vts/functional/Android.bp index 5c86d3f6e27cda55d20888d721b1d79a653f9971..32ad7c66a5791f399bfb2982d37ec7a0f20f1fe8 100644 --- a/tv/hdmi/cec/aidl/vts/functional/Android.bp +++ b/tv/hdmi/cec/aidl/vts/functional/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/connection/aidl/Android.bp b/tv/hdmi/connection/aidl/Android.bp index ff7e166b9e3904bce507f9ab8ae120b6c87ce51f..552b52c7517495094c1bbfd9ba947214d540b6df 100644 --- a/tv/hdmi/connection/aidl/Android.bp +++ b/tv/hdmi/connection/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/connection/aidl/default/Android.bp b/tv/hdmi/connection/aidl/default/Android.bp index 5e7e3302e1680ff144b308034b741c7c182e7fed..926ff42835a45bfa81c6c662d98a5071b3fd299a 100644 --- a/tv/hdmi/connection/aidl/default/Android.bp +++ b/tv/hdmi/connection/aidl/default/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/connection/aidl/vts/functional/Android.bp b/tv/hdmi/connection/aidl/vts/functional/Android.bp index fc8e2f7e343e711f1cd9fcb90afd0187bf8e1bc7..3b74e06bbe7141798905da273ac701d0968bd985 100644 --- a/tv/hdmi/connection/aidl/vts/functional/Android.bp +++ b/tv/hdmi/connection/aidl/vts/functional/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/earc/aidl/Android.bp b/tv/hdmi/earc/aidl/Android.bp index d08e46d9a3e59d5cdbc570914defaaf723e4f0d3..7e88b277b0e02cab65c0c72ad32845c512937cb2 100644 --- a/tv/hdmi/earc/aidl/Android.bp +++ b/tv/hdmi/earc/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/earc/aidl/default/Android.bp b/tv/hdmi/earc/aidl/default/Android.bp index 5d56c2a2b98639fdd8fe2756928f8f2264e237fa..55337d7daa237deead87912d973e225c82ea5e4b 100644 --- a/tv/hdmi/earc/aidl/default/Android.bp +++ b/tv/hdmi/earc/aidl/default/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/hdmi/earc/aidl/vts/functional/Android.bp b/tv/hdmi/earc/aidl/vts/functional/Android.bp index 36fbf56957148aa731b0672e5d17e398a5180697..b33ad8e05ed752f5c5e5f6e4da56dec4610148db 100644 --- a/tv/hdmi/earc/aidl/vts/functional/Android.bp +++ b/tv/hdmi/earc/aidl/vts/functional/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_tv_os", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/tv/input/aidl/Android.bp b/tv/input/aidl/Android.bp index cd69130f8b83b60d71134ce4cdf13f25db8919f3..afc811a165dc3f10ef8ab04d5ef69a44e6e90809 100644 --- a/tv/input/aidl/Android.bp +++ b/tv/input/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -34,6 +35,15 @@ aidl_interface { "android.hardware.common.fmq-V1", ], }, + { + version: "2", + imports: [ + "android.hardware.common-V2", + "android.media.audio.common.types-V1", + "android.hardware.common.fmq-V1", + ], + }, + ], - frozen: false, + frozen: true, } diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/.hash b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/.hash new file mode 100644 index 0000000000000000000000000000000000000000..9742df8d58196516f2b36e9d3345367878ddb20d --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/.hash @@ -0,0 +1 @@ +4470ddfe78d3a0c44832ac08f46e8283fd090347 diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/CableConnectionStatus.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/CableConnectionStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a48bdb11c66dacc3813634db8b77f175876839dd --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/CableConnectionStatus.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@Backing(type="int") @VintfStability +enum CableConnectionStatus { + UNKNOWN = 0, + CONNECTED = 1, + DISCONNECTED = 2, +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInput.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInput.aidl new file mode 100644 index 0000000000000000000000000000000000000000..84fe2fb7d7925459c2b750351355961aff853132 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInput.aidl @@ -0,0 +1,47 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +interface ITvInput { + void closeStream(in int deviceId, in int streamId); + android.hardware.tv.input.TvStreamConfig[] getStreamConfigurations(in int deviceId); + android.hardware.common.NativeHandle openStream(in int deviceId, in int streamId); + void setCallback(in android.hardware.tv.input.ITvInputCallback callback); + void setTvMessageEnabled(int deviceId, int streamId, in android.hardware.tv.input.TvMessageEventType type, boolean enabled); + void getTvMessageQueueDesc(out android.hardware.common.fmq.MQDescriptor queue, int deviceId, int streamId); + const int STATUS_UNKNOWN = 1; + const int STATUS_NO_RESOURCE = 2; + const int STATUS_INVALID_ARGUMENTS = 3; + const int STATUS_INVALID_STATE = 4; +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInputCallback.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInputCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..974701341ca20f1d34d335828cb5245f012bb105 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/ITvInputCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +interface ITvInputCallback { + void notify(in android.hardware.tv.input.TvInputEvent event); + void notifyTvMessageEvent(in android.hardware.tv.input.TvMessageEvent event); +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputDeviceInfo.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputDeviceInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d0951467be32741773eb5e6ecf6a7a99e69564e0 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputDeviceInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +parcelable TvInputDeviceInfo { + int deviceId; + android.hardware.tv.input.TvInputType type; + int portId; + android.hardware.tv.input.CableConnectionStatus cableConnectionStatus; + android.media.audio.common.AudioDevice audioDevice; +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEvent.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEvent.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cfa8a34c9ea66be9095c89d739ca95ca3c0daedd --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEvent.aidl @@ -0,0 +1,39 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +parcelable TvInputEvent { + android.hardware.tv.input.TvInputEventType type; + android.hardware.tv.input.TvInputDeviceInfo deviceInfo; +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEventType.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEventType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a9f518ac8596f1458ecbec97f2184db6d60e9fa5 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputEventType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@Backing(type="int") @VintfStability +enum TvInputEventType { + DEVICE_AVAILABLE = 1, + DEVICE_UNAVAILABLE = 2, + STREAM_CONFIGURATIONS_CHANGED = 3, +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputType.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7e44a7d65326ec6ac2c2aaa831cc906cb4ed0dbc --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvInputType.aidl @@ -0,0 +1,47 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@Backing(type="int") @VintfStability +enum TvInputType { + OTHER = 1, + TUNER = 2, + COMPOSITE = 3, + SVIDEO = 4, + SCART = 5, + COMPONENT = 6, + VGA = 7, + DVI = 8, + HDMI = 9, + DISPLAY_PORT = 10, +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessage.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessage.aidl new file mode 100644 index 0000000000000000000000000000000000000000..04cb099f97a91deb3e279c35418f56bc0a5d3caf --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessage.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +parcelable TvMessage { + String subType; + long groupId; + int dataLengthBytes; + const long NO_GROUP_ID = (-1) /* -1 */; +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEvent.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEvent.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3c1cb74860348d5cee4e86a8a7a238b2e31942eb --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEvent.aidl @@ -0,0 +1,41 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +parcelable TvMessageEvent { + android.hardware.tv.input.TvMessageEventType type; + int streamId; + android.hardware.tv.input.TvMessage[] messages; + int deviceId; +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEventType.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEventType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3006198c68ab1b5e77c3e1f539f9a67ce9528eb4 --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvMessageEventType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@Backing(type="int") @VintfStability +enum TvMessageEventType { + WATERMARK = 1, + CLOSED_CAPTION = 2, + OTHER = 1000, +} diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvStreamConfig.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvStreamConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8378ff3a871b6879a5397352573a0d050fea377f --- /dev/null +++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/2/android/hardware/tv/input/TvStreamConfig.aidl @@ -0,0 +1,40 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.tv.input; +@VintfStability +parcelable TvStreamConfig { + int streamId; + int maxVideoWidth; + int maxVideoHeight; +} diff --git a/tv/input/aidl/default/Android.bp b/tv/input/aidl/default/Android.bp index 05af6a94fbbe75a0d52e793065f3bbdcac07b1c3..67015fb820602d8a0bc48767ded659e3f518ece8 100644 --- a/tv/input/aidl/default/Android.bp +++ b/tv/input/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/input/aidl/vts/functional/Android.bp b/tv/input/aidl/vts/functional/Android.bp index 930c5a808f413400d492e2f2378662c8d2960886..c472e240bc0471ccbe32dc134b58a32fb85f9c94 100644 --- a/tv/input/aidl/vts/functional/Android.bp +++ b/tv/input/aidl/vts/functional/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_tv_os", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.cpp b/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.cpp index 746ae1e1af5fe93b6602712d4a5b5836547bd410..7e095f1499f7a0130cb90e3eca952c455ebe0422 100644 --- a/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.cpp +++ b/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +#define LOG_TAG "tv_input_aidl_hal_test" + #include "VtsHalTvInputTargetTest.h" #include @@ -181,7 +183,9 @@ TEST_P(TvInputAidlTest, OpenAndCloseStreamTest) { ALOGD("OpenAndCloseStreamTest: open stream, device_id=%d, stream_id=%d", device_id, stream_id); ASSERT_TRUE(tv_input_->openStream(device_id, stream_id, &handle).isOk()); - ASSERT_TRUE(isValidHandle(handle)); + if (VERIFY_SIDEBAND_STREAM_HANDLE) { + ASSERT_TRUE(isValidHandle(handle)); + } ALOGD("OpenAndCloseStreamTest: close stream, device_id=%d, stream_id=%d", device_id, stream_id); @@ -283,7 +287,9 @@ TEST_P(TvInputAidlTest, OpenAnOpenedStreamsTest) { ALOGD("OpenAnOpenedStreamsTest: open stream, device_id=%d, stream_id=%d", device_id, stream_id); ASSERT_TRUE(tv_input_->openStream(device_id, stream_id, &handle).isOk()); - ASSERT_TRUE(isValidHandle(handle)); + if (VERIFY_SIDEBAND_STREAM_HANDLE) { + ASSERT_TRUE(isValidHandle(handle)); + } ALOGD("OpenAnOpenedStreamsTest: open stream, device_id=%d, stream_id=%d", device_id, stream_id); ASSERT_TRUE(tv_input_->openStream(device_id, stream_id, &handle).getServiceSpecificError() == diff --git a/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.h b/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.h index 7e66a88a321feea9d0466a989cbb1ec028adc4e5..fd98a18c472b3eeb95082717817db72c4b0f61f2 100644 --- a/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.h +++ b/tv/input/aidl/vts/functional/VtsHalTvInputTargetTest.h @@ -43,6 +43,7 @@ using ::android::AidlMessageQueue; #define WAIT_FOR_EVENT_TIMEOUT 5 #define DEFAULT_ID INT32_MIN +#define VERIFY_SIDEBAND_STREAM_HANDLE 1 namespace VtsHalTvInputTargetTest { diff --git a/tv/tuner/1.1/vts/functional/VtsHalTvTunerV1_1TargetTest.cpp b/tv/tuner/1.1/vts/functional/VtsHalTvTunerV1_1TargetTest.cpp index fccd2ede9b4a907d6f79bed5d7b9972180c52fe3..3d60e891e01c6193f462c01462be106b953d516f 100644 --- a/tv/tuner/1.1/vts/functional/VtsHalTvTunerV1_1TargetTest.cpp +++ b/tv/tuner/1.1/vts/functional/VtsHalTvTunerV1_1TargetTest.cpp @@ -35,6 +35,7 @@ void TunerFilterHidlTest::configSingleFilterInDemuxTest(FilterConfig1_1 filterCo ASSERT_TRUE(mFrontendTests.setFrontendCallback()); ASSERT_TRUE(mDemuxTests.openDemux(demux, demuxId)); ASSERT_TRUE(mDemuxTests.setDemuxFrontendDataSource(feId)); + mFrontendTests.setDemux(demux); mFilterTests.setDemux(demux); ASSERT_TRUE(mFilterTests.openFilterInDemux(filterConf.config1_0.type, filterConf.config1_0.bufferSize)); diff --git a/tv/tuner/aidl/default/Demux.cpp b/tv/tuner/aidl/default/Demux.cpp index de94467d1482a7b586a6a7203134d725a623c167..5eeb36a4ca198d19989ffecec986282c35b242ef 100644 --- a/tv/tuner/aidl/default/Demux.cpp +++ b/tv/tuner/aidl/default/Demux.cpp @@ -53,9 +53,6 @@ void Demux::setTunerService(std::shared_ptr tuner) { Demux::~Demux() { ALOGV("%s", __FUNCTION__); - if (mDemuxIptvReadThread.joinable()) { - mDemuxIptvReadThread.join(); - } close(); } @@ -123,26 +120,43 @@ void Demux::setIptvThreadRunning(bool isIptvThreadRunning) { mIsIptvThreadRunningCv.notify_all(); } -void Demux::readIptvThreadLoop(dtv_plugin* interface, dtv_streamer* streamer, size_t buf_size, - int timeout_ms, int buffer_timeout) { +void Demux::frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* streamer, void* buf) { Timer *timer, *fullBufferTimer; + bool isTuneBytePushedToDvr = false; while (true) { std::unique_lock lock(mIsIptvThreadRunningMutex); - mIsIptvThreadRunningCv.wait(lock, [this] { return mIsIptvReadThreadRunning; }); - if (mIsIptvDvrFMQFull && fullBufferTimer->get_elapsed_time_ms() > buffer_timeout) { - ALOGE("DVR FMQ has not been flushed within timeout of %d ms", buffer_timeout); + mIsIptvThreadRunningCv.wait( + lock, [this] { return mIsIptvReadThreadRunning || mIsIptvReadThreadTerminated; }); + if (mIsIptvReadThreadTerminated) { + ALOGI("[Demux] IPTV reading thread for playback terminated"); + break; + } + if (mIsIptvDvrFMQFull && + fullBufferTimer->get_elapsed_time_ms() > IPTV_PLAYBACK_BUFFER_TIMEOUT) { + ALOGE("DVR FMQ has not been flushed within timeout of %d ms", + IPTV_PLAYBACK_BUFFER_TIMEOUT); delete fullBufferTimer; break; } timer = new Timer(); - void* buf = malloc(sizeof(char) * IPTV_BUFFER_SIZE); - if (buf == nullptr) ALOGI("Buffer allocation failed"); - ssize_t bytes_read = interface->read_stream(streamer, buf, buf_size, timeout_ms); - if (bytes_read == 0) { + ssize_t bytes_read; + void* tuneByteBuffer = mFrontend->getTuneByteBuffer(); + if (!isTuneBytePushedToDvr && tuneByteBuffer != nullptr) { + memcpy(buf, tuneByteBuffer, 1); + char* offsetBuf = (char*)buf + 1; + bytes_read = interface->read_stream(streamer, (void*)offsetBuf, IPTV_BUFFER_SIZE - 1, + IPTV_PLAYBACK_TIMEOUT); + isTuneBytePushedToDvr = true; + } else { + bytes_read = + interface->read_stream(streamer, buf, IPTV_BUFFER_SIZE, IPTV_PLAYBACK_TIMEOUT); + } + + if (bytes_read <= 0) { double elapsed_time = timer->get_elapsed_time_ms(); - if (elapsed_time > timeout_ms) { + if (elapsed_time > IPTV_PLAYBACK_TIMEOUT) { ALOGE("[Demux] timeout reached - elapsed_time: %f, timeout: %d", elapsed_time, - timeout_ms); + IPTV_PLAYBACK_TIMEOUT); } ALOGE("[Demux] Cannot read data from the socket"); delete timer; @@ -170,8 +184,6 @@ void Demux::readIptvThreadLoop(dtv_plugin* interface, dtv_streamer* streamer, si default: ALOGI("Invalid DVR Status"); } - - free(buf); } } @@ -206,32 +218,44 @@ void Demux::readIptvThreadLoop(dtv_plugin* interface, dtv_streamer* streamer, si // get plugin interface from frontend dtv_plugin* interface = mFrontend->getIptvPluginInterface(); + // if plugin interface is not on frontend, create a new plugin interface if (interface == nullptr) { - ALOGE("[Demux] getIptvPluginInterface(): plugin interface is null"); - return ::ndk::ScopedAStatus::fromServiceSpecificError( - static_cast(Result::INVALID_STATE)); + interface = mFrontend->createIptvPluginInterface(); + if (interface == nullptr) { + ALOGE("[ INFO ] Failed to load plugin."); + return ::ndk::ScopedAStatus::fromServiceSpecificError( + static_cast(Result::INVALID_STATE)); + } + } + + // get transport description from frontend + string transport_desc = mFrontend->getIptvTransportDescription(); + if (transport_desc.empty()) { + string content_url = "rtp://127.0.0.1:12345"; + transport_desc = "{ \"uri\": \"" + content_url + "\"}"; } - ALOGI("[Demux] getIptvPluginInterface(): plugin interface is not null"); + ALOGI("[Demux] transport_desc: %s", transport_desc.c_str()); // get streamer object from Frontend instance dtv_streamer* streamer = mFrontend->getIptvPluginStreamer(); if (streamer == nullptr) { - ALOGE("[Demux] getIptvPluginStreamer(): streamer is null"); + streamer = mFrontend->createIptvPluginStreamer(interface, transport_desc.c_str()); + if (streamer == nullptr) { + ALOGE("[ INFO ] Failed to open stream"); + return ::ndk::ScopedAStatus::fromServiceSpecificError( + static_cast(Result::INVALID_STATE)); + } + } + stopIptvFrontendInput(); + mIsIptvReadThreadTerminated = false; + void* buf = malloc(sizeof(char) * IPTV_BUFFER_SIZE); + if (buf == nullptr) { + ALOGE("[Demux] Buffer allocation failed"); return ::ndk::ScopedAStatus::fromServiceSpecificError( static_cast(Result::INVALID_STATE)); } - ALOGI("[Demux] getIptvPluginStreamer(): streamer is not null"); - - // get transport description from frontend - string transport_desc = mFrontend->getIptvTransportDescription(); - ALOGI("[Demux] getIptvTransportDescription(): transport_desc: %s", transport_desc.c_str()); - - // call read_stream on the socket to populate the buffer with TS data - // while thread is alive, keep reading data - int timeout_ms = 20; - int buffer_timeout = 10000; // 10s - mDemuxIptvReadThread = std::thread(&Demux::readIptvThreadLoop, this, interface, streamer, - IPTV_BUFFER_SIZE, timeout_ms, buffer_timeout); + mDemuxIptvReadThread = + std::thread(&Demux::frontendIptvInputThreadLoop, this, interface, streamer, buf); } return ::ndk::ScopedAStatus::ok(); } @@ -348,6 +372,7 @@ void Demux::readIptvThreadLoop(dtv_plugin* interface, dtv_streamer* streamer, si ALOGV("%s", __FUNCTION__); stopFrontendInput(); + stopIptvFrontendInput(); set::iterator it; for (it = mPlaybackFilterIds.begin(); it != mPlaybackFilterIds.end(); it++) { @@ -543,6 +568,15 @@ void Demux::stopFrontendInput() { } } +void Demux::stopIptvFrontendInput() { + ALOGD("[Demux] stop iptv frontend on demux"); + if (mDemuxIptvReadThread.joinable()) { + mIsIptvReadThreadTerminated = true; + mIsIptvThreadRunningCv.notify_all(); + mDemuxIptvReadThread.join(); + } +} + void Demux::setIsRecording(bool isRecording) { mIsRecording = isRecording; } diff --git a/tv/tuner/aidl/default/Demux.h b/tv/tuner/aidl/default/Demux.h index ad7b7a77a1ad6fd602bd1628a50d06cfad77004e..af040d4bfd5323d6c5d4aab03cfbcd8723227773 100644 --- a/tv/tuner/aidl/default/Demux.h +++ b/tv/tuner/aidl/default/Demux.h @@ -56,6 +56,9 @@ class Frontend; class TimeFilter; class Tuner; +const int IPTV_PLAYBACK_TIMEOUT = 20; // ms +const int IPTV_PLAYBACK_BUFFER_TIMEOUT = 20000; // ms + class DvrPlaybackCallback : public BnDvrCallback { public: virtual ::ndk::ScopedAStatus onPlaybackStatus(PlaybackStatus status) override { @@ -103,8 +106,7 @@ class Demux : public BnDemux { void setIsRecording(bool isRecording); bool isRecording(); void startFrontendInputLoop(); - void readIptvThreadLoop(dtv_plugin* interface, dtv_streamer* streamer, size_t size, - int timeout_ms, int buffer_timeout); + void frontendIptvInputThreadLoop(dtv_plugin* interface, dtv_streamer* streamer, void* buf); /** * A dispatcher to read and dispatch input data to all the started filters. @@ -128,6 +130,10 @@ class Demux : public BnDemux { * Setter for IPTV Reading thread */ void setIptvThreadRunning(bool isIptvThreadRunning); + /** + * Stops IPTV playback reading thread. + */ + void stopIptvFrontendInput(); private: // Tuner service @@ -206,7 +212,8 @@ class Demux : public BnDemux { /** * Controls IPTV reading thread status */ - bool mIsIptvReadThreadRunning; + bool mIsIptvReadThreadRunning = false; + std::atomic mIsIptvReadThreadTerminated = false; std::mutex mIsIptvThreadRunningMutex; std::condition_variable mIsIptvThreadRunningCv; diff --git a/tv/tuner/aidl/default/Filter.cpp b/tv/tuner/aidl/default/Filter.cpp index 212d329cdcfb04a0d3b5b463a2a51a8347b0cbb7..5f7a4cda8d8e19819b04b1aee4202dec54845170 100644 --- a/tv/tuner/aidl/default/Filter.cpp +++ b/tv/tuner/aidl/default/Filter.cpp @@ -366,9 +366,11 @@ Filter::~Filter() { ::ndk::ScopedAStatus Filter::stop() { ALOGV("%s", __FUNCTION__); - mFilterCount -= 1; - if (mFilterCount == 0) { - mDemux->setIptvThreadRunning(false); + if (mFilterCount > 0) { + mFilterCount -= 1; + if (mFilterCount.load() == 0) { + mDemux->setIptvThreadRunning(false); + } } mFilterThreadRunning = false; diff --git a/tv/tuner/aidl/default/Frontend.cpp b/tv/tuner/aidl/default/Frontend.cpp index 57ed1ba4f909df289c30236259dd70be29520f0f..10316047ff4004b6a74814f112f884723fed3a6a 100644 --- a/tv/tuner/aidl/default/Frontend.cpp +++ b/tv/tuner/aidl/default/Frontend.cpp @@ -188,6 +188,9 @@ Frontend::~Frontend() { mCallback = nullptr; mIsLocked = false; mTuner = nullptr; + if (mTuneByteBuffer != nullptr) { + free(mTuneByteBuffer); + } } ::ndk::ScopedAStatus Frontend::close() { @@ -215,19 +218,43 @@ Frontend::~Frontend() { return ::ndk::ScopedAStatus::ok(); } -void Frontend::readTuneByte(dtv_streamer* streamer, void* buf, size_t buf_size, int timeout_ms) { - ssize_t bytes_read = mIptvPluginInterface->read_stream(streamer, buf, buf_size, timeout_ms); +dtv_plugin* Frontend::createIptvPluginInterface() { + const char* path = "/vendor/lib/iptv_udp_plugin.so"; + DtvPlugin* plugin = new DtvPlugin(path); + bool plugin_loaded = plugin->load(); + if (!plugin_loaded) { + ALOGE("Failed to load plugin"); + return nullptr; + } + return plugin->interface(); +} + +dtv_streamer* Frontend::createIptvPluginStreamer(dtv_plugin* interface, + const char* transport_desc) { + dtv_streamer* streamer = interface->create_streamer(); + int open_fd = interface->open_stream(streamer, transport_desc); + if (open_fd < 0) { + return nullptr; + } + ALOGI("[ INFO ] open_stream successful, open_fd=%d", open_fd); + return streamer; +} + +void Frontend::readTuneByte(void* buf) { + ssize_t bytes_read = mIptvPluginInterface->read_stream(mIptvPluginStreamer, buf, + TUNE_BUFFER_SIZE, TUNE_BUFFER_TIMEOUT); if (bytes_read <= 0) { ALOGI("[ ERROR ] Tune byte couldn't be read."); return; } mCallback->onEvent(FrontendEventType::LOCKED); mIsLocked = true; + mTuneByteBuffer = buf; } ::ndk::ScopedAStatus Frontend::tune(const FrontendSettings& in_settings) { if (mCallback == nullptr) { - ALOGW("[ WARN ] Frontend callback is not set for tunin0g"); + ALOGW("[ WARN ] Frontend callback is not set for tuning"); return ::ndk::ScopedAStatus::fromServiceSpecificError( static_cast(Result::INVALID_STATE)); } @@ -242,54 +269,39 @@ void Frontend::readTuneByte(dtv_streamer* streamer, void* buf, size_t buf_size, ALOGI("[ INFO ] Frontend type is set to IPTV, tag = %d id=%d", in_settings.getTag(), mId); - // load udp plugin for reading TS data - const char* path = "/vendor/lib/iptv_udp_plugin.so"; - DtvPlugin* plugin = new DtvPlugin(path); - if (!plugin) { - ALOGE("Failed to create DtvPlugin, plugin_path is invalid"); + mIptvPluginInterface = createIptvPluginInterface(); + if (mIptvPluginInterface == nullptr) { + ALOGE("[ INFO ] Failed to load plugin."); return ::ndk::ScopedAStatus::fromServiceSpecificError( static_cast(Result::INVALID_ARGUMENT)); } - bool plugin_loaded = plugin->load(); - if (!plugin_loaded) { - ALOGE("Failed to load plugin"); - return ::ndk::ScopedAStatus::fromServiceSpecificError( - static_cast(Result::INVALID_ARGUMENT)); - } - mIptvPluginInterface = plugin->interface(); // validate content_url format std::string content_url = in_settings.get()->contentUrl; - std::string transport_desc = "{ \"uri\": \"" + content_url + "\"}"; - ALOGI("[ INFO ] transport_desc: %s", transport_desc.c_str()); - bool is_transport_desc_valid = plugin->validate(transport_desc.c_str()); + mIptvTransportDescription = "{ \"uri\": \"" + content_url + "\"}"; + ALOGI("[ INFO ] transport_desc: %s", mIptvTransportDescription.c_str()); + bool is_transport_desc_valid = + mIptvPluginInterface->validate(mIptvTransportDescription.c_str()); if (!is_transport_desc_valid) { // not of format protocol://ip:port ALOGE("[ INFO ] transport_desc is not valid"); return ::ndk::ScopedAStatus::fromServiceSpecificError( static_cast(Result::INVALID_ARGUMENT)); } - mIptvTransportDescription = transport_desc; // create a streamer and open it for reading data - dtv_streamer* streamer = mIptvPluginInterface->create_streamer(); - mIptvPluginStreamer = streamer; - int open_fd = mIptvPluginInterface->open_stream(streamer, transport_desc.c_str()); - if (open_fd < 0) { - ALOGE("[ INFO ] could not open stream"); + mIptvPluginStreamer = + createIptvPluginStreamer(mIptvPluginInterface, mIptvTransportDescription.c_str()); + + void* buf = malloc(sizeof(char) * TUNE_BUFFER_SIZE); + if (buf == nullptr) { + ALOGE("Failed to allocate 1 byte buffer for tuning."); return ::ndk::ScopedAStatus::fromServiceSpecificError( - static_cast(Result::INVALID_ARGUMENT)); + static_cast(Result::INVALID_STATE)); + } + mIptvFrontendTuneThread = std::thread(&Frontend::readTuneByte, this, buf); + if (mIptvFrontendTuneThread.joinable()) { + mIptvFrontendTuneThread.join(); } - ALOGI("[ INFO ] open_stream successful, open_fd=%d", open_fd); - - size_t buf_size = 1; - int timeout_ms = 2000; - void* buf = malloc(sizeof(char) * buf_size); - if (buf == nullptr) ALOGI("malloc buf failed [TUNE]"); - ALOGI("[ INFO ] [Tune] Allocated buffer of size %zu", buf_size); - mIptvFrontendTuneThread = - std::thread(&Frontend::readTuneByte, this, streamer, buf, buf_size, timeout_ms); - if (mIptvFrontendTuneThread.joinable()) mIptvFrontendTuneThread.join(); - free(buf); } return ::ndk::ScopedAStatus::ok(); diff --git a/tv/tuner/aidl/default/Frontend.h b/tv/tuner/aidl/default/Frontend.h index 17a1aeeb40b043709608eadcf1de429d7c0a36d0..f3f8a8760d2448be8420b91e9283f1ffc5dc07b0 100644 --- a/tv/tuner/aidl/default/Frontend.h +++ b/tv/tuner/aidl/default/Frontend.h @@ -33,6 +33,9 @@ namespace tuner { class Tuner; +const int TUNE_BUFFER_SIZE = 1; // byte +const int TUNE_BUFFER_TIMEOUT = 2000; // ms + class Frontend : public BnFrontend { public: Frontend(FrontendType type, int32_t id); @@ -64,7 +67,10 @@ class Frontend : public BnFrontend { dtv_plugin* getIptvPluginInterface(); string getIptvTransportDescription(); dtv_streamer* getIptvPluginStreamer(); - void readTuneByte(dtv_streamer* streamer, void* buf, size_t size, int timeout_ms); + void readTuneByte(void* buf); + void* getTuneByteBuffer() { return mTuneByteBuffer; }; + dtv_streamer* createIptvPluginStreamer(dtv_plugin* interface, const char* transport_desc); + dtv_plugin* createIptvPluginInterface(); bool isLocked(); void getFrontendInfo(FrontendInfo* _aidl_return); void setTunerService(std::shared_ptr tuner); @@ -90,6 +96,7 @@ class Frontend : public BnFrontend { string mIptvTransportDescription; dtv_streamer* mIptvPluginStreamer; std::thread mIptvFrontendTuneThread; + void* mTuneByteBuffer = nullptr; }; } // namespace tuner diff --git a/tv/tuner/aidl/vts/functional/Android.bp b/tv/tuner/aidl/vts/functional/Android.bp index 513007b4a8e23b7c1d856a24050c8813281e4cf1..09e63fc56b7bef9ff8c140ce46b848e15447213c 100644 --- a/tv/tuner/aidl/vts/functional/Android.bp +++ b/tv/tuner/aidl/vts/functional/Android.bp @@ -37,6 +37,7 @@ cc_test { "FrontendTests.cpp", "LnbTests.cpp", "VtsHalTvTunerTargetTest.cpp", + "utils/IpStreamer.cpp", ], generated_headers: [ "tuner_testing_dynamic_configuration_V1_0_enums", diff --git a/tv/tuner/aidl/vts/functional/FrontendTests.cpp b/tv/tuner/aidl/vts/functional/FrontendTests.cpp index b0f614ed9b5588a9a68af739cf1d3bd533537bdf..b7b01859b2428266a69a26a23bef610f355d0045 100644 --- a/tv/tuner/aidl/vts/functional/FrontendTests.cpp +++ b/tv/tuner/aidl/vts/functional/FrontendTests.cpp @@ -475,6 +475,10 @@ AssertionResult FrontendTests::tuneFrontend(FrontendConfig config, bool testWith << "FrontendConfig does not match the frontend info of the given id."; mIsSoftwareFe = config.isSoftwareFe; + std::unique_ptr ipThread = std::make_unique(); + if (config.type == FrontendType::IPTV) { + ipThread->startIpStream(); + } if (mIsSoftwareFe && testWithDemux) { if (getDvrTests()->openDvrInDemux(mDvrConfig.type, mDvrConfig.bufferSize) != success()) { ALOGW("[vts] Software frontend dvr configure openDvr failed."); @@ -494,6 +498,9 @@ AssertionResult FrontendTests::tuneFrontend(FrontendConfig config, bool testWith getDvrTests()->startDvrPlayback(); } mFrontendCallback->tuneTestOnLock(mFrontend, config.settings); + if (config.type == FrontendType::IPTV) { + ipThread->stopIpStream(); + } return AssertionResult(true); } diff --git a/tv/tuner/aidl/vts/functional/FrontendTests.h b/tv/tuner/aidl/vts/functional/FrontendTests.h index 1746c8efcc3b7de72ba2d7ba87f4d140e2fb59f4..9c2ffc07d4fc7454486b98555bc4b3939bec3c91 100644 --- a/tv/tuner/aidl/vts/functional/FrontendTests.h +++ b/tv/tuner/aidl/vts/functional/FrontendTests.h @@ -27,6 +27,7 @@ #include "DvrTests.h" #include "VtsHalTvTunerTestConfigurations.h" +#include "utils/IpStreamer.h" #define WAIT_TIMEOUT 3000000000 #define INVALID_ID -1 diff --git a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp index 3664b6cfdf488b2e170c2d293c1626691cafc116..2b39bc6ab07809618b36c8fb8c661a36cf6a9346 100644 --- a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp +++ b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTargetTest.cpp @@ -48,6 +48,7 @@ void TunerFilterAidlTest::configSingleFilterInDemuxTest(FilterConfig filterConf, ASSERT_TRUE(mFrontendTests.setFrontendCallback()); ASSERT_TRUE(mDemuxTests.openDemux(demux, demuxId)); ASSERT_TRUE(mDemuxTests.setDemuxFrontendDataSource(feId)); + mFrontendTests.setDemux(demux); mFilterTests.setDemux(demux); ASSERT_TRUE(mFilterTests.openFilterInDemux(filterConf.type, filterConf.bufferSize)); ASSERT_TRUE(mFilterTests.getNewlyOpenedFilterId_64bit(filterId)); @@ -1111,6 +1112,10 @@ TEST_P(TunerRecordAidlTest, RecordDataFlowWithTsRecordFilterTest) { if (!record.support) { return; } + // Recording is not currently supported for IPTV frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } auto record_configs = generateRecordConfigurations(); for (auto& configuration : record_configs) { record = configuration; @@ -1125,6 +1130,10 @@ TEST_P(TunerRecordAidlTest, AttachFiltersToRecordTest) { if (!record.support) { return; } + // Recording is not currently supported for IPTV frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } auto record_configs = generateRecordConfigurations(); for (auto& configuration : record_configs) { record = configuration; @@ -1157,6 +1166,10 @@ TEST_P(TunerRecordAidlTest, SetStatusCheckIntervalHintToRecordTest) { if (!record.support) { return; } + // Recording is not currently supported for IPTV frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } auto record_configs = generateRecordConfigurations(); for (auto& configuration : record_configs) { record = configuration; @@ -1194,9 +1207,17 @@ TEST_P(TunerFrontendAidlTest, BlindScanFrontend) { if (!scan.hasFrontendConnection) { return; } + // Blind scan is not applicable for IPTV frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } vector scan_configs = generateScanConfigurations(); for (auto& configuration : scan_configs) { scan = configuration; + // Skip test if the frontend implementation doesn't support blind scan + if (!frontendMap[scan.frontendId].supportBlindScan) { + continue; + } mFrontendTests.scanTest(frontendMap[scan.frontendId], FrontendScanType::SCAN_BLIND); } } @@ -1218,9 +1239,17 @@ TEST_P(TunerFrontendAidlTest, BlindScanFrontendWithEndFrequency) { if (!scan.hasFrontendConnection) { return; } + // Blind scan is not application for IPTV frontend + if (frontendMap[live.frontendId].type == FrontendType::IPTV) { + return; + } vector scan_configs = generateScanConfigurations(); for (auto& configuration : scan_configs) { scan = configuration; + // Skip test if the frontend implementation doesn't support blind scan + if (!frontendMap[scan.frontendId].supportBlindScan) { + continue; + } mFrontendTests.scanTest(frontendMap[scan.frontendId], FrontendScanType::SCAN_BLIND); } } diff --git a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTestConfigurations.h b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTestConfigurations.h index 516cb62f042446cfc549fdef1e04161ac14abe12..ff946394661852e88c0659398477639ac376e680 100644 --- a/tv/tuner/aidl/vts/functional/VtsHalTvTunerTestConfigurations.h +++ b/tv/tuner/aidl/vts/functional/VtsHalTvTunerTestConfigurations.h @@ -612,6 +612,7 @@ inline void initFrontendConfig() { frontendMap[defaultFeId].isSoftwareFe = true; frontendMap[defaultFeId].canConnectToCiCam = true; frontendMap[defaultFeId].ciCamId = 0; + frontendMap[defaultFeId].supportBlindScan = true; FrontendDvbtSettings dvbt; dvbt.transmissionMode = FrontendDvbtTransmissionMode::MODE_8K_E; frontendMap[defaultFeId].settings.set(dvbt); @@ -730,9 +731,20 @@ inline void determineLive() { if (videoFilterIds.empty() || audioFilterIds.empty() || frontendMap.empty()) { return; } - if (hasSwFe && !hasHwFe && dvrMap.empty()) { - ALOGD("Cannot configure Live. Only software frontends and no dvr connections"); - return; + if (!hasHwFe) { + if (hasSwFe) { + if (dvrMap.empty()) { + ALOGD("Cannot configure Live. Only software frontends and no dvr connections."); + return; + } + // Live is available if there is SW FE and some DVR is attached. + } else { + // We will arrive here because frontendMap won't be empty since + // there will be at least a default frontend declared. But the + // default frontend doesn't count as "hasSwFe". + ALOGD("Cannot configure Live. No frontend declared at all."); + return; + } } ALOGD("Can support live"); live.hasFrontendConnection = true; diff --git a/tv/tuner/aidl/vts/functional/utils/IpStreamer.cpp b/tv/tuner/aidl/vts/functional/utils/IpStreamer.cpp new file mode 100644 index 0000000000000000000000000000000000000000..02b2633256928bbdbbc2e06c5590963ed6cac22a --- /dev/null +++ b/tv/tuner/aidl/vts/functional/utils/IpStreamer.cpp @@ -0,0 +1,57 @@ +#include "IpStreamer.h" + +IpStreamer::IpStreamer() {} + +IpStreamer::~IpStreamer() {} + +void IpStreamer::startIpStream() { + ALOGI("Starting IP Stream thread"); + mFp = fopen(mFilePath.c_str(), "rb"); + if (mFp == nullptr) { + ALOGE("Failed to open file at path: %s", mFilePath.c_str()); + return; + } + mIpStreamerThread = std::thread(&IpStreamer::ipStreamThreadLoop, this, mFp); +} + +void IpStreamer::stopIpStream() { + ALOGI("Stopping IP Stream thread"); + close(mSockfd); + if (mFp != nullptr) fclose(mFp); + if (mIpStreamerThread.joinable()) { + mIpStreamerThread.join(); + } +} + +void IpStreamer::ipStreamThreadLoop(FILE* fp) { + mSockfd = socket(AF_INET, SOCK_DGRAM, 0); + if (mSockfd < 0) { + ALOGE("IpStreamer::ipStreamThreadLoop: Socket creation failed (%s)", strerror(errno)); + exit(1); + } + + if (mFp == NULL) { + ALOGE("IpStreamer::ipStreamThreadLoop: Cannot open file %s: (%s)", mFilePath.c_str(), + strerror(errno)); + exit(1); + } + + struct sockaddr_in destaddr; + memset(&destaddr, 0, sizeof(destaddr)); + destaddr.sin_family = mIsIpV4 ? AF_INET : AF_INET6; + destaddr.sin_port = htons(mPort); + destaddr.sin_addr.s_addr = inet_addr(mIpAddress.c_str()); + + char buf[mBufferSize]; + int n; + while (1) { + if (fp == nullptr) break; + n = fread(buf, 1, mBufferSize, fp); + ALOGI("IpStreamer::ipStreamThreadLoop: Bytes read from fread(): %d\n", n); + if (n <= 0) { + break; + } + sendto(mSockfd, buf, n, 0, (struct sockaddr*)&destaddr, sizeof(destaddr)); + sleep(mSleepTime); + } +} diff --git a/tv/tuner/aidl/vts/functional/utils/IpStreamer.h b/tv/tuner/aidl/vts/functional/utils/IpStreamer.h new file mode 100644 index 0000000000000000000000000000000000000000..8ac2ddb8ed7ca84f469faec86095563560a972ad --- /dev/null +++ b/tv/tuner/aidl/vts/functional/utils/IpStreamer.h @@ -0,0 +1,48 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * IP Streamer class to send TS data to a specified socket for testing IPTV frontend functions + * e.g. tuning and playback. + */ + +class IpStreamer { + public: + // Constructor for IP Streamer object + IpStreamer(); + + // Destructor for IP Streamer object + ~IpStreamer(); + + // Starts a thread to read data from a socket + void startIpStream(); + + // Stops the reading thread started by startIpStream + void stopIpStream(); + + // Thread function that consumes data from a socket + void ipStreamThreadLoop(FILE* fp); + + std::string getFilePath() { return mFilePath; }; + + private: + int mSockfd = -1; + FILE* mFp = nullptr; + bool mIsIpV4 = true; // By default, set to IPV4 + int mPort = 12345; // default port + int mBufferSize = 188; // bytes + int mSleepTime = 1; // second + std::string mIpAddress = "127.0.0.1"; // default IP address + std::string mFilePath = "/data/local/tmp/segment000000.ts"; // default path for TS file + std::thread mIpStreamerThread; +}; \ No newline at end of file diff --git a/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h b/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h index 9517520c1817cabb3afadcc1dfed0d1657fcd69b..5ffb38ffcdbeaf11ad3f8c6b180473ddef1e751c 100644 --- a/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h +++ b/tv/tuner/config/TunerTestingConfigAidlReaderV1_0.h @@ -114,6 +114,7 @@ struct FrontendConfig { FrontendSettings settings; vector tuneStatusTypes; vector expectTuneStatuses; + bool supportBlindScan; }; struct FilterConfig { @@ -354,6 +355,11 @@ struct TunerTestingConfigAidlReader1_0 { } else { hasHwFe = true; } + if (feConfig.hasSupportBlindScan()) { + frontendMap[id].supportBlindScan = feConfig.getSupportBlindScan(); + } else { + frontendMap[id].supportBlindScan = true; + } // TODO: b/182519645 complete the tune status config frontendMap[id].tuneStatusTypes = types; frontendMap[id].expectTuneStatuses = statuses; diff --git a/tv/tuner/config/api/current.txt b/tv/tuner/config/api/current.txt index dbd3486e676389a9e7c718fc4f625a118c6c6001..ff2df90b808b6c9d2a9c1d6b62713e754f3fffa9 100644 --- a/tv/tuner/config/api/current.txt +++ b/tv/tuner/config/api/current.txt @@ -369,6 +369,7 @@ package android.media.tuner.testing.configuration.V1_0 { method @Nullable public android.media.tuner.testing.configuration.V1_0.IsdbsFrontendSettings getIsdbsFrontendSettings_optional(); method @Nullable public android.media.tuner.testing.configuration.V1_0.IsdbtFrontendSettings getIsdbtFrontendSettings_optional(); method @Nullable public java.math.BigInteger getRemoveOutputPid(); + method @Nullable public boolean getSupportBlindScan(); method @Nullable public android.media.tuner.testing.configuration.V1_0.FrontendTypeEnum getType(); method public void setAtscFrontendSettings_optional(@Nullable android.media.tuner.testing.configuration.V1_0.AtscFrontendSettings); method public void setConnectToCicamId(@Nullable java.math.BigInteger); @@ -381,6 +382,7 @@ package android.media.tuner.testing.configuration.V1_0 { method public void setIsdbsFrontendSettings_optional(@Nullable android.media.tuner.testing.configuration.V1_0.IsdbsFrontendSettings); method public void setIsdbtFrontendSettings_optional(@Nullable android.media.tuner.testing.configuration.V1_0.IsdbtFrontendSettings); method public void setRemoveOutputPid(@Nullable java.math.BigInteger); + method public void setSupportBlindScan(@Nullable boolean); method public void setType(@Nullable android.media.tuner.testing.configuration.V1_0.FrontendTypeEnum); } diff --git a/tv/tuner/config/tuner_testing_dynamic_configuration.xsd b/tv/tuner/config/tuner_testing_dynamic_configuration.xsd index c51ac5183cdf66e017077fe9b9a68adba4dc4898..eafaca9a30b2c8f2cd80823ab173e987505573cb 100644 --- a/tv/tuner/config/tuner_testing_dynamic_configuration.xsd +++ b/tv/tuner/config/tuner_testing_dynamic_configuration.xsd @@ -162,6 +162,7 @@ + diff --git a/usb/aidl/Android.bp b/usb/aidl/Android.bp index b61576d682b12dc0fb11cdac511314a4b3f6f414..becb5c1089567bd05b30c70df4ac8d562092ff58 100644 --- a/usb/aidl/Android.bp +++ b/usb/aidl/Android.bp @@ -43,8 +43,12 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: [], + }, ], - frozen: false, + frozen: true, } diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/.hash b/usb/aidl/aidl_api/android.hardware.usb/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..99de8e4f977f9d5a0cf019cfcee5ea5d7c77ecdb --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/.hash @@ -0,0 +1 @@ +7fe46e9531884739d925b8caeee9dba5c411e228 diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/AltModeData.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/AltModeData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d25ee8415122919ff0d2e28216156b91b57a6fda --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/AltModeData.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not us e this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +union AltModeData { + android.hardware.usb.AltModeData.DisplayPortAltModeData displayPortAltModeData; + @VintfStability + parcelable DisplayPortAltModeData { + android.hardware.usb.DisplayPortAltModeStatus partnerSinkStatus = android.hardware.usb.DisplayPortAltModeStatus.UNKNOWN; + android.hardware.usb.DisplayPortAltModeStatus cableStatus = android.hardware.usb.DisplayPortAltModeStatus.UNKNOWN; + android.hardware.usb.DisplayPortAltModePinAssignment pinAssignment = android.hardware.usb.DisplayPortAltModePinAssignment.NONE; + boolean hpd = false; + android.hardware.usb.LinkTrainingStatus linkTrainingStatus = android.hardware.usb.LinkTrainingStatus.UNKNOWN; + } +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ComplianceWarning.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ComplianceWarning.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c7c910324e610ac000d262a94f65439c0ad81723 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ComplianceWarning.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@Backing(type="int") @VintfStability +enum ComplianceWarning { + OTHER = 1, + DEBUG_ACCESSORY = 2, + BC_1_2 = 3, + MISSING_RP = 4, + INPUT_POWER_LIMITED = 5, + MISSING_DATA_LINES = 6, + ENUMERATION_FAIL = 7, + FLAKY_CONNECTION = 8, + UNRELIABLE_IO = 9, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantDetectionStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantDetectionStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..24c69664f76df066cbabf84592dc19f279302e20 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantDetectionStatus.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum ContaminantDetectionStatus { + NOT_SUPPORTED = 0, + DISABLED = 1, + NOT_DETECTED = 2, + DETECTED = 3, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionMode.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..99798693ff7d49f27e1bf75de3feab8e8f0f49a4 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum ContaminantProtectionMode { + NONE = 0, + FORCE_SINK = 1, + FORCE_SOURCE = 2, + FORCE_DISABLE = 3, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9642261444e23a9068faa7894ceca2be914edd44 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/ContaminantProtectionStatus.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum ContaminantProtectionStatus { + NONE = 0, + FORCE_SINK = 1, + FORCE_SOURCE = 2, + FORCE_DISABLE = 3, + DISABLED = 4, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModePinAssignment.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModePinAssignment.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5908117e9e4b97e48b3c0d8e54b64acfd659b883 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModePinAssignment.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@Backing(type="int") @VintfStability +enum DisplayPortAltModePinAssignment { + NONE = 0, + A = 1, + B = 2, + C = 3, + D = 4, + E = 5, + F = 6, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModeStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModeStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dc69b9895519b4ee6ea0ecee42d130ca77119306 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/DisplayPortAltModeStatus.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@Backing(type="int") @VintfStability +enum DisplayPortAltModeStatus { + UNKNOWN = 0, + NOT_CAPABLE = 1, + CAPABLE = 2, + ENABLED = 3, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsb.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsb.aidl new file mode 100644 index 0000000000000000000000000000000000000000..859f52652bc9c5f48bb024eac966dc89aba3a503 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsb.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +interface IUsb { + oneway void enableContaminantPresenceDetection(in String portName, in boolean enable, long transactionId); + oneway void enableUsbData(in String portName, boolean enable, long transactionId); + oneway void enableUsbDataWhileDocked(in String portName, long transactionId); + oneway void queryPortStatus(long transactionId); + oneway void setCallback(in android.hardware.usb.IUsbCallback callback); + oneway void switchRole(in String portName, in android.hardware.usb.PortRole role, long transactionId); + oneway void limitPowerTransfer(in String portName, boolean limit, long transactionId); + oneway void resetUsbPort(in String portName, long transactionId); +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsbCallback.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsbCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4abfaec53b4c6fa3a429a3b749285ff7b4c67d8d --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/IUsbCallback.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +interface IUsbCallback { + oneway void notifyPortStatusChange(in android.hardware.usb.PortStatus[] currentPortStatus, in android.hardware.usb.Status retval); + oneway void notifyRoleSwitchStatus(in String portName, in android.hardware.usb.PortRole newRole, in android.hardware.usb.Status retval, long transactionId); + oneway void notifyEnableUsbDataStatus(in String portName, boolean enable, in android.hardware.usb.Status retval, long transactionId); + oneway void notifyEnableUsbDataWhileDockedStatus(in String portName, in android.hardware.usb.Status retval, long transactionId); + oneway void notifyContaminantEnabledStatus(in String portName, boolean enable, in android.hardware.usb.Status retval, long transactionId); + oneway void notifyQueryPortStatus(in String portName, in android.hardware.usb.Status retval, long transactionId); + oneway void notifyLimitPowerTransferStatus(in String portName, boolean limit, in android.hardware.usb.Status retval, long transactionId); + oneway void notifyResetUsbPortStatus(in String portName, in android.hardware.usb.Status retval, long transactionId); +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/LinkTrainingStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/LinkTrainingStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1f0b2dcca7052b94263b7085d2f5620a939b0766 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/LinkTrainingStatus.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@Backing(type="int") @VintfStability +enum LinkTrainingStatus { + UNKNOWN = 0, + SUCCESS = 1, + FAILURE = 2, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PlugOrientation.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PlugOrientation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e2185444b17af949639325e705d357c8d460ed45 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PlugOrientation.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@Backing(type="int") @VintfStability +enum PlugOrientation { + UNKNOWN = 0, + UNPLUGGED = 1, + PLUGGED_UNKNOWN = 2, + PLUGGED_NORMAL = 3, + PLUGGED_FLIPPED = 4, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortDataRole.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortDataRole.aidl new file mode 100644 index 0000000000000000000000000000000000000000..105b3167754c61d05b300bf1a9863bd65e49fd18 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortDataRole.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum PortDataRole { + NONE = 0, + HOST = 1, + DEVICE = 2, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortMode.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..34e43343ad477ea56c3fd304bfd1acc72be00a1b --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortMode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum PortMode { + NONE = 0, + UFP = 1, + DFP = 2, + DRP = 3, + AUDIO_ACCESSORY = 4, + DEBUG_ACCESSORY = 5, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortPowerRole.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortPowerRole.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0e6f3fb4268aa481b8107f63c8278ad1e081ec9d --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortPowerRole.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum PortPowerRole { + NONE = 0, + SOURCE = 1, + SINK = 2, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortRole.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortRole.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c66aeccde9c23c0bcbcb4e2c50136a3d5576140d --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortRole.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +union PortRole { + android.hardware.usb.PortPowerRole powerRole = android.hardware.usb.PortPowerRole.NONE; + android.hardware.usb.PortDataRole dataRole; + android.hardware.usb.PortMode mode; +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cefddba7199b78e33d3b9181c6589761a36857ce --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PortStatus.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +parcelable PortStatus { + String portName; + android.hardware.usb.PortDataRole currentDataRole = android.hardware.usb.PortDataRole.NONE; + android.hardware.usb.PortPowerRole currentPowerRole = android.hardware.usb.PortPowerRole.NONE; + android.hardware.usb.PortMode currentMode = android.hardware.usb.PortMode.NONE; + boolean canChangeMode; + boolean canChangeDataRole; + boolean canChangePowerRole; + android.hardware.usb.PortMode[] supportedModes; + android.hardware.usb.ContaminantProtectionMode[] supportedContaminantProtectionModes; + boolean supportsEnableContaminantPresenceProtection; + android.hardware.usb.ContaminantProtectionStatus contaminantProtectionStatus = android.hardware.usb.ContaminantProtectionStatus.NONE; + boolean supportsEnableContaminantPresenceDetection; + android.hardware.usb.ContaminantDetectionStatus contaminantDetectionStatus = android.hardware.usb.ContaminantDetectionStatus.NOT_SUPPORTED; + android.hardware.usb.UsbDataStatus[] usbDataStatus; + boolean powerTransferLimited; + android.hardware.usb.PowerBrickStatus powerBrickStatus; + boolean supportsComplianceWarnings = false; + android.hardware.usb.ComplianceWarning[] complianceWarnings = {}; + android.hardware.usb.PlugOrientation plugOrientation = android.hardware.usb.PlugOrientation.UNKNOWN; + android.hardware.usb.AltModeData[] supportedAltModes = {}; +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PowerBrickStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PowerBrickStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..01d2fdd9f7599795f10f57182534ad5e07fab495 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/PowerBrickStatus.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum PowerBrickStatus { + UNKNOWN = 0, + CONNECTED = 1, + NOT_CONNECTED = 2, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/Status.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/Status.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f28fc2a70ec54c5507fd94ed503ef4b21f106537 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/Status.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@Backing(type="int") @VintfStability +enum Status { + SUCCESS = 0, + ERROR = 1, + INVALID_ARGUMENT = 2, + UNRECOGNIZED_ROLE = 3, + NOT_SUPPORTED = 4, +} diff --git a/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/UsbDataStatus.aidl b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/UsbDataStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b976852b3e82e4e41c0dc5d9487ddc0dcb037766 --- /dev/null +++ b/usb/aidl/aidl_api/android.hardware.usb/3/android/hardware/usb/UsbDataStatus.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.usb; +@VintfStability +enum UsbDataStatus { + UNKNOWN = 0, + ENABLED = 1, + DISABLED_OVERHEAT = 2, + DISABLED_CONTAMINANT = 3, + DISABLED_DOCK = 4, + DISABLED_FORCE = 5, + DISABLED_DEBUG = 6, + DISABLED_DOCK_HOST_MODE = 7, + DISABLED_DOCK_DEVICE_MODE = 8, +} diff --git a/uwb/aidl/Android.bp b/uwb/aidl/Android.bp index 3e71913ef8fddf361e6ce3654d7fd07b35fbd566..abd6a237995a6b3baf7a3e26df57e2ee2b0b922e 100755 --- a/uwb/aidl/Android.bp +++ b/uwb/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_uwb", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl index 21951b6e20dea9f1afb740bcb38f6f0946b04083..58919d1fc66891b0955b04e283b463fdcdecd998 100644 --- a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl +++ b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl @@ -46,6 +46,7 @@ enum UwbVendorCapabilityTlvTypes { CCC_SUPPORTED_MAX_RANGING_SESSION_NUMBER = 0xA8, CCC_SUPPORTED_MIN_UWB_INITIATION_TIME_MS = 0xA9, CCC_PRIORITIZED_CHANNEL_LIST = 0xAA, + CCC_SUPPORTED_UWBS_MAX_PPM = 0xAB, RADAR_SUPPORT = 0xB0, SUPPORTED_AOA_RESULT_REQ_ANTENNA_INTERLEAVING = 0xE3, SUPPORTED_MIN_RANGING_INTERVAL_MS = 0xE4, diff --git a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl index 2141b5a1c903fe9a1d1d95163eb9d5fda4c8b206..4df45b61bb9a1ad7b4e5f923df271b54d2022dfa 100644 --- a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl +++ b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl @@ -154,6 +154,11 @@ enum UwbVendorCapabilityTlvTypes { */ CCC_PRIORITIZED_CHANNEL_LIST = 0xAA, + /** + * Short (2-octet) value to indicate the UWBS Max Clock Skew PPM value. + */ + CCC_SUPPORTED_UWBS_MAX_PPM = 0xAB, + /********************************************* * RADAR specific ********************************************/ diff --git a/uwb/aidl/default/Android.bp b/uwb/aidl/default/Android.bp index f9b79de72934ec1aa0c9ec1d1f0662da8d2127b8..eba18cf6aba9ad5da42e898a7354b0504f18796e 100644 --- a/uwb/aidl/default/Android.bp +++ b/uwb/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_uwb", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -24,6 +25,8 @@ rust_binary { "libtokio_util", "libnix", "libanyhow", + "libpdl_runtime", + "libuwb_uci_packets", ], proc_macros: [ "libasync_trait", diff --git a/uwb/aidl/default/src/service.rs b/uwb/aidl/default/src/service.rs index 7d5c07323f9ad7ce263cb5fb678a40b7f78a2a65..e97b291876c23afd1e0b3d52c41c2384a9fee0a4 100644 --- a/uwb/aidl/default/src/service.rs +++ b/uwb/aidl/default/src/service.rs @@ -6,7 +6,7 @@ use tokio::runtime::Runtime; use std::env; use std::panic; -use log::Level; +use log::LevelFilter; mod uwb; mod uwb_chip; @@ -14,7 +14,7 @@ mod uwb_chip; fn main() -> anyhow::Result<()> { logger::init( logger::Config::default() - .with_min_level(Level::Debug) + .with_max_level(LevelFilter::Debug) .with_tag_on_device("android.hardware.uwb"), ); diff --git a/uwb/aidl/default/src/uwb_chip.rs b/uwb/aidl/default/src/uwb_chip.rs index efb24543234942484efbcfb8d6aa53a3e48bcbe3..d1c3c67f76810d81ed797c669de201e73eded638 100644 --- a/uwb/aidl/default/src/uwb_chip.rs +++ b/uwb/aidl/default/src/uwb_chip.rs @@ -16,6 +16,9 @@ use std::fs::{File, OpenOptions}; use std::io::{self, Read, Write}; use std::os::unix::fs::OpenOptionsExt; +use pdl_runtime::Packet; +use uwb_uci_packets::{DeviceResetCmdBuilder, ResetConfig, UciControlPacket, UciControlPacketHal}; + enum State { Closed, Opened { @@ -46,11 +49,37 @@ impl UwbChip { impl State { /// Terminate the reader task. async fn close(&mut self) -> Result<()> { - if let State::Opened { ref mut token, ref callbacks, ref mut death_recipient, ref mut handle, .. } = *self { + if let State::Opened { + ref mut token, + ref callbacks, + ref mut death_recipient, + ref mut handle, + ref mut serial, + } = *self + { log::info!("waiting for task cancellation"); callbacks.as_binder().unlink_to_death(death_recipient)?; token.cancel(); handle.await.unwrap(); + let packet: UciControlPacket = DeviceResetCmdBuilder { + reset_config: ResetConfig::UwbsReset, + } + .build() + .into(); + // DeviceResetCmd need to be send to reset the device to stop all running + // activities on UWBS. + let packet_vec: Vec = packet.into(); + for hal_packet in packet_vec.into_iter() { + serial + .write(&hal_packet.to_vec()) + .map(|written| written as i32) + .map_err(|_| binder::StatusCode::UNKNOWN_ERROR)?; + } + consume_device_reset_rsp_and_ntf( + &mut serial + .try_clone() + .map_err(|_| binder::StatusCode::UNKNOWN_ERROR)?, + ); log::info!("task successfully cancelled"); callbacks.onHalEvent(UwbEvent::CLOSE_CPLT, UwbStatus::OK)?; *self = State::Closed; @@ -59,6 +88,20 @@ impl State { } } +fn consume_device_reset_rsp_and_ntf(reader: &mut File) { + // Poll the DeviceResetRsp and DeviceStatusNtf before hal is closed to prevent + // the host from getting response and notifications from a 'powered down' UWBS. + // Do nothing when these packets are received. + const DEVICE_RESET_RSP: [u8; 5] = [64, 0, 0, 1, 0]; + const DEVICE_STATUS_NTF: [u8; 5] = [96, 1, 0, 1, 1]; + let mut buffer = vec![0; DEVICE_RESET_RSP.len() + DEVICE_STATUS_NTF.len()]; + read_exact(reader, &mut buffer).unwrap(); + + // Make sure received packets are the expected ones. + assert_eq!(&buffer[0..DEVICE_RESET_RSP.len()], &DEVICE_RESET_RSP); + assert_eq!(&buffer[DEVICE_RESET_RSP.len()..], &DEVICE_STATUS_NTF); +} + pub fn makeraw(file: File) -> io::Result { // Configure the file descriptor as raw fd. use nix::sys::termios::*; @@ -209,7 +252,7 @@ impl IUwbChipAsyncServer for UwbChip { let mut state = self.state.lock().await; - if matches!(*state, State::Opened { .. }) { + if let State::Opened { .. } = *state { state.close().await } else { Err(binder::ExceptionCode::ILLEGAL_STATE.into()) diff --git a/uwb/aidl/vts/Android.bp b/uwb/aidl/vts/Android.bp index 4d9f65307b9dc3042220c496c445712e01fc2d91..1beaa6eea2c1053f54cad87728a4bd167257a2e1 100644 --- a/uwb/aidl/vts/Android.bp +++ b/uwb/aidl/vts/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_uwb", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/uwb/aidl/vts/VtsHalUwbTargetTest.cpp b/uwb/aidl/vts/VtsHalUwbTargetTest.cpp index 81d26ba06bb3c7dc102c9b5ac1914e789214b85e..3b0b60657e4e810e2db74b8cdc7d0b9cf8716575 100644 --- a/uwb/aidl/vts/VtsHalUwbTargetTest.cpp +++ b/uwb/aidl/vts/VtsHalUwbTargetTest.cpp @@ -216,5 +216,12 @@ int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); ProcessState::self()->setThreadPoolMaxThreadCount(1); ProcessState::self()->startThreadPool(); - return RUN_ALL_TESTS(); + // UWB HAL only allows 1 client, make sure framework + // does not have UWB HAL open before running + std::system("/system/bin/cmd uwb disable-uwb"); + sleep(3); + auto status = RUN_ALL_TESTS(); + sleep(3); + std::system("/system/bin/cmd uwb enable-uwb"); + return status; } diff --git a/vibrator/aidl/Android.bp b/vibrator/aidl/Android.bp index c5936e39314261059c851689ba54d83efa80a84e..b5199e248b0fb71249c2e9ccc74aa31b9d062b1c 100644 --- a/vibrator/aidl/Android.bp +++ b/vibrator/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_haptics_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/vibrator/aidl/default/Android.bp b/vibrator/aidl/default/Android.bp index fb71a82ab10b6df4b93cf3c1f53d377152be5629..0f342db10e64c30c301e1918916cbc2ca1ef533c 100644 --- a/vibrator/aidl/default/Android.bp +++ b/vibrator/aidl/default/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_haptics_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/vibrator/aidl/default/apex/Android.bp b/vibrator/aidl/default/apex/Android.bp index 39626bfc71578aa08f3ed4195c264a188bf416ad..b694e1f1a6545fde07e855fba9009c3a5ff3e4bd 100644 --- a/vibrator/aidl/default/apex/Android.bp +++ b/vibrator/aidl/default/apex/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_haptics_framework", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/vibrator/aidl/default/example_java_client/Android.bp b/vibrator/aidl/default/example_java_client/Android.bp index 17a649cd1d1cd250e8a4a112b06bd2566c226731..5f1e27a5eaf5d0fc104423f1817e76f7f02653a2 100644 --- a/vibrator/aidl/default/example_java_client/Android.bp +++ b/vibrator/aidl/default/example_java_client/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_haptics_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/vibrator/aidl/vts/Android.bp b/vibrator/aidl/vts/Android.bp index 12618707ca3fa95f9dc254c91846dfce3b07770a..b6d2fb27da34bf3124e35cf4eba8b0cc52184964 100644 --- a/vibrator/aidl/vts/Android.bp +++ b/vibrator/aidl/vts/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_haptics_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/vibrator/aidl/vts/VtsHalVibratorTargetTest.cpp b/vibrator/aidl/vts/VtsHalVibratorTargetTest.cpp index c88cb594f9f382037d322ecbe2598ef804b835ad..6c6846f636c9d9baa37a05e403aab52eb4616b6a 100644 --- a/vibrator/aidl/vts/VtsHalVibratorTargetTest.cpp +++ b/vibrator/aidl/vts/VtsHalVibratorTargetTest.cpp @@ -109,6 +109,11 @@ class VibratorAidl : public testing::TestWithParam> ASSERT_TRUE(vibrator->getCapabilities(&capabilities).isOk()); } + virtual void TearDown() override { + // Reset vibrator state between tests. + EXPECT_TRUE(vibrator->off().isOk()); + } + sp vibrator; int32_t capabilities; }; @@ -429,189 +434,202 @@ TEST_P(VibratorAidl, GetPrimitiveDuration) { } TEST_P(VibratorAidl, ComposeValidPrimitives) { - if (capabilities & IVibrator::CAP_COMPOSE_EFFECTS) { - std::vector supported; - int32_t maxDelay, maxSize; + if (!(capabilities & IVibrator::CAP_COMPOSE_EFFECTS)) { + GTEST_SKIP() << "CAP_COMPOSE_EFFECTS not supported"; + } - ASSERT_TRUE(vibrator->getSupportedPrimitives(&supported).isOk()); - EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionDelayMax(&maxDelay).exceptionCode()); - EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionSizeMax(&maxSize).exceptionCode()); + std::vector supported; + int32_t maxDelay, maxSize; - std::vector composite; + ASSERT_TRUE(vibrator->getSupportedPrimitives(&supported).isOk()); + EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionDelayMax(&maxDelay).exceptionCode()); + EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionSizeMax(&maxSize).exceptionCode()); - for (auto primitive : supported) { - CompositeEffect effect; + std::vector composite; - effect.delayMs = std::rand() % (maxDelay + 1); - effect.primitive = primitive; - effect.scale = static_cast(std::rand()) / static_cast(RAND_MAX); - composite.emplace_back(effect); + for (int i = 0; i < supported.size(); i++) { + auto primitive = supported[i]; + float t = static_cast(i + 1) / supported.size(); + CompositeEffect effect; - if (composite.size() == maxSize) { - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); - composite.clear(); - vibrator->off(); - } - } + effect.delayMs = maxDelay * t; + effect.primitive = primitive; + effect.scale = t; - if (composite.size() != 0) { - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); - vibrator->off(); + if (composite.size() == maxSize) { + break; } } + + if (composite.size() != 0) { + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); + } } TEST_P(VibratorAidl, ComposeUnsupportedPrimitives) { - if (capabilities & IVibrator::CAP_COMPOSE_EFFECTS) { - auto unsupported = kInvalidPrimitives; - std::vector supported; + if (!(capabilities & IVibrator::CAP_COMPOSE_EFFECTS)) { + GTEST_SKIP() << "CAP_COMPOSE_EFFECTS not supported"; + } - ASSERT_TRUE(vibrator->getSupportedPrimitives(&supported).isOk()); + auto unsupported = kInvalidPrimitives; + std::vector supported; - for (auto primitive : kCompositePrimitives) { - bool isPrimitiveSupported = + ASSERT_TRUE(vibrator->getSupportedPrimitives(&supported).isOk()); + + for (auto primitive : kCompositePrimitives) { + bool isPrimitiveSupported = std::find(supported.begin(), supported.end(), primitive) != supported.end(); - if (!isPrimitiveSupported) { - unsupported.push_back(primitive); - } + if (!isPrimitiveSupported) { + unsupported.push_back(primitive); } + } - for (auto primitive : unsupported) { - std::vector composite(1); + for (auto primitive : unsupported) { + std::vector composite(1); - for (auto &effect : composite) { - effect.delayMs = 0; - effect.primitive = primitive; - effect.scale = 1.0f; - } - Status status = vibrator->compose(composite, nullptr); - EXPECT_TRUE(isUnknownOrUnsupported(status)) << status; - vibrator->off(); + for (auto& effect : composite) { + effect.delayMs = 0; + effect.primitive = primitive; + effect.scale = 1.0f; } + Status status = vibrator->compose(composite, nullptr); + EXPECT_TRUE(isUnknownOrUnsupported(status)) << status; } } TEST_P(VibratorAidl, ComposeScaleBoundary) { - if (capabilities & IVibrator::CAP_COMPOSE_EFFECTS) { - std::vector composite(1); - CompositeEffect &effect = composite[0]; + if (!(capabilities & IVibrator::CAP_COMPOSE_EFFECTS)) { + GTEST_SKIP() << "CAP_COMPOSE_EFFECTS not supported"; + } - effect.delayMs = 0; - effect.primitive = CompositePrimitive::CLICK; + std::vector composite(1); + CompositeEffect& effect = composite[0]; - effect.scale = std::nextafter(0.0f, -1.0f); - EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, - vibrator->compose(composite, nullptr).exceptionCode()); + effect.delayMs = 0; + effect.primitive = CompositePrimitive::CLICK; - effect.scale = 0.0f; - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + effect.scale = std::nextafter(0.0f, -1.0f); + EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, vibrator->compose(composite, nullptr).exceptionCode()); - effect.scale = 1.0f; - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + effect.scale = 0.0f; + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); - effect.scale = std::nextafter(1.0f, 2.0f); - EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, - vibrator->compose(composite, nullptr).exceptionCode()); + effect.scale = 1.0f; + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); - vibrator->off(); - } + effect.scale = std::nextafter(1.0f, 2.0f); + EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, vibrator->compose(composite, nullptr).exceptionCode()); } TEST_P(VibratorAidl, ComposeDelayBoundary) { - if (capabilities & IVibrator::CAP_COMPOSE_EFFECTS) { - int32_t maxDelay; + if (!(capabilities & IVibrator::CAP_COMPOSE_EFFECTS)) { + GTEST_SKIP() << "CAP_COMPOSE_EFFECTS not supported"; + } - EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionDelayMax(&maxDelay).exceptionCode()); + int32_t maxDelay; - std::vector composite(1); - CompositeEffect effect; + EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionDelayMax(&maxDelay).exceptionCode()); - effect.delayMs = 1; - effect.primitive = CompositePrimitive::CLICK; - effect.scale = 1.0f; + std::vector composite(1); + CompositeEffect& effect = composite[0]; - std::fill(composite.begin(), composite.end(), effect); - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + effect.primitive = CompositePrimitive::CLICK; + effect.scale = 1.0f; - effect.delayMs = maxDelay + 1; + effect.delayMs = 0; + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); - std::fill(composite.begin(), composite.end(), effect); - EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, - vibrator->compose(composite, nullptr).exceptionCode()); - vibrator->off(); - } + effect.delayMs = 1; + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); + + effect.delayMs = maxDelay; + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); + + effect.delayMs = maxDelay + 1; + EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, vibrator->compose(composite, nullptr).exceptionCode()); } TEST_P(VibratorAidl, ComposeSizeBoundary) { - if (capabilities & IVibrator::CAP_COMPOSE_EFFECTS) { - int32_t maxSize; + if (!(capabilities & IVibrator::CAP_COMPOSE_EFFECTS)) { + GTEST_SKIP() << "CAP_COMPOSE_EFFECTS not supported"; + } - EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionSizeMax(&maxSize).exceptionCode()); + int32_t maxSize; - std::vector composite(maxSize); - CompositeEffect effect; + EXPECT_EQ(Status::EX_NONE, vibrator->getCompositionSizeMax(&maxSize).exceptionCode()); - effect.delayMs = 1; - effect.primitive = CompositePrimitive::CLICK; - effect.scale = 1.0f; + std::vector composite(maxSize); + CompositeEffect effect; - std::fill(composite.begin(), composite.end(), effect); - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + effect.delayMs = 1; + effect.primitive = CompositePrimitive::CLICK; + effect.scale = 1.0f; - composite.emplace_back(effect); - EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, - vibrator->compose(composite, nullptr).exceptionCode()); - vibrator->off(); - } + std::fill(composite.begin(), composite.end(), effect); + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, nullptr).exceptionCode()); + EXPECT_TRUE(vibrator->off().isOk()); + + composite.emplace_back(effect); + EXPECT_EQ(Status::EX_ILLEGAL_ARGUMENT, vibrator->compose(composite, nullptr).exceptionCode()); } TEST_P(VibratorAidl, ComposeCallback) { - if (capabilities & IVibrator::CAP_COMPOSE_EFFECTS) { - std::vector supported; + if (!(capabilities & IVibrator::CAP_COMPOSE_EFFECTS)) { + GTEST_SKIP() << "CAP_COMPOSE_EFFECTS not supported"; + } - ASSERT_TRUE(vibrator->getSupportedPrimitives(&supported).isOk()); + std::vector supported; - for (auto primitive : supported) { - if (primitive == CompositePrimitive::NOOP) { - continue; - } + ASSERT_TRUE(vibrator->getSupportedPrimitives(&supported).isOk()); - std::promise completionPromise; - std::future completionFuture{completionPromise.get_future()}; - sp callback = + for (auto primitive : supported) { + if (primitive == CompositePrimitive::NOOP) { + continue; + } + + std::promise completionPromise; + std::future completionFuture{completionPromise.get_future()}; + sp callback = new CompletionCallback([&completionPromise] { completionPromise.set_value(); }); - CompositeEffect effect; - std::vector composite; - int32_t durationMs; - std::chrono::milliseconds duration; - std::chrono::time_point start, end; - std::chrono::milliseconds elapsed; + CompositeEffect effect; + std::vector composite; + int32_t durationMs; + std::chrono::milliseconds duration; + std::chrono::time_point start, end; + std::chrono::milliseconds elapsed; - effect.delayMs = 0; - effect.primitive = primitive; - effect.scale = 1.0f; - composite.emplace_back(effect); + effect.delayMs = 0; + effect.primitive = primitive; + effect.scale = 1.0f; + composite.emplace_back(effect); - EXPECT_EQ(Status::EX_NONE, - vibrator->getPrimitiveDuration(primitive, &durationMs).exceptionCode()) + EXPECT_EQ(Status::EX_NONE, + vibrator->getPrimitiveDuration(primitive, &durationMs).exceptionCode()) << toString(primitive); - duration = std::chrono::milliseconds(durationMs); + duration = std::chrono::milliseconds(durationMs); - start = high_resolution_clock::now(); - EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, callback).exceptionCode()) + start = high_resolution_clock::now(); + EXPECT_EQ(Status::EX_NONE, vibrator->compose(composite, callback).exceptionCode()) << toString(primitive); - // TODO(b/261130361): Investigate why latency from driver and hardware will cause test - // to fail when wait duration is ~40ms or less. - EXPECT_EQ(completionFuture.wait_for(duration + std::chrono::milliseconds(50)), - std::future_status::ready) - << toString(primitive); - end = high_resolution_clock::now(); + // TODO(b/261130361): Investigate why latency from driver and hardware will cause test + // to fail when wait duration is ~40ms or less. + EXPECT_EQ(completionFuture.wait_for(duration + std::chrono::milliseconds(50)), + std::future_status::ready) + << toString(primitive); + end = high_resolution_clock::now(); - elapsed = std::chrono::duration_cast(end - start); - EXPECT_GE(elapsed.count(), duration.count()) << toString(primitive); - } + elapsed = std::chrono::duration_cast(end - start); + EXPECT_GE(elapsed.count(), duration.count()) << toString(primitive); + + EXPECT_TRUE(vibrator->off().isOk()); } } diff --git a/vibrator/bench/Android.bp b/vibrator/bench/Android.bp index 73e274fe41b5e6d0ac4c8a6603289c5676b08025..87bdab4215870a0235788837025c42eff1cba4fa 100644 --- a/vibrator/bench/Android.bp +++ b/vibrator/bench/Android.bp @@ -14,6 +14,7 @@ // limitations under the License. package { + default_team: "trendy_team_haptics_framework", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/vibrator/bench/benchmark.cpp b/vibrator/bench/benchmark.cpp index e19dc6f215fbccd0d835f2e4d945432ab600be3d..b96e06da5b439b90b3fd61d4f124a4514b46b5ef 100644 --- a/vibrator/bench/benchmark.cpp +++ b/vibrator/bench/benchmark.cpp @@ -118,6 +118,7 @@ class VibratorEffectsBench : public VibratorBench { }); if (!supported) { + state->SkipWithMessage("performApi returned UNSUPPORTED_OPERATION"); return; } @@ -140,16 +141,17 @@ class VibratorEffectsBench : public VibratorBench { } }; -#define BENCHMARK_WRAPPER(fixt, test, code) \ - BENCHMARK_DEFINE_F(fixt, test) \ - /* NOLINTNEXTLINE */ \ - (State & state) { \ - if (!mVibrator) { \ - return; \ - } \ - \ - code \ - } \ +#define BENCHMARK_WRAPPER(fixt, test, code) \ + BENCHMARK_DEFINE_F(fixt, test) \ + /* NOLINTNEXTLINE */ \ + (State & state) { \ + if (!mVibrator) { \ + state.SkipWithMessage("HAL unavailable"); \ + return; \ + } \ + \ + code \ + } \ BENCHMARK_REGISTER_F(fixt, test)->Apply(fixt::DefaultConfig)->Apply(fixt::DefaultArgs) using VibratorBench_V1_0 = VibratorBench; @@ -186,6 +188,7 @@ BENCHMARK_WRAPPER(VibratorBench_V1_0, setAmplitude, { uint8_t amplitude = UINT8_MAX; if (!mVibrator->supportsAmplitudeControl()) { + state.SkipWithMessage("Amplitude control unavailable"); return; } @@ -227,6 +230,7 @@ BENCHMARK_WRAPPER(VibratorBench_V1_3, setExternalControl, { bool enable = true; if (!mVibrator->supportsExternalControl()) { + state.SkipWithMessage("external control unavailable"); return; } @@ -240,6 +244,7 @@ BENCHMARK_WRAPPER(VibratorBench_V1_3, setExternalControl, { BENCHMARK_WRAPPER(VibratorBench_V1_3, supportsExternalAmplitudeControl, { if (!mVibrator->supportsExternalControl()) { + state.SkipWithMessage("external control unavailable"); return; } @@ -256,12 +261,14 @@ BENCHMARK_WRAPPER(VibratorBench_V1_3, setExternalAmplitude, { uint8_t amplitude = UINT8_MAX; if (!mVibrator->supportsExternalControl()) { + state.SkipWithMessage("external control unavailable"); return; } mVibrator->setExternalControl(true); if (!mVibrator->supportsAmplitudeControl()) { + state.SkipWithMessage("amplitude control unavailable"); return; } @@ -328,6 +335,7 @@ BENCHMARK_WRAPPER(VibratorBench_Aidl, setAmplitude, { int32_t capabilities = 0; mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_AMPLITUDE_CONTROL) == 0) { + state.SkipWithMessage("amplitude control unavailable"); return; } @@ -345,6 +353,7 @@ BENCHMARK_WRAPPER(VibratorBench_Aidl, setExternalControl, { int32_t capabilities = 0; mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_EXTERNAL_CONTROL) == 0) { + state.SkipWithMessage("external control unavailable"); return; } @@ -361,6 +370,7 @@ BENCHMARK_WRAPPER(VibratorBench_Aidl, setExternalAmplitude, { mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_EXTERNAL_CONTROL) == 0 || (capabilities & Aidl::IVibrator::CAP_EXTERNAL_AMPLITUDE_CONTROL) == 0) { + state.SkipWithMessage("external amplitude control unavailable"); return; } @@ -423,6 +433,7 @@ BENCHMARK_WRAPPER(VibratorEffectsBench_Aidl, alwaysOnEnable, { int32_t capabilities = 0; mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_ALWAYS_ON_CONTROL) == 0) { + state.SkipWithMessage("always on control unavailable"); return; } @@ -433,6 +444,7 @@ BENCHMARK_WRAPPER(VibratorEffectsBench_Aidl, alwaysOnEnable, { std::vector supported; mVibrator->getSupportedAlwaysOnEffects(&supported); if (std::find(supported.begin(), supported.end(), effect) == supported.end()) { + state.SkipWithMessage("always on effects unavailable"); return; } @@ -448,6 +460,7 @@ BENCHMARK_WRAPPER(VibratorEffectsBench_Aidl, alwaysOnDisable, { int32_t capabilities = 0; mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_ALWAYS_ON_CONTROL) == 0) { + state.SkipWithMessage("always on control unavailable"); return; } @@ -458,6 +471,7 @@ BENCHMARK_WRAPPER(VibratorEffectsBench_Aidl, alwaysOnDisable, { std::vector supported; mVibrator->getSupportedAlwaysOnEffects(&supported); if (std::find(supported.begin(), supported.end(), effect) == supported.end()) { + state.SkipWithMessage("always on effects unavailable"); return; } @@ -481,6 +495,7 @@ BENCHMARK_WRAPPER(VibratorEffectsBench_Aidl, perform, { std::vector supported; mVibrator->getSupportedEffects(&supported); if (std::find(supported.begin(), supported.end(), effect) == supported.end()) { + state.SkipWithMessage("effects unavailable"); return; } @@ -527,6 +542,7 @@ BENCHMARK_WRAPPER(VibratorPrimitivesBench_Aidl, getPrimitiveDuration, { int32_t capabilities = 0; mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_COMPOSE_EFFECTS) == 0) { + state.SkipWithMessage("compose effects unavailable"); return; } @@ -536,6 +552,7 @@ BENCHMARK_WRAPPER(VibratorPrimitivesBench_Aidl, getPrimitiveDuration, { std::vector supported; mVibrator->getSupportedPrimitives(&supported); if (std::find(supported.begin(), supported.end(), primitive) == supported.end()) { + state.SkipWithMessage("supported primitives unavailable"); return; } @@ -548,6 +565,7 @@ BENCHMARK_WRAPPER(VibratorPrimitivesBench_Aidl, compose, { int32_t capabilities = 0; mVibrator->getCapabilities(&capabilities); if ((capabilities & Aidl::IVibrator::CAP_COMPOSE_EFFECTS) == 0) { + state.SkipWithMessage("compose effects unavailable"); return; } @@ -559,6 +577,7 @@ BENCHMARK_WRAPPER(VibratorPrimitivesBench_Aidl, compose, { std::vector supported; mVibrator->getSupportedPrimitives(&supported); if (std::find(supported.begin(), supported.end(), effect.primitive) == supported.end()) { + state.SkipWithMessage("supported primitives unavailable"); return; } diff --git a/weaver/aidl/Android.bp b/weaver/aidl/Android.bp index 38d017f9b5a3f025ea6dc080c033869f97c39475..c494d29bc35b64bc6b176b9753977cb2a29a4c05 100644 --- a/weaver/aidl/Android.bp +++ b/weaver/aidl/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_android_hardware_backed_security", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/weaver/aidl/default/Android.bp b/weaver/aidl/default/Android.bp index 494cb1bf4aae73b685094e8a8bcbfe46746b2618..2a62b99271230118300f2c16d5653a692b55f992 100644 --- a/weaver/aidl/default/Android.bp +++ b/weaver/aidl/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_hardware_backed_security", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/weaver/vts/Android.bp b/weaver/vts/Android.bp index ee03b28136a7dc60c00f788f2c8b73ce2c3d7f3b..4139a282c40e0e7c417af9aac553089242ae1069 100644 --- a/weaver/vts/Android.bp +++ b/weaver/vts/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_android_hardware_backed_security", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/weaver/vts/VtsHalWeaverTargetTest.cpp b/weaver/vts/VtsHalWeaverTargetTest.cpp index 754d46710b568aea7ef2f0b5185da859d7fac79e..40e955808b06eccf8e708d4a4fb1f0d8f9b87d17 100644 --- a/weaver/vts/VtsHalWeaverTargetTest.cpp +++ b/weaver/vts/VtsHalWeaverTargetTest.cpp @@ -222,9 +222,8 @@ void WeaverTest::FindFreeSlots() { } // Starting in Android 14, the system will always use at least one Weaver slot if Weaver is // supported at all. Make sure we saw at least one. - // TODO: uncomment after Android 14 is merged into AOSP - // ASSERT_FALSE(used_slots.empty()) - //<< "Could not determine which Weaver slots are in use by the system"; + ASSERT_FALSE(used_slots.empty()) + << "Could not determine which Weaver slots are in use by the system"; // Find the first free slot. int found = 0; diff --git a/wifi/1.0/Android.bp b/wifi/1.0/Android.bp index 94f846283699f3d8d40f2084f5f47922b95c98d2..21a5d15c2369cef29bbfeaf2eecadc35cd172ab3 100644 --- a/wifi/1.0/Android.bp +++ b/wifi/1.0/Android.bp @@ -33,4 +33,8 @@ hidl_interface { ], gen_java: true, gen_java_constants: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/1.1/Android.bp b/wifi/1.1/Android.bp index 7b4116a258b0f793f8204278d8080cb0b9c24493..b5e4105d4dbb4404649bb6dc8f9fe943c9b3ff4a 100644 --- a/wifi/1.1/Android.bp +++ b/wifi/1.1/Android.bp @@ -21,4 +21,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/1.2/Android.bp b/wifi/1.2/Android.bp index f0edb819766087f1fe5a978429dc2480f4598db9..83b156e504fac3431da1fdc325169fcc0c99d2d3 100644 --- a/wifi/1.2/Android.bp +++ b/wifi/1.2/Android.bp @@ -27,4 +27,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/1.3/Android.bp b/wifi/1.3/Android.bp index 030d7f6eb6292f2ce00619fd25b3ab21710421a6..2ba612e88ee302c3d955da87db9d7a6a959ff820 100644 --- a/wifi/1.3/Android.bp +++ b/wifi/1.3/Android.bp @@ -25,4 +25,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/1.4/Android.bp b/wifi/1.4/Android.bp index 1523f799273e6627c93334fe58f7a50c1b7005ae..48578f84ac73b8f790c353dfffe0ab63d21bdd76 100644 --- a/wifi/1.4/Android.bp +++ b/wifi/1.4/Android.bp @@ -30,4 +30,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/aidl/Android.bp b/wifi/aidl/Android.bp index ac95f85c2b60245532a9ea56d4344874e6f7b4d7..392d2e9ec64de25851e09e88ad77f78cf65fa061 100644 --- a/wifi/aidl/Android.bp +++ b/wifi/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -48,12 +49,20 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, }, versions_with_info: [ { version: "1", imports: [], }, + { + version: "2", + imports: ["android.hardware.wifi.common-V1"], + }, + ], - frozen: false, + frozen: true, } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/.hash b/wifi/aidl/aidl_api/android.hardware.wifi/2/.hash new file mode 100644 index 0000000000000000000000000000000000000000..c3c298322303327450e78ae55c2ee9cd35d0361b --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/.hash @@ -0,0 +1 @@ +a5a330d7dabd069484e7458de480eed7561dc3b2 diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AfcChannelAllowance.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AfcChannelAllowance.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4d3cd6eb58a9a281e22e905a707272bf8c6fd4b6 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AfcChannelAllowance.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable AfcChannelAllowance { + android.hardware.wifi.AvailableAfcFrequencyInfo[] availableAfcFrequencyInfos; + android.hardware.wifi.AvailableAfcChannelInfo[] availableAfcChannelInfos; + long availabilityExpireTimeMs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcChannelInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcChannelInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d2386401baa44fb0364560511d9b1420c3ba4dee --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcChannelInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable AvailableAfcChannelInfo { + int globalOperatingClass; + int channelCfi; + int maxEirpDbm; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcFrequencyInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcFrequencyInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cbea5affb99b610556185264899a1ada2123f6ff --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/AvailableAfcFrequencyInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable AvailableAfcFrequencyInfo { + int startFrequencyMhz; + int endFrequencyMhz; + int maxPsd; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanData.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cd4a456917c71712706cbcaf6d7aa20159c3bc3a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanData.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable CachedScanData { + int[] scannedFrequenciesMhz; + android.hardware.wifi.CachedScanResult[] cachedScanResults; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1806b0f53433db061ebc2f82bf13a884190b803e --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/CachedScanResult.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable CachedScanResult { + long timeStampInUs; + byte[] ssid; + byte[6] bssid; + int rssiDbm; + int frequencyMhz; + android.hardware.wifi.WifiChannelWidthInMhz channelWidthMhz; + android.hardware.wifi.WifiRatePreamble preambleType; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifi.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifi.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cc995fce3f01cc11747d23a54b11d87d3d7bdc34 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifi.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifi { + @PropagateAllowBlocking android.hardware.wifi.IWifiChip getChip(int chipId); + int[] getChipIds(); + boolean isStarted(); + void registerEventCallback(in android.hardware.wifi.IWifiEventCallback callback); + void start(); + void stop(); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiApIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiApIface.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e71dde40fddc4d4462c54aa051ce9252967805c1 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiApIface.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiApIface { + String getName(); + String[] getBridgedInstances(); + byte[6] getFactoryMacAddress(); + void setCountryCode(in byte[2] code); + void resetToFactoryMacAddress(); + void setMacAddress(in byte[6] mac); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChip.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChip.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5ed7517766717633f43c408539a814fab18a3d65 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChip.aidl @@ -0,0 +1,183 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiChip { + void configureChip(in int modeId); + @PropagateAllowBlocking android.hardware.wifi.IWifiApIface createApIface(); + @PropagateAllowBlocking android.hardware.wifi.IWifiApIface createBridgedApIface(); + @PropagateAllowBlocking android.hardware.wifi.IWifiNanIface createNanIface(); + @PropagateAllowBlocking android.hardware.wifi.IWifiP2pIface createP2pIface(); + @PropagateAllowBlocking android.hardware.wifi.IWifiRttController createRttController(in android.hardware.wifi.IWifiStaIface boundIface); + @PropagateAllowBlocking android.hardware.wifi.IWifiStaIface createStaIface(); + void enableDebugErrorAlerts(in boolean enable); + void flushRingBufferToFile(); + void forceDumpToDebugRingBuffer(in String ringName); + @PropagateAllowBlocking android.hardware.wifi.IWifiApIface getApIface(in String ifname); + String[] getApIfaceNames(); + android.hardware.wifi.IWifiChip.ChipMode[] getAvailableModes(); + int getFeatureSet(); + android.hardware.wifi.WifiDebugHostWakeReasonStats getDebugHostWakeReasonStats(); + android.hardware.wifi.WifiDebugRingBufferStatus[] getDebugRingBuffersStatus(); + int getId(); + int getMode(); + @PropagateAllowBlocking android.hardware.wifi.IWifiNanIface getNanIface(in String ifname); + String[] getNanIfaceNames(); + @PropagateAllowBlocking android.hardware.wifi.IWifiP2pIface getP2pIface(in String ifname); + String[] getP2pIfaceNames(); + @PropagateAllowBlocking android.hardware.wifi.IWifiStaIface getStaIface(in String ifname); + String[] getStaIfaceNames(); + android.hardware.wifi.WifiRadioCombination[] getSupportedRadioCombinations(); + android.hardware.wifi.WifiChipCapabilities getWifiChipCapabilities(); + android.hardware.wifi.WifiUsableChannel[] getUsableChannels(in android.hardware.wifi.WifiBand band, in int ifaceModeMask, in int filterMask); + void setAfcChannelAllowance(in android.hardware.wifi.AfcChannelAllowance afcChannelAllowance); + void registerEventCallback(in android.hardware.wifi.IWifiChipEventCallback callback); + void removeApIface(in String ifname); + void removeIfaceInstanceFromBridgedApIface(in String brIfaceName, in String ifaceInstanceName); + void removeNanIface(in String ifname); + void removeP2pIface(in String ifname); + void removeStaIface(in String ifname); + android.hardware.wifi.IWifiChip.ChipDebugInfo requestChipDebugInfo(); + byte[] requestDriverDebugDump(); + byte[] requestFirmwareDebugDump(); + void resetTxPowerScenario(); + void selectTxPowerScenario(in android.hardware.wifi.IWifiChip.TxPowerScenario scenario); + void setCoexUnsafeChannels(in android.hardware.wifi.IWifiChip.CoexUnsafeChannel[] unsafeChannels, in int restrictions); + void setCountryCode(in byte[2] code); + void setLatencyMode(in android.hardware.wifi.IWifiChip.LatencyMode mode); + void setMultiStaPrimaryConnection(in String ifName); + void setMultiStaUseCase(in android.hardware.wifi.IWifiChip.MultiStaUseCase useCase); + void startLoggingToDebugRingBuffer(in String ringName, in android.hardware.wifi.WifiDebugRingBufferVerboseLevel verboseLevel, in int maxIntervalInSec, in int minDataSizeInBytes); + void stopLoggingToDebugRingBuffer(); + void triggerSubsystemRestart(); + void enableStaChannelForPeerNetwork(in int channelCategoryEnableFlag); + void setMloMode(in android.hardware.wifi.IWifiChip.ChipMloMode mode); + @PropagateAllowBlocking android.hardware.wifi.IWifiApIface createApOrBridgedApIface(in android.hardware.wifi.IfaceConcurrencyType iface, in android.hardware.wifi.common.OuiKeyedData[] vendorData); + void setVoipMode(in android.hardware.wifi.IWifiChip.VoipMode mode); + const int NO_POWER_CAP_CONSTANT = 0x7FFFFFFF; + @Backing(type="int") @VintfStability + enum FeatureSetMask { + SET_TX_POWER_LIMIT = (1 << 0) /* 1 */, + D2D_RTT = (1 << 1) /* 2 */, + D2AP_RTT = (1 << 2) /* 4 */, + USE_BODY_HEAD_SAR = (1 << 3) /* 8 */, + SET_LATENCY_MODE = (1 << 4) /* 16 */, + P2P_RAND_MAC = (1 << 5) /* 32 */, + WIGIG = (1 << 6) /* 64 */, + SET_AFC_CHANNEL_ALLOWANCE = (1 << 7) /* 128 */, + T2LM_NEGOTIATION = (1 << 8) /* 256 */, + SET_VOIP_MODE = (1 << 9) /* 512 */, + } + @VintfStability + parcelable ChipConcurrencyCombinationLimit { + android.hardware.wifi.IfaceConcurrencyType[] types; + int maxIfaces; + } + @VintfStability + parcelable ChipConcurrencyCombination { + android.hardware.wifi.IWifiChip.ChipConcurrencyCombinationLimit[] limits; + } + @VintfStability + parcelable ChipDebugInfo { + String driverDescription; + String firmwareDescription; + } + @VintfStability + parcelable ChipIfaceCombinationLimit { + android.hardware.wifi.IfaceType[] types; + int maxIfaces; + } + @VintfStability + parcelable ChipIfaceCombination { + android.hardware.wifi.IWifiChip.ChipIfaceCombinationLimit[] limits; + } + @VintfStability + parcelable ChipMode { + int id; + android.hardware.wifi.IWifiChip.ChipConcurrencyCombination[] availableCombinations; + } + @Backing(type="int") @VintfStability + enum CoexRestriction { + WIFI_DIRECT = (1 << 0) /* 1 */, + SOFTAP = (1 << 1) /* 2 */, + WIFI_AWARE = (1 << 2) /* 4 */, + } + @VintfStability + parcelable CoexUnsafeChannel { + android.hardware.wifi.WifiBand band; + int channel; + int powerCapDbm; + } + @Backing(type="int") @VintfStability + enum LatencyMode { + NORMAL = 0, + LOW = 1, + } + @Backing(type="byte") @VintfStability + enum MultiStaUseCase { + DUAL_STA_TRANSIENT_PREFER_PRIMARY = 0, + DUAL_STA_NON_TRANSIENT_UNBIASED = 1, + } + @Backing(type="int") @VintfStability + enum TxPowerScenario { + VOICE_CALL = 0, + ON_HEAD_CELL_OFF = 1, + ON_HEAD_CELL_ON = 2, + ON_BODY_CELL_OFF = 3, + ON_BODY_CELL_ON = 4, + } + @Backing(type="int") @VintfStability + enum UsableChannelFilter { + CELLULAR_COEXISTENCE = (1 << 0) /* 1 */, + CONCURRENCY = (1 << 1) /* 2 */, + NAN_INSTANT_MODE = (1 << 2) /* 4 */, + } + @Backing(type="int") @VintfStability + enum VoipMode { + OFF = 0, + VOICE = 1, + } + @Backing(type="int") @VintfStability + enum ChannelCategoryMask { + INDOOR_CHANNEL = (1 << 0) /* 1 */, + DFS_CHANNEL = (1 << 1) /* 2 */, + } + @Backing(type="int") @VintfStability + enum ChipMloMode { + DEFAULT = 0, + LOW_LATENCY = 1, + HIGH_THROUGHPUT = 2, + LOW_POWER = 3, + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChipEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChipEventCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3fd8533c44c755cfc8779089a8da2778a892e3d6 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiChipEventCallback.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiChipEventCallback { + oneway void onChipReconfigureFailure(in android.hardware.wifi.WifiStatusCode status); + oneway void onChipReconfigured(in int modeId); + oneway void onDebugErrorAlert(in int errorCode, in byte[] debugData); + oneway void onDebugRingBufferDataAvailable(in android.hardware.wifi.WifiDebugRingBufferStatus status, in byte[] data); + oneway void onIfaceAdded(in android.hardware.wifi.IfaceType type, in String name); + oneway void onIfaceRemoved(in android.hardware.wifi.IfaceType type, in String name); + oneway void onRadioModeChange(in android.hardware.wifi.IWifiChipEventCallback.RadioModeInfo[] radioModeInfos); + @VintfStability + parcelable IfaceInfo { + String name; + int channel; + } + @VintfStability + parcelable RadioModeInfo { + int radioId; + android.hardware.wifi.WifiBand bandInfo; + android.hardware.wifi.IWifiChipEventCallback.IfaceInfo[] ifaceInfos; + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiEventCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..00e5cb6e094c12b54789e74e99d80e30f54b3cfe --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiEventCallback.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiEventCallback { + oneway void onFailure(in android.hardware.wifi.WifiStatusCode status); + oneway void onStart(); + oneway void onStop(); + oneway void onSubsystemRestart(in android.hardware.wifi.WifiStatusCode status); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIface.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0e2f90fbc06794ef2b58969109b7ae7020b7708b --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIface.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiNanIface { + String getName(); + void configRequest(in char cmdId, in android.hardware.wifi.NanConfigRequest msg1, in android.hardware.wifi.NanConfigRequestSupplemental msg2); + void createDataInterfaceRequest(in char cmdId, in String ifaceName); + void deleteDataInterfaceRequest(in char cmdId, in String ifaceName); + void disableRequest(in char cmdId); + void enableRequest(in char cmdId, in android.hardware.wifi.NanEnableRequest msg1, in android.hardware.wifi.NanConfigRequestSupplemental msg2); + void getCapabilitiesRequest(in char cmdId); + void initiateDataPathRequest(in char cmdId, in android.hardware.wifi.NanInitiateDataPathRequest msg); + void registerEventCallback(in android.hardware.wifi.IWifiNanIfaceEventCallback callback); + void respondToDataPathIndicationRequest(in char cmdId, in android.hardware.wifi.NanRespondToDataPathIndicationRequest msg); + void startPublishRequest(in char cmdId, in android.hardware.wifi.NanPublishRequest msg); + void startSubscribeRequest(in char cmdId, in android.hardware.wifi.NanSubscribeRequest msg); + void stopPublishRequest(in char cmdId, in byte sessionId); + void stopSubscribeRequest(in char cmdId, in byte sessionId); + void terminateDataPathRequest(in char cmdId, in int ndpInstanceId); + void suspendRequest(in char cmdId, in byte sessionId); + void resumeRequest(in char cmdId, in byte sessionId); + void transmitFollowupRequest(in char cmdId, in android.hardware.wifi.NanTransmitFollowupRequest msg); + void initiatePairingRequest(in char cmdId, in android.hardware.wifi.NanPairingRequest msg); + void respondToPairingIndicationRequest(in char cmdId, in android.hardware.wifi.NanRespondToPairingIndicationRequest msg); + void initiateBootstrappingRequest(in char cmdId, in android.hardware.wifi.NanBootstrappingRequest msg); + void respondToBootstrappingIndicationRequest(in char cmdId, in android.hardware.wifi.NanBootstrappingResponse msg); + void terminatePairingRequest(in char cmdId, in int pairingInstanceId); + const int MIN_DATA_PATH_CONFIG_PASSPHRASE_LENGTH = 8; + const int MAX_DATA_PATH_CONFIG_PASSPHRASE_LENGTH = 63; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8c443309ee73c66007a4c851b5aefb1e7dbb00b4 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiNanIfaceEventCallback { + oneway void eventClusterEvent(in android.hardware.wifi.NanClusterEventInd event); + oneway void eventDataPathConfirm(in android.hardware.wifi.NanDataPathConfirmInd event); + oneway void eventDataPathRequest(in android.hardware.wifi.NanDataPathRequestInd event); + oneway void eventDataPathScheduleUpdate(in android.hardware.wifi.NanDataPathScheduleUpdateInd event); + oneway void eventDataPathTerminated(in int ndpInstanceId); + oneway void eventDisabled(in android.hardware.wifi.NanStatus status); + oneway void eventFollowupReceived(in android.hardware.wifi.NanFollowupReceivedInd event); + oneway void eventMatch(in android.hardware.wifi.NanMatchInd event); + oneway void eventMatchExpired(in byte discoverySessionId, in int peerId); + oneway void eventPublishTerminated(in byte sessionId, in android.hardware.wifi.NanStatus status); + oneway void eventSubscribeTerminated(in byte sessionId, in android.hardware.wifi.NanStatus status); + oneway void eventTransmitFollowup(in char id, in android.hardware.wifi.NanStatus status); + oneway void eventSuspensionModeChanged(in android.hardware.wifi.NanSuspensionModeChangeInd event); + oneway void notifyCapabilitiesResponse(in char id, in android.hardware.wifi.NanStatus status, in android.hardware.wifi.NanCapabilities capabilities); + oneway void notifyConfigResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyCreateDataInterfaceResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyDeleteDataInterfaceResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyDisableResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyEnableResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyInitiateDataPathResponse(in char id, in android.hardware.wifi.NanStatus status, in int ndpInstanceId); + oneway void notifyRespondToDataPathIndicationResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyStartPublishResponse(in char id, in android.hardware.wifi.NanStatus status, in byte sessionId); + oneway void notifyStartSubscribeResponse(in char id, in android.hardware.wifi.NanStatus status, in byte sessionId); + oneway void notifyStopPublishResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyStopSubscribeResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyTerminateDataPathResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifySuspendResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyResumeResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyTransmitFollowupResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void eventPairingRequest(in android.hardware.wifi.NanPairingRequestInd event); + oneway void eventPairingConfirm(in android.hardware.wifi.NanPairingConfirmInd event); + oneway void notifyInitiatePairingResponse(in char id, in android.hardware.wifi.NanStatus status, in int pairingInstanceId); + oneway void notifyRespondToPairingIndicationResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void eventBootstrappingRequest(in android.hardware.wifi.NanBootstrappingRequestInd event); + oneway void eventBootstrappingConfirm(in android.hardware.wifi.NanBootstrappingConfirmInd event); + oneway void notifyInitiateBootstrappingResponse(in char id, in android.hardware.wifi.NanStatus status, in int bootstrappingInstanceId); + oneway void notifyRespondToBootstrappingIndicationResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyTerminatePairingResponse(in char id, in android.hardware.wifi.NanStatus status); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiP2pIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiP2pIface.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5e9948e0b77eeba6029e0eff7c8b61c554166663 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiP2pIface.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiP2pIface { + String getName(); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttController.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttController.aidl new file mode 100644 index 0000000000000000000000000000000000000000..730a055eeb4b83990608637dd5b0144016bb112d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttController.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiRttController { + void disableResponder(in int cmdId); + void enableResponder(in int cmdId, in android.hardware.wifi.WifiChannelInfo channelHint, in int maxDurationInSeconds, in android.hardware.wifi.RttResponder info); + android.hardware.wifi.IWifiStaIface getBoundIface(); + android.hardware.wifi.RttCapabilities getCapabilities(); + android.hardware.wifi.RttResponder getResponderInfo(); + void rangeCancel(in int cmdId, in android.hardware.wifi.MacAddress[] addrs); + void rangeRequest(in int cmdId, in android.hardware.wifi.RttConfig[] rttConfigs); + void registerEventCallback(in android.hardware.wifi.IWifiRttControllerEventCallback callback); + void setLci(in int cmdId, in android.hardware.wifi.RttLciInformation lci); + void setLcr(in int cmdId, in android.hardware.wifi.RttLcrInformation lcr); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttControllerEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttControllerEventCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a6a33fc049c50de29ab62576276fb2f412576356 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiRttControllerEventCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiRttControllerEventCallback { + oneway void onResults(in int cmdId, in android.hardware.wifi.RttResult[] results); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIface.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ccb7876513769d257cacaf8e32a842704969405f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIface.aidl @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiStaIface { + String getName(); + void configureRoaming(in android.hardware.wifi.StaRoamingConfig config); + void disableLinkLayerStatsCollection(); + void enableLinkLayerStatsCollection(in boolean debug); + void enableNdOffload(in boolean enable); + android.hardware.wifi.StaApfPacketFilterCapabilities getApfPacketFilterCapabilities(); + android.hardware.wifi.StaBackgroundScanCapabilities getBackgroundScanCapabilities(); + int getFeatureSet(); + android.hardware.wifi.WifiDebugRxPacketFateReport[] getDebugRxPacketFates(); + android.hardware.wifi.WifiDebugTxPacketFateReport[] getDebugTxPacketFates(); + byte[6] getFactoryMacAddress(); + android.hardware.wifi.StaLinkLayerStats getLinkLayerStats(); + android.hardware.wifi.StaRoamingCapabilities getRoamingCapabilities(); + void installApfPacketFilter(in byte[] program); + byte[] readApfPacketFilterData(); + void registerEventCallback(in android.hardware.wifi.IWifiStaIfaceEventCallback callback); + void setMacAddress(in byte[6] mac); + void setRoamingState(in android.hardware.wifi.StaRoamingState state); + void setScanMode(in boolean enable); + void startBackgroundScan(in int cmdId, in android.hardware.wifi.StaBackgroundScanParameters params); + void startDebugPacketFateMonitoring(); + void startRssiMonitoring(in int cmdId, in int maxRssi, in int minRssi); + void startSendingKeepAlivePackets(in int cmdId, in byte[] ipPacketData, in char etherType, in byte[6] srcAddress, in byte[6] dstAddress, in int periodInMs); + void stopBackgroundScan(in int cmdId); + void stopRssiMonitoring(in int cmdId); + void stopSendingKeepAlivePackets(in int cmdId); + void setDtimMultiplier(in int multiplier); + android.hardware.wifi.CachedScanData getCachedScanData(); + android.hardware.wifi.TwtCapabilities twtGetCapabilities(); + void twtSessionSetup(in int cmdId, in android.hardware.wifi.TwtRequest twtRequest); + void twtSessionUpdate(in int cmdId, in int sessionId, in android.hardware.wifi.TwtRequest twtRequest); + void twtSessionSuspend(in int cmdId, in int sessionId); + void twtSessionResume(in int cmdId, in int sessionId); + void twtSessionTeardown(in int cmdId, in int sessionId); + void twtSessionGetStats(in int cmdId, in int sessionId); + @Backing(type="int") @VintfStability + enum FeatureSetMask { + APF = (1 << 0) /* 1 */, + BACKGROUND_SCAN = (1 << 1) /* 2 */, + LINK_LAYER_STATS = (1 << 2) /* 4 */, + RSSI_MONITOR = (1 << 3) /* 8 */, + CONTROL_ROAMING = (1 << 4) /* 16 */, + PROBE_IE_ALLOWLIST = (1 << 5) /* 32 */, + SCAN_RAND = (1 << 6) /* 64 */, + STA_5G = (1 << 7) /* 128 */, + HOTSPOT = (1 << 8) /* 256 */, + PNO = (1 << 9) /* 512 */, + TDLS = (1 << 10) /* 1024 */, + TDLS_OFFCHANNEL = (1 << 11) /* 2048 */, + ND_OFFLOAD = (1 << 12) /* 4096 */, + KEEP_ALIVE = (1 << 13) /* 8192 */, + ROAMING_MODE_CONTROL = (1 << 14) /* 16384 */, + CACHED_SCAN_DATA = (1 << 15) /* 32768 */, + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..629ca3d922a71fa9ac09b569605f208237eac85c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +interface IWifiStaIfaceEventCallback { + oneway void onBackgroundFullScanResult(in int cmdId, in int bucketsScanned, in android.hardware.wifi.StaScanResult result); + oneway void onBackgroundScanFailure(in int cmdId); + oneway void onBackgroundScanResults(in int cmdId, in android.hardware.wifi.StaScanData[] scanDatas); + oneway void onRssiThresholdBreached(in int cmdId, in byte[6] currBssid, in int currRssi); + oneway void onTwtFailure(in int cmdId, in android.hardware.wifi.IWifiStaIfaceEventCallback.TwtErrorCode error); + oneway void onTwtSessionCreate(in int cmdId, in android.hardware.wifi.TwtSession twtSession); + oneway void onTwtSessionUpdate(in int cmdId, in android.hardware.wifi.TwtSession twtSession); + oneway void onTwtSessionTeardown(in int cmdId, in int twtSessionId, in android.hardware.wifi.IWifiStaIfaceEventCallback.TwtTeardownReasonCode reasonCode); + oneway void onTwtSessionStats(in int cmdId, in int twtSessionId, in android.hardware.wifi.TwtSessionStats twtSessionStats); + oneway void onTwtSessionSuspend(in int cmdId, in int twtSessionId); + oneway void onTwtSessionResume(in int cmdId, in int twtSessionId); + @Backing(type="byte") @VintfStability + enum TwtErrorCode { + FAILURE_UNKNOWN, + ALREADY_RESUMED, + ALREADY_SUSPENDED, + INVALID_PARAMS, + MAX_SESSION_REACHED, + NOT_AVAILABLE, + NOT_SUPPORTED, + PEER_NOT_SUPPORTED, + PEER_REJECTED, + TIMEOUT, + } + @Backing(type="byte") @VintfStability + enum TwtTeardownReasonCode { + UNKNOWN, + LOCALLY_REQUESTED, + INTERNALLY_INITIATED, + PEER_INITIATED, + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceConcurrencyType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceConcurrencyType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d584423f5a811c56643e7fbba47f61ac0e88c657 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceConcurrencyType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum IfaceConcurrencyType { + STA, + AP, + AP_BRIDGED, + P2P, + NAN_IFACE, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..67022dfdff63203d017804c168052bcfecd865fa --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/IfaceType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum IfaceType { + STA, + AP, + P2P, + NAN_IFACE, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/MacAddress.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/MacAddress.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c4a06136ec65f621d7d6ecd812f05d9b7f38fd10 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/MacAddress.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable MacAddress { + byte[6] data; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandIndex.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandIndex.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3f1ea5e444688af0e546d66767bd2300f7945c87 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandIndex.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanBandIndex { + NAN_BAND_24GHZ = 0, + NAN_BAND_5GHZ, + NAN_BAND_6GHZ = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandSpecificConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandSpecificConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..57540b3835c06ca9957509567b74b3937bbdf68e --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBandSpecificConfig.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanBandSpecificConfig { + byte rssiClose; + byte rssiMiddle; + byte rssiCloseProximity; + char dwellTimeMs; + char scanPeriodSec; + boolean validDiscoveryWindowIntervalVal; + byte discoveryWindowIntervalVal; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingConfirmInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingConfirmInd.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5ab8dcd21365136643d941d3d44a9aa2868ab66f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingConfirmInd.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanBootstrappingConfirmInd { + int bootstrappingInstanceId; + android.hardware.wifi.NanBootstrappingResponseCode responseCode; + android.hardware.wifi.NanStatus reasonCode; + int comeBackDelay; + byte[] cookie; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingMethod.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingMethod.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6ff62b2f520753f55121c266b3aed8b27f545fe5 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingMethod.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanBootstrappingMethod { + BOOTSTRAPPING_OPPORTUNISTIC_MASK = (1 << 0) /* 1 */, + BOOTSTRAPPING_PIN_CODE_DISPLAY_MASK = (1 << 1) /* 2 */, + BOOTSTRAPPING_PASSPHRASE_DISPLAY_MASK = (1 << 2) /* 4 */, + BOOTSTRAPPING_QR_DISPLAY_MASK = (1 << 3) /* 8 */, + BOOTSTRAPPING_NFC_TAG_MASK = (1 << 4) /* 16 */, + BOOTSTRAPPING_PIN_CODE_KEYPAD_MASK = (1 << 5) /* 32 */, + BOOTSTRAPPING_PASSPHRASE_KEYPAD_MASK = (1 << 6) /* 64 */, + BOOTSTRAPPING_QR_SCAN_MASK = (1 << 7) /* 128 */, + BOOTSTRAPPING_NFC_READER_MASK = (1 << 8) /* 256 */, + BOOTSTRAPPING_SERVICE_MANAGED_MASK = (1 << 14) /* 16384 */, + BOOTSTRAPPING_HANDSHAKE_SHIP_MASK = (1 << 15) /* 32768 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b5f78b06b57bc817ec67d1c4585d7f7643df2570 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequest.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanBootstrappingRequest { + int peerId; + byte[6] peerDiscMacAddr; + android.hardware.wifi.NanBootstrappingMethod requestBootstrappingMethod; + byte[] cookie; + boolean isComeback; + byte discoverySessionId; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequestInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequestInd.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a4398e9310895405b295264f42915e3b77f3974d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingRequestInd.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanBootstrappingRequestInd { + byte discoverySessionId; + int peerId; + byte[6] peerDiscMacAddr; + int bootstrappingInstanceId; + android.hardware.wifi.NanBootstrappingMethod requestBootstrappingMethod; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponse.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponse.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7b17493d884c1e28194498a0ed0f7aa57752f35d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponse.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanBootstrappingResponse { + int bootstrappingInstanceId; + boolean acceptRequest; + byte discoverySessionId; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponseCode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponseCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a3e9e4d2aec8ed42cfd63e67442273f323b1cbe0 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanBootstrappingResponseCode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanBootstrappingResponseCode { + NAN_BOOTSTRAPPING_REQUEST_ACCEPT = 0, + NAN_BOOTSTRAPPING_REQUEST_REJECT, + NAN_BOOTSTRAPPING_REQUEST_COMEBACK, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a30893a0c2ba6f2ca4f832b09bb8fd312da29757 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCapabilities.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanCapabilities { + int maxConcurrentClusters; + int maxPublishes; + int maxSubscribes; + int maxServiceNameLen; + int maxMatchFilterLen; + int maxTotalMatchFilterLen; + int maxServiceSpecificInfoLen; + int maxExtendedServiceSpecificInfoLen; + int maxNdiInterfaces; + int maxNdpSessions; + int maxAppInfoLen; + int maxQueuedTransmitFollowupMsgs; + int maxSubscribeInterfaceAddresses; + int supportedCipherSuites; + boolean instantCommunicationModeSupportFlag; + boolean supports6g; + boolean supportsHe; + boolean supportsPairing; + boolean supportsSetClusterId; + boolean supportsSuspension; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCipherSuiteType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCipherSuiteType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6f3158e670d8477eb9bf19bb74fcc3b09f76c0f6 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanCipherSuiteType.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanCipherSuiteType { + NONE = 0, + SHARED_KEY_128_MASK = (1 << 0) /* 1 */, + SHARED_KEY_256_MASK = (1 << 1) /* 2 */, + PUBLIC_KEY_2WDH_128_MASK = (1 << 2) /* 4 */, + PUBLIC_KEY_2WDH_256_MASK = (1 << 3) /* 8 */, + PUBLIC_KEY_PASN_128_MASK = (1 << 6) /* 64 */, + PUBLIC_KEY_PASN_256_MASK = (1 << 7) /* 128 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventInd.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7a3ff8151afe0d0926febd08f139307b53b90d4c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventInd.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanClusterEventInd { + android.hardware.wifi.NanClusterEventType eventType; + byte[6] addr; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6c20543d8669a0381d1abed4fe55fbb1b99c7caa --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanClusterEventType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanClusterEventType { + DISCOVERY_MAC_ADDRESS_CHANGED = 0, + STARTED_CLUSTER, + JOINED_CLUSTER, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a3693d64983a0753867a6d4c21b6a97373542ea7 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequest.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanConfigRequest { + byte masterPref; + boolean disableDiscoveryAddressChangeIndication; + boolean disableStartedClusterIndication; + boolean disableJoinedClusterIndication; + boolean includePublishServiceIdsInBeacon; + byte numberOfPublishServiceIdsInBeacon; + boolean includeSubscribeServiceIdsInBeacon; + byte numberOfSubscribeServiceIdsInBeacon; + char rssiWindowSize; + int macAddressRandomizationIntervalSec; + android.hardware.wifi.NanBandSpecificConfig[3] bandSpecificConfig; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequestSupplemental.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequestSupplemental.aidl new file mode 100644 index 0000000000000000000000000000000000000000..99f2af771e48d5010057a29d60dd52c84f80a7aa --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanConfigRequestSupplemental.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanConfigRequestSupplemental { + int discoveryBeaconIntervalMs; + int numberOfSpatialStreamsInDiscovery; + boolean enableDiscoveryWindowEarlyTermination; + boolean enableRanging; + boolean enableInstantCommunicationMode; + int instantModeChannel; + int clusterId; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelCfg.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelCfg.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4233c3286383b9f3ba6549b2e4d7552af1008b52 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelCfg.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanDataPathChannelCfg { + CHANNEL_NOT_REQUESTED = 0, + REQUEST_CHANNEL_SETUP, + FORCE_CHANNEL_SETUP, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d111db784cbfcc24352f212b4c3d89f97320af8a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathChannelInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDataPathChannelInfo { + int channelFreq; + android.hardware.wifi.WifiChannelWidthInMhz channelBandwidth; + int numSpatialStreams; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathConfirmInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathConfirmInd.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2e1e2caecee852bea93bb4a4bd4011de2288b3a4 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathConfirmInd.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDataPathConfirmInd { + int ndpInstanceId; + boolean dataPathSetupSuccess; + byte[6] peerNdiMacAddr; + byte[] appInfo; + android.hardware.wifi.NanStatus status; + android.hardware.wifi.NanDataPathChannelInfo[] channelInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathRequestInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathRequestInd.aidl new file mode 100644 index 0000000000000000000000000000000000000000..74d5b73abadbaf8a3bf339cb9d77cde507b48e40 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathRequestInd.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDataPathRequestInd { + byte discoverySessionId; + byte[6] peerDiscMacAddr; + int ndpInstanceId; + boolean securityRequired; + byte[] appInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5fabf5539c509970dfb8b798856402aa7c6cffe5 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDataPathScheduleUpdateInd { + byte[6] peerDiscoveryAddress; + android.hardware.wifi.NanDataPathChannelInfo[] channelInfo; + int[] ndpInstanceIds; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..48e9501b3e57fcdf527da9b436ca4bce3a3d9d8f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityConfig.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDataPathSecurityConfig { + android.hardware.wifi.NanDataPathSecurityType securityType; + android.hardware.wifi.NanCipherSuiteType cipherType; + byte[32] pmk; + byte[] passphrase; + byte[16] scid; + boolean enable16ReplyCountersForTksa; + boolean enable16ReplyCountersForGtksa; + boolean supportGtkAndIgtk; + boolean supportBigtksa; + boolean enableNcsBip256; + boolean requiresEnhancedFrameProtection; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cb7904d1807c59bfcdf48f93b6a8f9887ea316b1 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDataPathSecurityType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanDataPathSecurityType { + OPEN, + PMK, + PASSPHRASE, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDebugConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDebugConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b84d8912216a037bc1bb914d593891c9b776679d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDebugConfig.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDebugConfig { + boolean validClusterIdVals; + char clusterIdBottomRangeVal; + char clusterIdTopRangeVal; + boolean validIntfAddrVal; + byte[6] intfAddrVal; + boolean validOuiVal; + int ouiVal; + boolean validRandomFactorForceVal; + byte randomFactorForceVal; + boolean validHopCountForceVal; + byte hopCountForceVal; + boolean validDiscoveryChannelVal; + int[3] discoveryChannelMhzVal; + boolean validUseBeaconsInBandVal; + boolean[3] useBeaconsInBandVal; + boolean validUseSdfInBandVal; + boolean[3] useSdfInBandVal; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDiscoveryCommonConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDiscoveryCommonConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..96d940ae313c5b8fe63851164fdbd72c1ef7a433 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanDiscoveryCommonConfig.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanDiscoveryCommonConfig { + byte sessionId; + char ttlSec; + char discoveryWindowPeriod; + byte discoveryCount; + byte[] serviceName; + android.hardware.wifi.NanMatchAlg discoveryMatchIndicator; + byte[] serviceSpecificInfo; + byte[] extendedServiceSpecificInfo; + byte[] rxMatchFilter; + byte[] txMatchFilter; + boolean useRssiThreshold; + boolean disableDiscoveryTerminationIndication; + boolean disableMatchExpirationIndication; + boolean disableFollowupReceivedIndication; + android.hardware.wifi.NanDataPathSecurityConfig securityConfig; + boolean rangingRequired; + int rangingIntervalMs; + int configRangingIndications; + char distanceIngressCm; + char distanceEgressCm; + boolean enableSessionSuspendability; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanEnableRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanEnableRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..eaa009cfd1c7fa704106ba9093f5bab71cbf0dc4 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanEnableRequest.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanEnableRequest { + boolean[3] operateInBand; + byte hopCountMax; + android.hardware.wifi.NanConfigRequest configParams; + android.hardware.wifi.NanDebugConfig debugConfigs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanFollowupReceivedInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanFollowupReceivedInd.aidl new file mode 100644 index 0000000000000000000000000000000000000000..743ad9d2277deb854f22a33526a46588d93a07d9 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanFollowupReceivedInd.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanFollowupReceivedInd { + byte discoverySessionId; + int peerId; + byte[6] addr; + boolean receivedInFaw; + byte[] serviceSpecificInfo; + byte[] extendedServiceSpecificInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanIdentityResolutionAttribute.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanIdentityResolutionAttribute.aidl new file mode 100644 index 0000000000000000000000000000000000000000..843107ea40054b2b4bd456108199e8ca779750b9 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanIdentityResolutionAttribute.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanIdentityResolutionAttribute { + byte[8] nonce; + byte[8] tag; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanInitiateDataPathRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanInitiateDataPathRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..740a14078070fdffd39e5544f4187b2d7953abb7 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanInitiateDataPathRequest.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanInitiateDataPathRequest { + int peerId; + byte[6] peerDiscMacAddr; + android.hardware.wifi.NanDataPathChannelCfg channelRequestType; + int channel; + String ifaceName; + android.hardware.wifi.NanDataPathSecurityConfig securityConfig; + byte[] appInfo; + byte[] serviceNameOutOfBand; + byte discoverySessionId; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchAlg.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchAlg.aidl new file mode 100644 index 0000000000000000000000000000000000000000..93ac26b25f78dcec71cef9ae8733aff2854e8679 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchAlg.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanMatchAlg { + MATCH_ONCE = 0, + MATCH_CONTINUOUS, + MATCH_NEVER, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchInd.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4acc7732f3c07dbeb7800a0a8426a7d2f3cf87c3 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanMatchInd.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanMatchInd { + byte discoverySessionId; + int peerId; + byte[6] addr; + byte[] serviceSpecificInfo; + byte[] extendedServiceSpecificInfo; + byte[] matchFilter; + boolean matchOccurredInBeaconFlag; + boolean outOfResourceFlag; + byte rssiValue; + android.hardware.wifi.NanCipherSuiteType peerCipherType; + boolean peerRequiresSecurityEnabledInNdp; + boolean peerRequiresRanging; + int rangingMeasurementInMm; + int rangingIndicationType; + byte[] scid; + android.hardware.wifi.NanPairingConfig peerPairingConfig; + android.hardware.wifi.NanIdentityResolutionAttribute peerNira; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingAkm.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingAkm.aidl new file mode 100644 index 0000000000000000000000000000000000000000..05bbaee0d58a9267de67b66672c636bdb0405c47 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingAkm.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanPairingAkm { + SAE = 0, + PASN = 1, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1c04a96d6c1dfd7d32efd67493e794b51c7d9c73 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfig.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanPairingConfig { + boolean enablePairingSetup; + boolean enablePairingCache; + boolean enablePairingVerification; + int supportedBootstrappingMethods; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfirmInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfirmInd.aidl new file mode 100644 index 0000000000000000000000000000000000000000..699ecdce778cffcad407562a7dc439f35ef4ddf0 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingConfirmInd.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanPairingConfirmInd { + int pairingInstanceId; + boolean pairingSuccess; + android.hardware.wifi.NanStatus status; + android.hardware.wifi.NanPairingRequestType requestType; + boolean enablePairingCache; + android.hardware.wifi.NpkSecurityAssociation npksa; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..121b038b5409092494d7d678a7896869adef07d5 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequest.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanPairingRequest { + int peerId; + byte[6] peerDiscMacAddr; + android.hardware.wifi.NanPairingRequestType requestType; + boolean enablePairingCache; + byte[16] pairingIdentityKey; + android.hardware.wifi.NanPairingSecurityConfig securityConfig; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestInd.aidl new file mode 100644 index 0000000000000000000000000000000000000000..57072c04a4f3ea455140b5813fe6a4cd88fdcef9 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestInd.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanPairingRequestInd { + byte discoverySessionId; + int peerId; + byte[6] peerDiscMacAddr; + int pairingInstanceId; + android.hardware.wifi.NanPairingRequestType requestType; + boolean enablePairingCache; + android.hardware.wifi.NanIdentityResolutionAttribute peerNira; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3488340bf458e2c0a11181b8484cf11c2291c293 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingRequestType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanPairingRequestType { + NAN_PAIRING_SETUP = 0, + NAN_PAIRING_VERIFICATION, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1a6a13c550ddbd39f1fe7420034f48cb54eea776 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityConfig.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanPairingSecurityConfig { + android.hardware.wifi.NanPairingSecurityType securityType; + byte[32] pmk; + byte[] passphrase; + android.hardware.wifi.NanPairingAkm akm; + android.hardware.wifi.NanCipherSuiteType cipherType; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9f6c774021b0ec60a1e0cb0c8e0b67fd42c8e2c8 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPairingSecurityType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanPairingSecurityType { + OPPORTUNISTIC, + PMK, + PASSPHRASE, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bdc83579ad9bb36231923bdfec4caa2bfd74c12e --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishRequest.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanPublishRequest { + android.hardware.wifi.NanDiscoveryCommonConfig baseConfigs; + android.hardware.wifi.NanPublishType publishType; + android.hardware.wifi.NanTxType txType; + boolean autoAcceptDataPathRequests; + android.hardware.wifi.NanPairingConfig pairingConfig; + byte[16] identityKey; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..30dffb29d1f4a02742ba3338b96acc78ce5e3b6e --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanPublishType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanPublishType { + UNSOLICITED = 0, + SOLICITED, + UNSOLICITED_SOLICITED, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRangingIndication.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRangingIndication.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cf72dcea23a8bb72b5a64a8a1c3b0f901b81cb9c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRangingIndication.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanRangingIndication { + CONTINUOUS_INDICATION_MASK = (1 << 0) /* 1 */, + INGRESS_MET_MASK = (1 << 1) /* 2 */, + EGRESS_MET_MASK = (1 << 2) /* 4 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0f873b5ea81f5d4fed996068df0df9991afc4fc9 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanRespondToDataPathIndicationRequest { + boolean acceptRequest; + int ndpInstanceId; + String ifaceName; + android.hardware.wifi.NanDataPathSecurityConfig securityConfig; + byte[] appInfo; + byte[] serviceNameOutOfBand; + byte discoverySessionId; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToPairingIndicationRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToPairingIndicationRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..da81c394b7b5b5794b54021b32bcb58586fad3dd --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanRespondToPairingIndicationRequest.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanRespondToPairingIndicationRequest { + boolean acceptRequest; + int pairingInstanceId; + android.hardware.wifi.NanPairingRequestType requestType; + boolean enablePairingCache; + byte[16] pairingIdentityKey; + android.hardware.wifi.NanPairingSecurityConfig securityConfig; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSrfType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSrfType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..82409fd5aafb807bf21fcc0a970f5119ac67610a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSrfType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanSrfType { + BLOOM_FILTER = 0, + PARTIAL_MAC_ADDR, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatus.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..834558ae7203745b3e9d59b94bed90102f1faf9d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatus.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanStatus { + android.hardware.wifi.NanStatusCode status; + String description; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatusCode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatusCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ec12eb0c4c4eb422af44462b0bb31a77f99fe42e --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanStatusCode.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanStatusCode { + SUCCESS = 0, + INTERNAL_FAILURE = 1, + PROTOCOL_FAILURE = 2, + INVALID_SESSION_ID = 3, + NO_RESOURCES_AVAILABLE = 4, + INVALID_ARGS = 5, + INVALID_PEER_ID = 6, + INVALID_NDP_ID = 7, + NAN_NOT_ALLOWED = 8, + NO_OTA_ACK = 9, + ALREADY_ENABLED = 10, + FOLLOWUP_TX_QUEUE_FULL = 11, + UNSUPPORTED_CONCURRENCY_NAN_DISABLED = 12, + INVALID_PAIRING_ID = 13, + INVALID_BOOTSTRAPPING_ID = 14, + REDUNDANT_REQUEST = 15, + NOT_SUPPORTED = 16, + NO_CONNECTION = 17, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bf525a9c7ede3c59d790f7f9fe97c14fe8c29187 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeRequest.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanSubscribeRequest { + android.hardware.wifi.NanDiscoveryCommonConfig baseConfigs; + android.hardware.wifi.NanSubscribeType subscribeType; + android.hardware.wifi.NanSrfType srfType; + boolean srfRespondIfInAddressSet; + boolean shouldUseSrf; + boolean isSsiRequiredForMatch; + android.hardware.wifi.MacAddress[] intfAddr; + android.hardware.wifi.NanPairingConfig pairingConfig; + byte[16] identityKey; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4f06df956d70b7537ff865c90d5faa48dbd051ad --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSubscribeType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanSubscribeType { + PASSIVE = 0, + ACTIVE, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSuspensionModeChangeInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSuspensionModeChangeInd.aidl new file mode 100644 index 0000000000000000000000000000000000000000..557fc796d9c60539a1a595f749da2b7689d6b42e --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanSuspensionModeChangeInd.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanSuspensionModeChangeInd { + boolean isSuspended; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTransmitFollowupRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTransmitFollowupRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..20c94d9558704f208b02ec4aa5f4749fa3402ae3 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTransmitFollowupRequest.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NanTransmitFollowupRequest { + byte discoverySessionId; + int peerId; + byte[6] addr; + boolean isHighPriority; + boolean shouldUseDiscoveryWindow; + byte[] serviceSpecificInfo; + byte[] extendedServiceSpecificInfo; + boolean disableFollowupResultIndication; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTxType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTxType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..798d3a29e6aa34da2fab94995dcc413b47ca5f06 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NanTxType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum NanTxType { + BROADCAST = 0, + UNICAST, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NpkSecurityAssociation.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NpkSecurityAssociation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..508e92009d6cde8095f207151e923e4c06486c74 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/NpkSecurityAssociation.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable NpkSecurityAssociation { + byte[16] peerNanIdentityKey; + byte[16] localNanIdentityKey; + byte[32] npk; + android.hardware.wifi.NanPairingAkm akm; + android.hardware.wifi.NanCipherSuiteType cipherType; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttBw.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttBw.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7cc700250e09f9ea8a354d01f1890925c0b648c5 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttBw.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum RttBw { + BW_UNSPECIFIED = 0x0, + BW_5MHZ = 0x01, + BW_10MHZ = 0x02, + BW_20MHZ = 0x04, + BW_40MHZ = 0x08, + BW_80MHZ = 0x10, + BW_160MHZ = 0x20, + BW_320MHZ = 0x40, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6c6408454a302d6c411dbde073e2949fcee3bdf3 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttCapabilities.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable RttCapabilities { + boolean rttOneSidedSupported; + boolean rttFtmSupported; + boolean lciSupported; + boolean lcrSupported; + boolean responderSupported; + android.hardware.wifi.RttPreamble preambleSupport; + android.hardware.wifi.RttBw bwSupport; + byte mcVersion; + int azPreambleSupport; + int azBwSupport; + boolean ntbInitiatorSupported; + boolean ntbResponderSupported; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..361361609c6f006a73f616e899c6d6307d33f206 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttConfig.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable RttConfig { + byte[6] addr; + android.hardware.wifi.RttType type; + android.hardware.wifi.RttPeerType peer; + android.hardware.wifi.WifiChannelInfo channel; + int burstPeriod; + int numBurst; + int numFramesPerBurst; + int numRetriesPerRttFrame; + int numRetriesPerFtmr; + boolean mustRequestLci; + boolean mustRequestLcr; + int burstDuration; + android.hardware.wifi.RttPreamble preamble; + android.hardware.wifi.RttBw bw; + long ntbMinMeasurementTime; + long ntbMaxMeasurementTime; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLciInformation.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLciInformation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0fcf151fd1c77e86b008dbc6a0fa94ce619f81f1 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLciInformation.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable RttLciInformation { + long latitude; + long longitude; + int altitude; + byte latitudeUnc; + byte longitudeUnc; + byte altitudeUnc; + android.hardware.wifi.RttMotionPattern motionPattern; + int floor; + int heightAboveFloor; + int heightUnc; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLcrInformation.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLcrInformation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c756ddab0dae7ea5fb6c82015d4a31d17e447e5a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttLcrInformation.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable RttLcrInformation { + byte[2] countryCode; + String civicInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttMotionPattern.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttMotionPattern.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7c8e3692b19cf37909553d6f376b79c43c66e46c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttMotionPattern.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum RttMotionPattern { + NOT_EXPECTED = 0, + EXPECTED = 1, + UNKNOWN = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPeerType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPeerType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..23fa7f67cbde79252a77a81f34fba4b59949cb95 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPeerType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum RttPeerType { + AP = 1, + STA = 2, + P2P_GO = 3, + P2P_CLIENT = 4, + NAN_TYPE = 5, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPreamble.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPreamble.aidl new file mode 100644 index 0000000000000000000000000000000000000000..280246451e365354994be19770596e6975578525 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttPreamble.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum RttPreamble { + INVALID = 0, + LEGACY = 0x1, + HT = 0x2, + VHT = 0x4, + HE = 0x8, + EHT = 0x10, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResponder.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResponder.aidl new file mode 100644 index 0000000000000000000000000000000000000000..41463b529277ece2e9a977c97befbd552c29589b --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResponder.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable RttResponder { + android.hardware.wifi.WifiChannelInfo channel; + android.hardware.wifi.RttPreamble preamble; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..13202ba3f2280d88a86bb40970472657b03d8593 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttResult.aidl @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable RttResult { + byte[6] addr; + int burstNum; + int measurementNumber; + int successNumber; + byte numberPerBurstPeer; + android.hardware.wifi.RttStatus status; + byte retryAfterDuration; + android.hardware.wifi.RttType type; + int rssi; + int rssiSpread; + android.hardware.wifi.WifiRateInfo txRate; + android.hardware.wifi.WifiRateInfo rxRate; + long rtt; + long rttSd; + long rttSpread; + int distanceInMm; + int distanceSdInMm; + int distanceSpreadInMm; + long timeStampInUs; + int burstDurationInMs; + int negotiatedBurstNum; + android.hardware.wifi.WifiInformationElement lci; + android.hardware.wifi.WifiInformationElement lcr; + int channelFreqMHz; + android.hardware.wifi.RttBw packetBw; + byte i2rTxLtfRepetitionCount; + byte r2iTxLtfRepetitionCount; + long ntbMinMeasurementTime; + long ntbMaxMeasurementTime; + byte numTxSpatialStreams; + byte numRxSpatialStreams; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttStatus.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2817497a7af33cf52aa0349ad0bc84958d04fde8 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttStatus.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum RttStatus { + SUCCESS = 0, + FAILURE = 1, + FAIL_NO_RSP = 2, + FAIL_REJECTED = 3, + FAIL_NOT_SCHEDULED_YET = 4, + FAIL_TM_TIMEOUT = 5, + FAIL_AP_ON_DIFF_CHANNEL = 6, + FAIL_NO_CAPABILITY = 7, + ABORTED = 8, + FAIL_INVALID_TS = 9, + FAIL_PROTOCOL = 10, + FAIL_SCHEDULE = 11, + FAIL_BUSY_TRY_LATER = 12, + INVALID_REQ = 13, + NO_WIFI = 14, + FAIL_FTM_PARAM_OVERRIDE = 15, + NAN_RANGING_PROTOCOL_FAILURE = 16, + NAN_RANGING_CONCURRENCY_NOT_SUPPORTED = 17, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cb25673af37d33be9884c41bb79657e5fe5b04c0 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/RttType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum RttType { + ONE_SIDED = 1, + TWO_SIDED = 2, + TWO_SIDED_11MC = TWO_SIDED /* 2 */, + TWO_SIDED_11AZ_NTB = 3, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/Ssid.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/Ssid.aidl new file mode 100644 index 0000000000000000000000000000000000000000..98b523f37edf80d15bf42031a3fab6f1d10d91e1 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/Ssid.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable Ssid { + byte[32] data; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3b4d785a420f10e155bff6c30900cfbc2d2209b8 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaApfPacketFilterCapabilities { + int version; + int maxLength; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..249d87622a0ba6af8ca85b685487cdf8407cbdb1 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum StaBackgroundScanBucketEventReportSchemeMask { + EACH_SCAN = (1 << 0) /* 1 */, + FULL_RESULTS = (1 << 1) /* 2 */, + NO_BATCH = (1 << 2) /* 4 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4e9671a370badebbee0adeefd3a57b307759f465 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaBackgroundScanBucketParameters { + int bucketIdx; + android.hardware.wifi.WifiBand band; + int[] frequencies; + int periodInMs; + int eventReportScheme; + int exponentialMaxPeriodInMs; + int exponentialBase; + int exponentialStepCount; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..758dd97485a5422cdb64a623213be830d0074409 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanCapabilities.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaBackgroundScanCapabilities { + int maxCacheSize; + int maxBuckets; + int maxApCachePerScan; + int maxReportingThreshold; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanLimits.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanLimits.aidl new file mode 100644 index 0000000000000000000000000000000000000000..05d0277d1c0fc4dd5768b8f498124af2a3f2754b --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanLimits.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum StaBackgroundScanLimits { + MAX_CHANNELS = 16, + MAX_BUCKETS = 16, + MAX_AP_CACHE_PER_SCAN = 32, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanParameters.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanParameters.aidl new file mode 100644 index 0000000000000000000000000000000000000000..077356685d0aca2169fe0eec915c4e371a1d9f84 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaBackgroundScanParameters.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaBackgroundScanParameters { + int basePeriodInMs; + int maxApPerScan; + int reportThresholdPercent; + int reportThresholdNumScans; + android.hardware.wifi.StaBackgroundScanBucketParameters[] buckets; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4dee6de3fd8a939b4ff639300c6e936f5383ac90 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaLinkLayerIfaceContentionTimeStats { + int contentionTimeMinInUsec; + int contentionTimeMaxInUsec; + int contentionTimeAvgInUsec; + int contentionNumSamples; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl new file mode 100644 index 0000000000000000000000000000000000000000..eddf52ee250eaafe205e717da70ad875ba1002bd --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaLinkLayerIfacePacketStats { + long rxMpdu; + long txMpdu; + long lostMpdu; + long retries; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceStats.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a4192076d28bc88cd9df2aefd7a9deeb329b02b6 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerIfaceStats.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaLinkLayerIfaceStats { + android.hardware.wifi.StaLinkLayerLinkStats[] links; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerLinkStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerLinkStats.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cd21c256fe7c5067a1e0ce01f860a833dc2d2578 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerLinkStats.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaLinkLayerLinkStats { + int linkId; + int radioId; + int frequencyMhz; + int beaconRx; + int avgRssiMgmt; + android.hardware.wifi.StaLinkLayerIfacePacketStats wmeBePktStats; + android.hardware.wifi.StaLinkLayerIfacePacketStats wmeBkPktStats; + android.hardware.wifi.StaLinkLayerIfacePacketStats wmeViPktStats; + android.hardware.wifi.StaLinkLayerIfacePacketStats wmeVoPktStats; + byte timeSliceDutyCycleInPercent; + android.hardware.wifi.StaLinkLayerIfaceContentionTimeStats wmeBeContentionTimeStats; + android.hardware.wifi.StaLinkLayerIfaceContentionTimeStats wmeBkContentionTimeStats; + android.hardware.wifi.StaLinkLayerIfaceContentionTimeStats wmeViContentionTimeStats; + android.hardware.wifi.StaLinkLayerIfaceContentionTimeStats wmeVoContentionTimeStats; + android.hardware.wifi.StaPeerInfo[] peers; + android.hardware.wifi.StaLinkLayerLinkStats.StaLinkState state; + @Backing(type="int") @VintfStability + enum StaLinkState { + UNKNOWN = 0, + NOT_IN_USE = (1 << 0) /* 1 */, + IN_USE = (1 << 1) /* 2 */, + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerRadioStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerRadioStats.aidl new file mode 100644 index 0000000000000000000000000000000000000000..84d24c997430d8a848189465dc45b194e1d517dd --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerRadioStats.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaLinkLayerRadioStats { + int onTimeInMs; + int txTimeInMs; + int[] txTimeInMsPerLevel; + int rxTimeInMs; + int onTimeInMsForScan; + int onTimeInMsForNanScan; + int onTimeInMsForBgScan; + int onTimeInMsForRoamScan; + int onTimeInMsForPnoScan; + int onTimeInMsForHs20Scan; + android.hardware.wifi.WifiChannelStats[] channelStats; + int radioId; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerStats.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9c05346998b0a94d6ea699b8cdd9c83dafff2c66 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaLinkLayerStats.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaLinkLayerStats { + android.hardware.wifi.StaLinkLayerIfaceStats iface; + android.hardware.wifi.StaLinkLayerRadioStats[] radios; + long timeStampInMs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaPeerInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaPeerInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..93a901fb2ac965ca6e2912e0d80012778f09aa28 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaPeerInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaPeerInfo { + char staCount; + char chanUtil; + android.hardware.wifi.StaRateStat[] rateStats; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRateStat.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRateStat.aidl new file mode 100644 index 0000000000000000000000000000000000000000..43b69fc900d1506ea3852d16e9efe93c7efb0e20 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRateStat.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaRateStat { + android.hardware.wifi.WifiRateInfo rateInfo; + int txMpdu; + int rxMpdu; + int mpduLost; + int retries; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9eed877d6f02eb5b6ee69383b9bbf9454fcb30ab --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingCapabilities.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaRoamingCapabilities { + int maxBlocklistSize; + int maxAllowlistSize; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingConfig.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2b37cee12a32b186d79781f857ec175a65ca25fd --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingConfig.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaRoamingConfig { + android.hardware.wifi.MacAddress[] bssidBlocklist; + android.hardware.wifi.Ssid[] ssidAllowlist; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingState.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fd7d567105e0ff7a18ceff5767e4ebe81d190f56 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaRoamingState.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="byte") @VintfStability +enum StaRoamingState { + DISABLED = 0, + ENABLED = 1, + AGGRESSIVE = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanData.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7c75232e5188828932fe8ff06629566c144a627f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanData.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaScanData { + int flags; + int bucketsScanned; + android.hardware.wifi.StaScanResult[] results; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanDataFlagMask.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanDataFlagMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0ca4b4b41c89e1fa5c59bfa166dde24fd1bb22fa --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanDataFlagMask.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum StaScanDataFlagMask { + INTERRUPTED = (1 << 0) /* 1 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9a8d29720cdd8d4c99aa90f9cfd747ff624219be --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/StaScanResult.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable StaScanResult { + long timeStampInUs; + byte[] ssid; + byte[6] bssid; + int rssi; + int frequency; + char beaconPeriodInMs; + char capability; + android.hardware.wifi.WifiInformationElement[] informationElements; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..75f3e83829a72a6557cc29e4741d941bbb3cfc78 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtCapabilities.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable TwtCapabilities { + boolean isTwtRequesterSupported; + boolean isTwtResponderSupported; + boolean isBroadcastTwtSupported; + boolean isFlexibleTwtScheduleSupported; + int minWakeDurationUs; + int maxWakeDurationUs; + long minWakeIntervalUs; + long maxWakeIntervalUs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtRequest.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1e1c39a914b2d8fa4e421a61d4b06c7fdb7b0cdd --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtRequest.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable TwtRequest { + int mloLinkId; + int minWakeDurationUs; + int maxWakeDurationUs; + long minWakeIntervalUs; + long maxWakeIntervalUs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSession.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSession.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0b88d8e75d174e25f25cb4e60017268882f46cff --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSession.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable TwtSession { + int sessionId; + int mloLinkId; + int wakeDurationUs; + long wakeIntervalUs; + android.hardware.wifi.TwtSession.TwtNegotiationType negotiationType; + boolean isTriggerEnabled; + boolean isAnnounced; + boolean isImplicit; + boolean isProtected; + boolean isUpdatable; + boolean isSuspendable; + boolean isResponderPmModeEnabled; + @Backing(type="byte") @VintfStability + enum TwtNegotiationType { + INDIVIDUAL = 0, + BROADCAST = 1, + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSessionStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSessionStats.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f62b6141466970b167b0c6cc9bb6d7a2e62d3d99 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/TwtSessionStats.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable TwtSessionStats { + int avgTxPktCount; + int avgRxPktCount; + int avgTxPktSize; + int avgRxPktSize; + int avgEospDurationUs; + int eospCount; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiAntennaMode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiAntennaMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b47b7f502a7e6db16e429ce7861b2d60c01dfffb --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiAntennaMode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiAntennaMode { + WIFI_ANTENNA_MODE_UNSPECIFIED = 0, + WIFI_ANTENNA_MODE_1X1 = 1, + WIFI_ANTENNA_MODE_2X2 = 2, + WIFI_ANTENNA_MODE_3X3 = 3, + WIFI_ANTENNA_MODE_4X4 = 4, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiBand.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiBand.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e9a87ee4584f88ba47741a77b0b17ee2f2afdeb7 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiBand.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiBand { + BAND_UNSPECIFIED = 0, + BAND_24GHZ = 1, + BAND_5GHZ = 2, + BAND_5GHZ_DFS = 4, + BAND_5GHZ_WITH_DFS = 6, + BAND_24GHZ_5GHZ = 3, + BAND_24GHZ_5GHZ_WITH_DFS = 7, + BAND_6GHZ = 8, + BAND_5GHZ_6GHZ = 10, + BAND_24GHZ_5GHZ_6GHZ = 11, + BAND_24GHZ_5GHZ_WITH_DFS_6GHZ = 15, + BAND_60GHZ = 16, + BAND_24GHZ_5GHZ_6GHZ_60GHZ = 27, + BAND_24GHZ_5GHZ_WITH_DFS_6GHZ_60GHZ = 31, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..297c923dbe08df00a8a4a280b0077b48c90019ac --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiChannelInfo { + android.hardware.wifi.WifiChannelWidthInMhz width; + int centerFreq; + int centerFreq0; + int centerFreq1; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelStats.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c6e7acc9375dbb0cf5378d7b9bb8e4fedce044e0 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelStats.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiChannelStats { + android.hardware.wifi.WifiChannelInfo channel; + int onTimeInMs; + int ccaBusyTimeInMs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelWidthInMhz.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelWidthInMhz.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e6ea642db6b4424c9c470f41ae28835db6951294 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChannelWidthInMhz.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiChannelWidthInMhz { + WIDTH_INVALID = (-1) /* -1 */, + WIDTH_20 = 0, + WIDTH_40 = 1, + WIDTH_80 = 2, + WIDTH_160 = 3, + WIDTH_80P80 = 4, + WIDTH_5 = 5, + WIDTH_10 = 6, + WIDTH_320 = 7, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChipCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChipCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b5034ea387e3ac7f30cc38b12aa9fa939b0c1c47 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiChipCapabilities.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiChipCapabilities { + int maxMloAssociationLinkCount; + int maxMloStrLinkCount; + int maxConcurrentTdlsSessionCount; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8415e09ad8f56fb829c0c78e5f04dc3c079906d8 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugHostWakeReasonRxIcmpPacketDetails { + int icmpPkt; + int icmp6Pkt; + int icmp6Ra; + int icmp6Na; + int icmp6Ns; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl new file mode 100644 index 0000000000000000000000000000000000000000..30301d3e451c8ce441dc4c21fe27c4ee1855b0c6 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugHostWakeReasonRxMulticastPacketDetails { + int ipv4RxMulticastAddrCnt; + int ipv6RxMulticastAddrCnt; + int otherRxMulticastAddrCnt; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl new file mode 100644 index 0000000000000000000000000000000000000000..81183225dc06d55612f6944c1c70e5c42ab8e4f8 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugHostWakeReasonRxPacketDetails { + int rxUnicastCnt; + int rxMulticastCnt; + int rxBroadcastCnt; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1766476919d9a2d0dd1033078719cfd885bcb040 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugHostWakeReasonStats { + int totalCmdEventWakeCnt; + int[] cmdEventWakeCntPerType; + int totalDriverFwLocalWakeCnt; + int[] driverFwLocalWakeCntPerType; + int totalRxPacketWakeCnt; + android.hardware.wifi.WifiDebugHostWakeReasonRxPacketDetails rxPktWakeDetails; + android.hardware.wifi.WifiDebugHostWakeReasonRxMulticastPacketDetails rxMulticastPkWakeDetails; + android.hardware.wifi.WifiDebugHostWakeReasonRxIcmpPacketDetails rxIcmpPkWakeDetails; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2ff6cfcbebb49e26b0704b24f381c7589e1617a4 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugPacketFateFrameInfo { + android.hardware.wifi.WifiDebugPacketFateFrameType frameType; + long frameLen; + long driverTimestampUsec; + long firmwareTimestampUsec; + byte[] frameContent; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6db96efc0f4ca2bf24235d7d95129e4de24e1fa7 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiDebugPacketFateFrameType { + UNKNOWN, + ETHERNET_II, + MGMT_80211, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferFlags.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferFlags.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9ababc373db90c55c4eae636cc524f8ee70401d8 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferFlags.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiDebugRingBufferFlags { + HAS_BINARY_ENTRIES = (1 << 0) /* 1 */, + HAS_ASCII_ENTRIES = (1 << 1) /* 2 */, + HAS_PER_PACKET_ENTRIES = (1 << 2) /* 4 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferStatus.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e4249d9a887ed2ba6d9528b6d7e73932028e3d99 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferStatus.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugRingBufferStatus { + String ringName; + int flags; + int ringId; + int sizeInBytes; + int freeSizeInBytes; + int verboseLevel; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e614f3fba0f8f53a151a8d2709eb641f454a49f6 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiDebugRingBufferVerboseLevel { + NONE = 0, + DEFAULT = 1, + VERBOSE = 2, + EXCESSIVE = 3, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFate.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFate.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f638c4f7df484f6f7a15c1770e5aceba0cb39bfc --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFate.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiDebugRxPacketFate { + SUCCESS, + FW_QUEUED, + FW_DROP_FILTER, + FW_DROP_INVALID, + FW_DROP_NOBUFS, + FW_DROP_OTHER, + DRV_QUEUED, + DRV_DROP_FILTER, + DRV_DROP_INVALID, + DRV_DROP_NOBUFS, + DRV_DROP_OTHER, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bfe0c0aee61ded84243745b951a4b530b5e3ffb8 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugRxPacketFateReport { + android.hardware.wifi.WifiDebugRxPacketFate fate; + android.hardware.wifi.WifiDebugPacketFateFrameInfo frameInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFate.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFate.aidl new file mode 100644 index 0000000000000000000000000000000000000000..778ca5dee23d37d043ddb63ffda5ed06f96d5573 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFate.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiDebugTxPacketFate { + ACKED, + SENT, + FW_QUEUED, + FW_DROP_INVALID, + FW_DROP_NOBUFS, + FW_DROP_OTHER, + DRV_QUEUED, + DRV_DROP_INVALID, + DRV_DROP_NOBUFS, + DRV_DROP_OTHER, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl new file mode 100644 index 0000000000000000000000000000000000000000..aee5c31103d5a0e3df0da8cbbee934c617ca0d7a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiDebugTxPacketFateReport { + android.hardware.wifi.WifiDebugTxPacketFate fate; + android.hardware.wifi.WifiDebugPacketFateFrameInfo frameInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiIfaceMode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiIfaceMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..557cef4c7720d53deeb7b1bfd6f028bca139c515 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiIfaceMode.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiIfaceMode { + IFACE_MODE_STA = (1 << 0) /* 1 */, + IFACE_MODE_SOFTAP = (1 << 1) /* 2 */, + IFACE_MODE_IBSS = (1 << 2) /* 4 */, + IFACE_MODE_P2P_CLIENT = (1 << 3) /* 8 */, + IFACE_MODE_P2P_GO = (1 << 4) /* 16 */, + IFACE_MODE_NAN = (1 << 5) /* 32 */, + IFACE_MODE_MESH = (1 << 6) /* 64 */, + IFACE_MODE_TDLS = (1 << 7) /* 128 */, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiInformationElement.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiInformationElement.aidl new file mode 100644 index 0000000000000000000000000000000000000000..27ba0db19c221893ce5f410d5046066e7d0278e5 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiInformationElement.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiInformationElement { + byte id; + byte[] data; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioCombination.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioCombination.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f060db87f3dca5448af4f2087ffef50039969907 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioCombination.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiRadioCombination { + android.hardware.wifi.WifiRadioConfiguration[] radioConfigurations; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioConfiguration.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioConfiguration.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5169351525f829bb8a80c7edbc779751badcdea4 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRadioConfiguration.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiRadioConfiguration { + android.hardware.wifi.WifiBand bandInfo; + android.hardware.wifi.WifiAntennaMode antennaMode; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c4aca637bfc30c57129a065a5bbf0ca3a8993c3a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiRateInfo { + android.hardware.wifi.WifiRatePreamble preamble; + android.hardware.wifi.WifiRateNss nss; + android.hardware.wifi.WifiChannelWidthInMhz bw; + byte rateMcsIdx; + int bitRateInKbps; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateNss.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateNss.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0ad6f04847cfca872bc14cd3b65137ac18630b3b --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRateNss.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiRateNss { + NSS_1x1 = 0, + NSS_2x2 = 1, + NSS_3x3 = 2, + NSS_4x4 = 3, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRatePreamble.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRatePreamble.aidl new file mode 100644 index 0000000000000000000000000000000000000000..04b63583ea1593676ac96ff259d8c9fa0a0fe454 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiRatePreamble.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiRatePreamble { + OFDM = 0, + CCK = 1, + HT = 2, + VHT = 3, + RESERVED = 4, + HE = 5, + EHT = 6, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiStatusCode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiStatusCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9a15fa1cae2d3f00f175e06535480fd69934960a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiStatusCode.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@Backing(type="int") @VintfStability +enum WifiStatusCode { + SUCCESS, + ERROR_WIFI_CHIP_INVALID, + ERROR_WIFI_IFACE_INVALID, + ERROR_WIFI_RTT_CONTROLLER_INVALID, + ERROR_NOT_SUPPORTED, + ERROR_NOT_AVAILABLE, + ERROR_NOT_STARTED, + ERROR_INVALID_ARGS, + ERROR_BUSY, + ERROR_UNKNOWN, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiUsableChannel.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiUsableChannel.aidl new file mode 100644 index 0000000000000000000000000000000000000000..774b2423ffddcd0e5044f856fe91e9841b725fe5 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/2/android/hardware/wifi/WifiUsableChannel.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi; +@VintfStability +parcelable WifiUsableChannel { + int channel; + android.hardware.wifi.WifiChannelWidthInMhz channelBandwidth; + int ifaceModeMask; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl index 56ef2d204dfd8b653b5a9ab21944c32969b28503..6c6408454a302d6c411dbde073e2949fcee3bdf3 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl @@ -42,9 +42,9 @@ parcelable RttCapabilities { android.hardware.wifi.RttPreamble preambleSupport; android.hardware.wifi.RttBw bwSupport; byte mcVersion; - android.hardware.wifi.RttPreamble azPreambleSupport; - android.hardware.wifi.RttBw azBwSupport; + int azPreambleSupport; + int azBwSupport; boolean ntbInitiatorSupported; boolean ntbResponderSupported; - int maxTxLtfRepetitionCount; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl index b7830bd12669019551c496dfe97749f62febebaa..361361609c6f006a73f616e899c6d6307d33f206 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl @@ -48,7 +48,7 @@ parcelable RttConfig { int burstDuration; android.hardware.wifi.RttPreamble preamble; android.hardware.wifi.RttBw bw; - int ntbMinMeasurementTimeMillis; - int ntbMaxMeasurementTimeMillis; - int txLtfRepetitionCount; + long ntbMinMeasurementTime; + long ntbMaxMeasurementTime; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl index 30f5f58b523d14d08b31a9d4ece01d37f6c86c9b..13202ba3f2280d88a86bb40970472657b03d8593 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl @@ -59,7 +59,11 @@ parcelable RttResult { android.hardware.wifi.WifiInformationElement lcr; int channelFreqMHz; android.hardware.wifi.RttBw packetBw; - int txLtfRepetitionCount; - int ntbMinMeasurementTimeMillis; - int ntbMaxMeasurementTimeMillis; + byte i2rTxLtfRepetitionCount; + byte r2iTxLtfRepetitionCount; + long ntbMinMeasurementTime; + long ntbMaxMeasurementTime; + byte numTxSpatialStreams; + byte numRxSpatialStreams; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtCapabilities.aidl index d8e73fb4b7bda510decb11768688e8387ac4c503..75f3e83829a72a6557cc29e4741d941bbb3cfc78 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtCapabilities.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtCapabilities.aidl @@ -38,8 +38,8 @@ parcelable TwtCapabilities { boolean isTwtResponderSupported; boolean isBroadcastTwtSupported; boolean isFlexibleTwtScheduleSupported; - int minWakeDurationMicros; - int maxWakeDurationMicros; - int minWakeIntervalMicros; - int maxWakeIntervalMicros; + int minWakeDurationUs; + int maxWakeDurationUs; + long minWakeIntervalUs; + long maxWakeIntervalUs; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtRequest.aidl index 3051b943a3ef1de622b5045d0108606cdd79dc75..1e1c39a914b2d8fa4e421a61d4b06c7fdb7b0cdd 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtRequest.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtRequest.aidl @@ -35,8 +35,8 @@ package android.hardware.wifi; @VintfStability parcelable TwtRequest { int mloLinkId; - int minWakeDurationMicros; - int maxWakeDurationMicros; - int minWakeIntervalMicros; - int maxWakeIntervalMicros; + int minWakeDurationUs; + int maxWakeDurationUs; + long minWakeIntervalUs; + long maxWakeIntervalUs; } diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSession.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSession.aidl index 92c2533e2cecc0999a611d2c08875cfc89079f36..0b88d8e75d174e25f25cb4e60017268882f46cff 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSession.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSession.aidl @@ -36,8 +36,8 @@ package android.hardware.wifi; parcelable TwtSession { int sessionId; int mloLinkId; - int wakeDurationMicros; - int wakeIntervalMicros; + int wakeDurationUs; + long wakeIntervalUs; android.hardware.wifi.TwtSession.TwtNegotiationType negotiationType; boolean isTriggerEnabled; boolean isAnnounced; diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSessionStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSessionStats.aidl index 528444a84b531eaedfcfd85d8832583967fb6f40..f62b6141466970b167b0c6cc9bb6d7a2e62d3d99 100644 --- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSessionStats.aidl +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/TwtSessionStats.aidl @@ -38,6 +38,6 @@ parcelable TwtSessionStats { int avgRxPktCount; int avgTxPktSize; int avgRxPktSize; - int avgEospDurationMicros; + int avgEospDurationUs; int eospCount; } diff --git a/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl b/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl index 0352ec8ea677c5427071da9e81d94bff8087bf5d..c1939245e9b0a26342be7a0b5cb946adeab58ed8 100644 --- a/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl +++ b/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl @@ -18,6 +18,7 @@ package android.hardware.wifi; import android.hardware.wifi.RttBw; import android.hardware.wifi.RttPreamble; +import android.hardware.wifi.common.OuiKeyedData; /** * RTT Capabilities. @@ -64,12 +65,12 @@ parcelable RttCapabilities { * Bit mask indicating what preamble is supported by IEEE 802.11az initiator. * Combination of |RttPreamble| values. */ - RttPreamble azPreambleSupport; + int azPreambleSupport; /** * Bit mask indicating what BW is supported by IEEE 802.11az initiator. * Combination of |RttBw| values. */ - RttBw azBwSupport; + int azBwSupport; /** * Whether the initiator supports IEEE 802.11az Non-Trigger-based (non-TB) measurement. */ @@ -79,8 +80,8 @@ parcelable RttCapabilities { */ boolean ntbResponderSupported; /** - * Maximum HE LTF repetitions the IEEE 802.11az initiator is capable of transmitting in the - * preamble of I2R NDP. + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. */ - int maxTxLtfRepetitionCount; + @nullable OuiKeyedData[] vendorData; } diff --git a/wifi/aidl/android/hardware/wifi/RttConfig.aidl b/wifi/aidl/android/hardware/wifi/RttConfig.aidl index e9706562299d7dd8483a38f866a7c39a06ae0f45..496ffd2dbc233ca09f0030b17503090371f88372 100644 --- a/wifi/aidl/android/hardware/wifi/RttConfig.aidl +++ b/wifi/aidl/android/hardware/wifi/RttConfig.aidl @@ -21,6 +21,7 @@ import android.hardware.wifi.RttPeerType; import android.hardware.wifi.RttPreamble; import android.hardware.wifi.RttType; import android.hardware.wifi.WifiChannelInfo; +import android.hardware.wifi.common.OuiKeyedData; /** * RTT configuration. @@ -121,16 +122,22 @@ parcelable RttConfig { */ RttBw bw; /** - * IEEE 802.11az Non-Trigger-based (non-TB) minimum measurement time in milliseconds. + * IEEE 802.11az Non-Trigger-based (non-TB) minimum measurement time in units of 100 + * microseconds. + * + * Reference: IEEE Std 802.11az-2022 spec, section 9.4.2.298 Ranging Parameters element. */ - int ntbMinMeasurementTimeMillis; + long ntbMinMeasurementTime; /** - * IEEE 802.11az Non-Trigger-based (non-TB) maximum measurement time in milliseconds. + * IEEE 802.11az Non-Trigger-based (non-TB) maximum measurement time in units of 10 + * milliseconds. + * + * Reference: IEEE Std 802.11az-2022 spec, section 9.4.2.298 Ranging Parameters element. */ - int ntbMaxMeasurementTimeMillis; + long ntbMaxMeasurementTime; /** - * Multiple transmissions of HE-LTF symbols in an HE Ranging NDP. A value of 1 indicates no - * repetition. + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. */ - int txLtfRepetitionCount; + @nullable OuiKeyedData[] vendorData; } diff --git a/wifi/aidl/android/hardware/wifi/RttResult.aidl b/wifi/aidl/android/hardware/wifi/RttResult.aidl index 2cb0afa3171f122a5d06f4ad40f4e4193f247853..2f9aefef2024d8e573f082252b460e797c169580 100644 --- a/wifi/aidl/android/hardware/wifi/RttResult.aidl +++ b/wifi/aidl/android/hardware/wifi/RttResult.aidl @@ -21,6 +21,7 @@ import android.hardware.wifi.RttStatus; import android.hardware.wifi.RttType; import android.hardware.wifi.WifiInformationElement; import android.hardware.wifi.WifiRateInfo; +import android.hardware.wifi.common.OuiKeyedData; /** * RTT results. @@ -146,12 +147,22 @@ parcelable RttResult { */ RttBw packetBw; /** - * IEEE 802.11az Transmit LTF repetitions used to get this result. + * Multiple transmissions of HE-LTF symbols in an HE (I2R) Ranging NDP. An HE-LTF repetition + * value of 1 indicates no repetitions. + * + * Note: A required field for IEEE 802.11az result. + */ + byte i2rTxLtfRepetitionCount; + /** + * Multiple transmissions of HE-LTF symbols in an HE (R2I) Ranging NDP. An HE-LTF repetition + * value of 1 indicates no repetitions. + * + * Note: A required field for IEEE 802.11az result. */ - int txLtfRepetitionCount; + byte r2iTxLtfRepetitionCount; /** - * Minimum non-trigger based (non-TB) dynamic measurement time in milliseconds assigned by the - * IEEE 802.11az responder. + * Minimum non-trigger based (non-TB) dynamic measurement time in units of 100 microseconds + * assigned by the IEEE 802.11az responder. * * After initial non-TB negotiation, if the next ranging request for this peer comes in between * [ntbMinMeasurementTime, ntbMaxMeasurementTime], vendor software shall do the NDPA sounding @@ -160,11 +171,15 @@ parcelable RttResult { * If the ranging request for this peer comes sooner than minimum measurement time, vendor * software shall return the cached result of the last measurement including the time stamp * |RttResult.timestamp|. + * + * Reference: IEEE Std 802.11az-2022 spec, section 9.4.2.298 Ranging Parameters element. + * + * Note: A required field for IEEE 802.11az result. */ - int ntbMinMeasurementTimeMillis; + long ntbMinMeasurementTime; /** - * Maximum non-trigger based (non-TB) dynamic measurement time in milliseconds assigned by the - * IEEE 802.11az responder. + * Maximum non-trigger based (non-TB) dynamic measurement time in units of 10 milliseconds + * assigned by the IEEE 802.11az responder. * * After initial non-TB negotiation, if the next ranging request for this peer comes in between * [ntbMinMeasurementTime, ntbMaxMeasurementTime], vendor software shall do the NDPA sounding @@ -173,6 +188,29 @@ parcelable RttResult { * If the ranging request for this peer comes later than the maximum measurement time, vendor * software shall clean up any existing IEEE 802.11ax non-TB ranging session and re-do the * non-TB ranging negotiation. + * + * Reference: IEEE Std 802.11az-2022 spec, section 9.4.2.298 Ranging Parameters element. + * + * Note: A required field for IEEE 802.11az result. + */ + long ntbMaxMeasurementTime; + /** + * Number of transmit space-time streams used. Value is in the range 1 to 8. + * + * Note: Maximum limit is ultimately defined by the number of antennas that can be supported. + * A required field for IEEE 802.11az result. + */ + byte numTxSpatialStreams; + /** + * Number of receive space-time streams used. Value is in the range 1 to 8. + * + * Note: Maximum limit is ultimately defined by the number of antennas that can be supported. + * A required field for IEEE 802.11az result. + */ + byte numRxSpatialStreams; + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. */ - int ntbMaxMeasurementTimeMillis; + @nullable OuiKeyedData[] vendorData; } diff --git a/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl b/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl index 9007d0e5be667478189c1fc189fac3401a486bd5..28d16f032f2546782a3b000c1ad037d4ed0b1221 100644 --- a/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl +++ b/wifi/aidl/android/hardware/wifi/TwtCapabilities.aidl @@ -18,6 +18,14 @@ package android.hardware.wifi; /** * Target Wake Time (TWT) Capabilities supported. + * + * TWT allows Wi-Fi stations to manage activity in a network by scheduling to operate at different + * times. This minimizes the contention and reduces the required amount of time that a station + * utilizing a power management mode needs to be awake. + * + * IEEE 802.11ax standard defines two modes of TWT operation: + * - Individual TWT (default mode of operation if TWT requester is supported) + * - Broadcast TWT */ @VintfStability parcelable TwtCapabilities { @@ -40,17 +48,17 @@ parcelable TwtCapabilities { /** * Minimum TWT wake duration in microseconds. */ - int minWakeDurationMicros; + int minWakeDurationUs; /** * Maximum TWT wake duration in microseconds. */ - int maxWakeDurationMicros; + int maxWakeDurationUs; /** * Minimum TWT wake interval in microseconds. */ - int minWakeIntervalMicros; + long minWakeIntervalUs; /** * Maximum TWT wake interval in microseconds. */ - int maxWakeIntervalMicros; + long maxWakeIntervalUs; } diff --git a/wifi/aidl/android/hardware/wifi/TwtRequest.aidl b/wifi/aidl/android/hardware/wifi/TwtRequest.aidl index 5191713f5736633bc6c1538c15d0524a44bc7c30..6964a391c52a9061c9940cbbc3a09851e29fcf95 100644 --- a/wifi/aidl/android/hardware/wifi/TwtRequest.aidl +++ b/wifi/aidl/android/hardware/wifi/TwtRequest.aidl @@ -28,17 +28,23 @@ parcelable TwtRequest { /** * Minimum TWT wake duration in microseconds. */ - int minWakeDurationMicros; + int minWakeDurationUs; /** * Maximum TWT wake duration in microseconds. + * + * As per IEEE 802.11ax spec, section 9.4.2.199 TWT element, the maximum wake duration is + * 65280 microseconds. */ - int maxWakeDurationMicros; + int maxWakeDurationUs; /** * Minimum TWT wake interval in microseconds. */ - int minWakeIntervalMicros; + long minWakeIntervalUs; /** * Maximum TWT wake interval in microseconds. + * + * As per IEEE 802.11ax spec, section 9.4.2.199 TWT element, the maximum wake interval is + * 65535 * 2^31 microseconds. */ - int maxWakeIntervalMicros; + long maxWakeIntervalUs; } diff --git a/wifi/aidl/android/hardware/wifi/TwtSession.aidl b/wifi/aidl/android/hardware/wifi/TwtSession.aidl index 5a7ddb1a0bec927fe12bec8114332fdd820f6bf5..2d7e819df71948f8abf8e3dc01ef06f8962aa157 100644 --- a/wifi/aidl/android/hardware/wifi/TwtSession.aidl +++ b/wifi/aidl/android/hardware/wifi/TwtSession.aidl @@ -41,12 +41,12 @@ parcelable TwtSession { /** * TWT service period in microseconds. */ - int wakeDurationMicros; + int wakeDurationUs; /** * Time interval in microseconds between two successive TWT service periods. */ - int wakeIntervalMicros; + long wakeIntervalUs; /** * TWT negotiation type. diff --git a/wifi/aidl/android/hardware/wifi/TwtSessionStats.aidl b/wifi/aidl/android/hardware/wifi/TwtSessionStats.aidl index e2e2d12b7eb060bdbf980227467e98e61a884a8b..ba70426da171e6739043e858441fb86c198a381d 100644 --- a/wifi/aidl/android/hardware/wifi/TwtSessionStats.aidl +++ b/wifi/aidl/android/hardware/wifi/TwtSessionStats.aidl @@ -44,7 +44,7 @@ parcelable TwtSessionStats { /** * Average End of Service period in microseconds. */ - int avgEospDurationMicros; + int avgEospDurationUs; /** * Count of early terminations. diff --git a/wifi/aidl/default/Android.bp b/wifi/aidl/default/Android.bp index 31a35310463b8743c908e2c98bc56e1f0382f5d6..362ef1bed99cfc58e17e19391f2ecc19d944251d 100644 --- a/wifi/aidl/default/Android.bp +++ b/wifi/aidl/default/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_wifi_hal", default_applicable_licenses: ["hardware_interfaces_license"], } diff --git a/wifi/aidl/default/aidl_struct_util.cpp b/wifi/aidl/default/aidl_struct_util.cpp index b62b3a0774c2ee0bce1046533c02fa0567edcbd7..d9e023c80ea9c5f14cb12fe0ba8a79e7bfa3c394 100644 --- a/wifi/aidl/default/aidl_struct_util.cpp +++ b/wifi/aidl/default/aidl_struct_util.cpp @@ -1085,6 +1085,41 @@ bool convertLegacyLinkLayerStatsToAidl(const legacy_hal::LinkLayerStats& legacy_ return true; } +// TODO (b/324519882): Remove logs after validating the structure size. +void logAidlLinkLayerStatsSize(StaLinkLayerStats& aidl_stats) { + unsigned long expectedMaxRadios = 5; + unsigned long expectedMaxLinks = 5; + unsigned long expectedMaxChannelStats = 512; + unsigned long expectedMaxPeers = 3; + unsigned long expectedMaxRateStats = 1024; + + unsigned long maxChannelStats = 0, maxPeers = 0, maxRateStats = 0; + for (size_t i = 0; i < aidl_stats.radios.size(); i++) { + maxChannelStats = + std::max(maxChannelStats, (unsigned long)aidl_stats.radios[i].channelStats.size()); + } + for (size_t i = 0; i < aidl_stats.iface.links.size(); i++) { + maxPeers = std::max(maxPeers, (unsigned long)aidl_stats.iface.links[i].peers.size()); + for (size_t j = 0; j < aidl_stats.iface.links[i].peers.size(); j++) { + maxRateStats = + std::max(maxRateStats, + (unsigned long)aidl_stats.iface.links[i].peers[j].rateStats.size()); + } + } + + if (aidl_stats.radios.size() > expectedMaxRadios || + aidl_stats.iface.links.size() > expectedMaxLinks || + maxChannelStats > expectedMaxChannelStats || maxPeers > expectedMaxPeers || + maxRateStats > expectedMaxRateStats) { + LOG(INFO) << "StaLinkLayerStats exceeds expected vector size"; + LOG(INFO) << " numRadios: " << aidl_stats.radios.size(); + LOG(INFO) << " numLinks: " << aidl_stats.iface.links.size(); + LOG(INFO) << " maxChannelStats: " << maxChannelStats; + LOG(INFO) << " maxPeers: " << maxPeers; + LOG(INFO) << " maxRateStats: " << maxRateStats; + } +} + bool convertLegacyPeerInfoStatsToAidl(const legacy_hal::WifiPeerInfo& legacy_peer_info_stats, StaPeerInfo* aidl_peer_info_stats) { if (!aidl_peer_info_stats) { @@ -2741,9 +2776,8 @@ bool convertAidlRttConfigToLegacyV3(const RttConfig& aidl_config, if (!convertAidlRttConfigToLegacy(aidl_config, &(legacy_config->rtt_config))) { return false; } - legacy_config->tx_ltf_repetition_count = aidl_config.txLtfRepetitionCount; - legacy_config->ntb_min_measurement_time_millis = aidl_config.ntbMinMeasurementTimeMillis; - legacy_config->ntb_max_measurement_time_millis = aidl_config.ntbMaxMeasurementTimeMillis; + legacy_config->ntb_min_measurement_time = aidl_config.ntbMinMeasurementTime; + legacy_config->ntb_max_measurement_time = aidl_config.ntbMaxMeasurementTime; return true; } @@ -2887,11 +2921,10 @@ bool convertLegacyRttCapabilitiesToAidl( aidl_capabilities->bwSupport = convertLegacyRttBwBitmapToAidl(legacy_capabilities.bw_support); aidl_capabilities->mcVersion = legacy_capabilities.mc_version; // Initialize 11az parameters to default - aidl_capabilities->azPreambleSupport = RttPreamble::INVALID; - aidl_capabilities->azBwSupport = RttBw::BW_UNSPECIFIED; + aidl_capabilities->azPreambleSupport = (int)RttPreamble::INVALID; + aidl_capabilities->azBwSupport = (int)RttBw::BW_UNSPECIFIED; aidl_capabilities->ntbInitiatorSupported = false; aidl_capabilities->ntbResponderSupported = false; - aidl_capabilities->maxTxLtfRepetitionCount = 0; return true; } @@ -2914,12 +2947,11 @@ bool convertLegacyRttCapabilitiesV3ToAidl( convertLegacyRttBwBitmapToAidl(legacy_capabilities_v3.rtt_capab.bw_support); aidl_capabilities->mcVersion = legacy_capabilities_v3.rtt_capab.mc_version; aidl_capabilities->azPreambleSupport = - convertLegacyRttPreambleBitmapToAidl(legacy_capabilities_v3.az_preamble_support); + (int)convertLegacyRttPreambleBitmapToAidl(legacy_capabilities_v3.az_preamble_support); aidl_capabilities->azBwSupport = - convertLegacyRttBwBitmapToAidl(legacy_capabilities_v3.az_bw_support); + (int)convertLegacyRttBwBitmapToAidl(legacy_capabilities_v3.az_bw_support); aidl_capabilities->ntbInitiatorSupported = legacy_capabilities_v3.ntb_initiator_supported; aidl_capabilities->ntbResponderSupported = legacy_capabilities_v3.ntb_responder_supported; - aidl_capabilities->maxTxLtfRepetitionCount = legacy_capabilities_v3.max_tx_ltf_repetition_count; return true; } @@ -2994,9 +3026,12 @@ bool convertLegacyVectorOfRttResultToAidl( } aidl_result.channelFreqMHz = 0; aidl_result.packetBw = RttBw::BW_UNSPECIFIED; - aidl_result.txLtfRepetitionCount = 0; - aidl_result.ntbMinMeasurementTimeMillis = 0; - aidl_result.ntbMaxMeasurementTimeMillis = 0; + aidl_result.i2rTxLtfRepetitionCount = 0; + aidl_result.r2iTxLtfRepetitionCount = 0; + aidl_result.ntbMinMeasurementTime = 0; + aidl_result.ntbMaxMeasurementTime = 0; + aidl_result.numTxSpatialStreams = 0; + aidl_result.numRxSpatialStreams = 0; aidl_results->push_back(aidl_result); } return true; @@ -3017,9 +3052,12 @@ bool convertLegacyVectorOfRttResultV2ToAidl( aidl_result.channelFreqMHz = legacy_result->frequency != UNSPECIFIED ? legacy_result->frequency : 0; aidl_result.packetBw = convertLegacyRttBwToAidl(legacy_result->packet_bw); - aidl_result.txLtfRepetitionCount = 0; - aidl_result.ntbMinMeasurementTimeMillis = 0; - aidl_result.ntbMaxMeasurementTimeMillis = 0; + aidl_result.i2rTxLtfRepetitionCount = 0; + aidl_result.r2iTxLtfRepetitionCount = 0; + aidl_result.ntbMinMeasurementTime = 0; + aidl_result.ntbMaxMeasurementTime = 0; + aidl_result.numTxSpatialStreams = 0; + aidl_result.numRxSpatialStreams = 0; aidl_results->push_back(aidl_result); } return true; @@ -3041,9 +3079,12 @@ bool convertLegacyVectorOfRttResultV3ToAidl( ? legacy_result->rtt_result.frequency : 0; aidl_result.packetBw = convertLegacyRttBwToAidl(legacy_result->rtt_result.packet_bw); - aidl_result.txLtfRepetitionCount = legacy_result->tx_ltf_repetition_count; - aidl_result.ntbMinMeasurementTimeMillis = legacy_result->ntb_min_measurement_time_millis; - aidl_result.ntbMaxMeasurementTimeMillis = legacy_result->ntb_max_measurement_time_millis; + aidl_result.i2rTxLtfRepetitionCount = legacy_result->i2r_tx_ltf_repetition_count; + aidl_result.r2iTxLtfRepetitionCount = legacy_result->r2i_tx_ltf_repetition_count; + aidl_result.ntbMinMeasurementTime = legacy_result->ntb_min_measurement_time; + aidl_result.ntbMaxMeasurementTime = legacy_result->ntb_max_measurement_time; + aidl_result.numTxSpatialStreams = legacy_result->num_tx_sts; + aidl_result.numRxSpatialStreams = legacy_result->num_rx_sts; aidl_results->push_back(aidl_result); } return true; @@ -3587,13 +3628,13 @@ bool convertTwtCapabilitiesToAidl(legacy_hal::wifi_twt_capabilities legacy_twt_c if (legacy_twt_capabs.min_wake_duration_micros > legacy_twt_capabs.max_wake_duration_micros) { return false; } - aidl_twt_capabs->minWakeDurationMicros = legacy_twt_capabs.min_wake_duration_micros; - aidl_twt_capabs->maxWakeDurationMicros = legacy_twt_capabs.max_wake_duration_micros; + aidl_twt_capabs->minWakeDurationUs = legacy_twt_capabs.min_wake_duration_micros; + aidl_twt_capabs->maxWakeDurationUs = legacy_twt_capabs.max_wake_duration_micros; if (legacy_twt_capabs.min_wake_interval_micros > legacy_twt_capabs.max_wake_interval_micros) { return false; } - aidl_twt_capabs->minWakeIntervalMicros = legacy_twt_capabs.min_wake_interval_micros; - aidl_twt_capabs->maxWakeIntervalMicros = legacy_twt_capabs.max_wake_interval_micros; + aidl_twt_capabs->minWakeIntervalUs = legacy_twt_capabs.min_wake_interval_micros; + aidl_twt_capabs->maxWakeIntervalUs = legacy_twt_capabs.max_wake_interval_micros; return true; } @@ -3603,16 +3644,16 @@ bool convertAidlTwtRequestToLegacy(const TwtRequest aidl_twt_request, return false; } legacy_twt_request->mlo_link_id = aidl_twt_request.mloLinkId; - if (aidl_twt_request.minWakeDurationMicros > aidl_twt_request.maxWakeDurationMicros) { + if (aidl_twt_request.minWakeDurationUs > aidl_twt_request.maxWakeDurationUs) { return false; } - legacy_twt_request->min_wake_duration_micros = aidl_twt_request.minWakeDurationMicros; - legacy_twt_request->max_wake_duration_micros = aidl_twt_request.maxWakeDurationMicros; - if (aidl_twt_request.minWakeIntervalMicros > aidl_twt_request.maxWakeIntervalMicros) { + legacy_twt_request->min_wake_duration_micros = aidl_twt_request.minWakeDurationUs; + legacy_twt_request->max_wake_duration_micros = aidl_twt_request.maxWakeDurationUs; + if (aidl_twt_request.minWakeIntervalUs > aidl_twt_request.maxWakeIntervalUs) { return false; } - legacy_twt_request->min_wake_interval_micros = aidl_twt_request.minWakeIntervalMicros; - legacy_twt_request->max_wake_interval_micros = aidl_twt_request.maxWakeIntervalMicros; + legacy_twt_request->min_wake_interval_micros = aidl_twt_request.minWakeIntervalUs; + legacy_twt_request->max_wake_interval_micros = aidl_twt_request.maxWakeIntervalUs; return true; } @@ -3664,8 +3705,8 @@ bool convertLegacyHalTwtSessionToAidl(legacy_hal::wifi_twt_session twt_session, aidl_twt_session->sessionId = twt_session.session_id; aidl_twt_session->mloLinkId = twt_session.mlo_link_id; - aidl_twt_session->wakeDurationMicros = twt_session.wake_duration_micros; - aidl_twt_session->wakeIntervalMicros = twt_session.wake_interval_micros; + aidl_twt_session->wakeDurationUs = twt_session.wake_duration_micros; + aidl_twt_session->wakeIntervalUs = twt_session.wake_interval_micros; switch (twt_session.negotiation_type) { case WIFI_TWT_NEGO_TYPE_INDIVIDUAL: aidl_twt_session->negotiationType = TwtSession::TwtNegotiationType::INDIVIDUAL; @@ -3696,7 +3737,7 @@ bool convertLegacyHalTwtSessionStatsToAidl(legacy_hal::wifi_twt_session_stats tw aidl_twt_stats->avgRxPktCount = twt_stats.avg_pkt_num_rx; aidl_twt_stats->avgTxPktSize = twt_stats.avg_tx_pkt_size; aidl_twt_stats->avgRxPktSize = twt_stats.avg_rx_pkt_size; - aidl_twt_stats->avgEospDurationMicros = twt_stats.avg_eosp_dur_us; + aidl_twt_stats->avgEospDurationUs = twt_stats.avg_eosp_dur_us; aidl_twt_stats->eospCount = twt_stats.eosp_count; return true; diff --git a/wifi/aidl/default/aidl_struct_util.h b/wifi/aidl/default/aidl_struct_util.h index 708936354a819f14d8aadbdddc95c6d8a9b6cb43..2574f9546b831fd9d2249e68a74c5aaea520a3d4 100644 --- a/wifi/aidl/default/aidl_struct_util.h +++ b/wifi/aidl/default/aidl_struct_util.h @@ -94,6 +94,7 @@ bool convertLegacyLinkLayerMlStatsToAidl(const legacy_hal::LinkLayerMlStats& leg StaLinkLayerStats* aidl_stats); bool convertLegacyLinkLayerStatsToAidl(const legacy_hal::LinkLayerStats& legacy_stats, StaLinkLayerStats* aidl_stats); +void logAidlLinkLayerStatsSize(StaLinkLayerStats& aidl_stats); bool convertLegacyRoamingCapabilitiesToAidl( const legacy_hal::wifi_roaming_capabilities& legacy_caps, StaRoamingCapabilities* aidl_caps); diff --git a/wifi/aidl/default/wifi_legacy_hal_stubs.cpp b/wifi/aidl/default/wifi_legacy_hal_stubs.cpp index 3e4afd042765c1c6f8268d0e1725bebb3d0871d0..73ea08837f7123118776ff98bc3b4d4ac57af2dc 100644 --- a/wifi/aidl/default/wifi_legacy_hal_stubs.cpp +++ b/wifi/aidl/default/wifi_legacy_hal_stubs.cpp @@ -188,6 +188,7 @@ bool initHalFuncTableWithStubs(wifi_hal_fn* hal_fn) { populateStubFor(&hal_fn->wifi_twt_session_resume); populateStubFor(&hal_fn->wifi_twt_session_teardown); populateStubFor(&hal_fn->wifi_twt_session_get_stats); + populateStubFor(&hal_fn->wifi_virtual_interface_create_with_vendor_data); return true; } diff --git a/wifi/aidl/default/wifi_sta_iface.cpp b/wifi/aidl/default/wifi_sta_iface.cpp index f0509dc19eb76e9e6c462396d06c10a529b2fbe4..aee183d429d9fff8fb2a751b483c4ed6009f50f8 100644 --- a/wifi/aidl/default/wifi_sta_iface.cpp +++ b/wifi/aidl/default/wifi_sta_iface.cpp @@ -435,6 +435,7 @@ std::pair WifiStaIface::getLinkLayerStats } else { return {StaLinkLayerStats{}, createWifiStatus(WifiStatusCode::ERROR_UNKNOWN)}; } + aidl_struct_util::logAidlLinkLayerStatsSize(aidl_stats); return {aidl_stats, ndk::ScopedAStatus::ok()}; } diff --git a/wifi/aidl/vts/functional/Android.bp b/wifi/aidl/vts/functional/Android.bp index 6896110610bbca242b1b0c081bbe33b975842285..9994d0979a809ae4e7d9fa5e7868d9494da4d503 100644 --- a/wifi/aidl/vts/functional/Android.bp +++ b/wifi/aidl/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/aidl/vts/functional/wifi_aidl_test_utils.cpp b/wifi/aidl/vts/functional/wifi_aidl_test_utils.cpp index 986e3a857b62494ac7832acce6c9bae0706c13f3..21d50ac325906fc5bee2849fd3ec8317c5fd9524 100644 --- a/wifi/aidl/vts/functional/wifi_aidl_test_utils.cpp +++ b/wifi/aidl/vts/functional/wifi_aidl_test_utils.cpp @@ -62,6 +62,23 @@ bool configureChipToSupportConcurrencyTypeInternal(const std::shared_ptr generateOuiKeyedDataOptional(int oui) { + return std::optional{generateOuiKeyedData(oui)}; +} + } // namespace bool checkStatusCode(ndk::ScopedAStatus* status, WifiStatusCode expected_code) { @@ -238,3 +255,20 @@ int32_t getChipFeatureSet(const std::shared_ptr& wifi_chip) { bool isAidlServiceAvailable(const char* instance_name) { return AServiceManager_isDeclared(instance_name); } + +std::vector generateOuiKeyedDataList(int size) { + std::vector dataList; + for (int i = 0; i < size; i++) { + dataList.push_back(generateOuiKeyedData(i + 1)); + } + return dataList; +} + +// Generate OuiKeyedData list fully wrapped in std::optional +std::optional>> generateOuiKeyedDataListOptional(int size) { + std::vector> dataList; + for (int i = 0; i < size; i++) { + dataList.push_back(generateOuiKeyedDataOptional(i + 1)); + } + return std::optional>>{dataList}; +} diff --git a/wifi/aidl/vts/functional/wifi_aidl_test_utils.h b/wifi/aidl/vts/functional/wifi_aidl_test_utils.h index 921d6899265beb5a1987c2c760b8410555ac720e..1369dd487afeebe42ffd30bc724390c459a78828 100644 --- a/wifi/aidl/vts/functional/wifi_aidl_test_utils.h +++ b/wifi/aidl/vts/functional/wifi_aidl_test_utils.h @@ -21,6 +21,7 @@ #include #include #include +#include #include using aidl::android::hardware::wifi::IfaceConcurrencyType; @@ -30,6 +31,8 @@ using aidl::android::hardware::wifi::IWifiChip; using aidl::android::hardware::wifi::IWifiNanIface; using aidl::android::hardware::wifi::IWifiStaIface; using aidl::android::hardware::wifi::WifiStatusCode; +using aidl::android::hardware::wifi::common::OuiKeyedData; +using aidl::android::os::PersistableBundle; // Helper functions to obtain references to the various AIDL interface objects. std::shared_ptr getWifi(const char* instance_name); @@ -50,3 +53,6 @@ void stopWifiService(const char* instance_name); int32_t getChipFeatureSet(const std::shared_ptr& wifi_chip); bool checkStatusCode(ndk::ScopedAStatus* status, WifiStatusCode expected_code); bool isAidlServiceAvailable(const char* instance_name); +// Generate test vendor data. +std::vector generateOuiKeyedDataList(int size); +std::optional>> generateOuiKeyedDataListOptional(int size); diff --git a/wifi/aidl/vts/functional/wifi_nan_iface_aidl_test.cpp b/wifi/aidl/vts/functional/wifi_nan_iface_aidl_test.cpp index 738e72cf00af330d8c192663114dff030e98f54c..bc169a45b7f9a849f5dd9ea1cc34b777e318f6d5 100644 --- a/wifi/aidl/vts/functional/wifi_nan_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_nan_iface_aidl_test.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -60,6 +61,10 @@ using aidl::android::hardware::wifi::NanTxType; #define TIMEOUT_PERIOD 10 +namespace { +const auto& kTestVendorDataOptional = generateOuiKeyedDataListOptional(5); +} + class WifiNanIfaceAidlTest : public testing::TestWithParam { public: void SetUp() override { @@ -72,6 +77,7 @@ class WifiNanIfaceAidlTest : public testing::TestWithParam { std::shared_ptr callback = ndk::SharedRefBase::make(*this); EXPECT_TRUE(wifi_nan_iface_->registerEventCallback(callback).isOk()); + EXPECT_TRUE(wifi_nan_iface_->getInterfaceVersion(&interface_version_).isOk()); } void TearDown() override { stopWifiService(getInstanceName()); } @@ -401,6 +407,7 @@ class WifiNanIfaceAidlTest : public testing::TestWithParam { protected: std::shared_ptr wifi_nan_iface_; + int interface_version_; uint64_t callback_event_bitmap_; uint16_t id_; uint8_t session_id_; @@ -640,6 +647,10 @@ TEST_P(WifiNanIfaceAidlTest, StartPublishRequest) { nanPublishRequest.autoAcceptDataPathRequests = false; nanPublishRequest.publishType = NanPublishType::UNSOLICITED; nanPublishRequest.txType = NanTxType::BROADCAST; + if (interface_version_ >= 2) { + LOG(INFO) << "Including vendor data in Publish request"; + nanPublishRequest.vendorData = kTestVendorDataOptional; + } status = wifi_nan_iface_->startPublishRequest(inputCmdId + 1, nanPublishRequest); if (!checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED)) { diff --git a/wifi/aidl/vts/functional/wifi_rtt_controller_aidl_test.cpp b/wifi/aidl/vts/functional/wifi_rtt_controller_aidl_test.cpp index 4aedc0ef6f79ef4bdd416e6b251255e119399ae3..15966028277784a9c9a2577c37a69d5798ced0c7 100644 --- a/wifi/aidl/vts/functional/wifi_rtt_controller_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_rtt_controller_aidl_test.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -42,6 +43,10 @@ using aidl::android::hardware::wifi::WifiChannelInfo; using aidl::android::hardware::wifi::WifiChannelWidthInMhz; using aidl::android::hardware::wifi::WifiStatusCode; +namespace { +const auto& kTestVendorDataOptional = generateOuiKeyedDataListOptional(5); +} + class WifiRttControllerAidlTest : public testing::TestWithParam { public: void SetUp() override { @@ -50,6 +55,7 @@ class WifiRttControllerAidlTest : public testing::TestWithParam { stopWifiService(getInstanceName()); wifi_rtt_controller_ = getWifiRttController(); ASSERT_NE(nullptr, wifi_rtt_controller_.get()); + ASSERT_TRUE(wifi_rtt_controller_->getInterfaceVersion(&interface_version_).isOk()); // Check RTT support before we run the test. RttCapabilities caps = {}; @@ -82,6 +88,7 @@ class WifiRttControllerAidlTest : public testing::TestWithParam { } std::shared_ptr wifi_rtt_controller_; + int interface_version_; private: const char* getInstanceName() { return GetParam().c_str(); } @@ -153,6 +160,48 @@ TEST_P(WifiRttControllerAidlTest, EnableResponder) { EXPECT_TRUE(wifi_rtt_controller_->enableResponder(cmdId, channelInfo, 10, responder).isOk()); } +/* + * Request80211azNtbRangeMeasurement + * Tests the two sided 11az non-trigger based ranging - 802.11az NTB FTM protocol. + */ +TEST_P(WifiRttControllerAidlTest, Request80211azNtbRangeMeasurement) { + if (interface_version_ < 2) { + GTEST_SKIP() << "Request80211azNtbRangeMeasurement is available as of RttController V2"; + } + + RttCapabilities caps = getCapabilities(); + if (!caps.ntbInitiatorSupported) { + GTEST_SKIP() << "Skipping 11az NTB RTT since driver/fw does not support"; + } + + RttConfig config; + config.addr = {{0x00, 0x01, 0x02, 0x03, 0x04, 0x05}}; + config.type = RttType::TWO_SIDED_11AZ_NTB; + config.peer = RttPeerType::AP; + config.channel.width = WifiChannelWidthInMhz::WIDTH_80; + config.channel.centerFreq = 5180; + config.channel.centerFreq0 = 5210; + config.channel.centerFreq1 = 0; + config.bw = RttBw::BW_20MHZ; + config.preamble = RttPreamble::HT; + config.mustRequestLci = false; + config.mustRequestLcr = false; + config.numFramesPerBurst = 8; + config.numRetriesPerRttFrame = 0; + config.numRetriesPerFtmr = 0; + // 11az non-trigger based minimum measurement time in units of 100 microseconds. + config.ntbMinMeasurementTime = 2500; + // 11az non-trigger based maximum measurement time in units of 10 milliseconds. + config.ntbMaxMeasurementTime = 1500; + + int cmdId = 55; + std::vector configs = {config}; + EXPECT_TRUE(wifi_rtt_controller_->rangeRequest(cmdId, configs).isOk()); + + // Sleep for 2 seconds to wait for driver/firmware to complete RTT. + sleep(2); +} + /* * Request2SidedRangeMeasurement * Tests the two sided ranging - 802.11mc FTM protocol. @@ -226,6 +275,10 @@ TEST_P(WifiRttControllerAidlTest, RangeRequest) { config.numRetriesPerRttFrame = 3; config.numRetriesPerFtmr = 3; config.burstDuration = 9; + if (interface_version_ >= 2) { + LOG(INFO) << "Including vendor data in Rtt Config"; + config.vendorData = kTestVendorDataOptional; + } int cmdId = 55; std::vector configs = {config}; diff --git a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp index 1ea1237a2decda3479fbb9635ba3db0d615b305e..c87fe1329847223d6c1be998b94c260833754861 100644 --- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp @@ -29,6 +29,7 @@ #include "wifi_aidl_test_utils.h" +using aidl::android::hardware::wifi::CachedScanData; using aidl::android::hardware::wifi::IWifi; using aidl::android::hardware::wifi::IWifiStaIface; using aidl::android::hardware::wifi::MacAddress; @@ -39,6 +40,8 @@ using aidl::android::hardware::wifi::StaLinkLayerStats; using aidl::android::hardware::wifi::StaRoamingCapabilities; using aidl::android::hardware::wifi::StaRoamingConfig; using aidl::android::hardware::wifi::StaRoamingState; +using aidl::android::hardware::wifi::TwtCapabilities; +using aidl::android::hardware::wifi::TwtRequest; using aidl::android::hardware::wifi::WifiBand; using aidl::android::hardware::wifi::WifiDebugRxPacketFateReport; using aidl::android::hardware::wifi::WifiDebugTxPacketFateReport; @@ -50,6 +53,7 @@ class WifiStaIfaceAidlTest : public testing::TestWithParam { stopWifiService(getInstanceName()); wifi_sta_iface_ = getWifiStaIface(getInstanceName()); ASSERT_NE(nullptr, wifi_sta_iface_.get()); + ASSERT_TRUE(wifi_sta_iface_->getInterfaceVersion(&interface_version_).isOk()); } void TearDown() override { stopWifiService(getInstanceName()); } @@ -68,22 +72,24 @@ class WifiStaIfaceAidlTest : public testing::TestWithParam { } std::shared_ptr wifi_sta_iface_; + int interface_version_; - // Checks if the MdnsOffloadManagerService is installed. - bool isMdnsOffloadServicePresent() { - int status = - // --query-flags MATCH_SYSTEM_ONLY(1048576) will only return matched service - // installed on system or system_ext partition. The MdnsOffloadManagerService should - // be installed on system_ext partition. - // NOLINTNEXTLINE(cert-env33-c) - system("pm query-services --query-flags 1048576" - " com.android.tv.mdnsoffloadmanager/" - "com.android.tv.mdnsoffloadmanager.MdnsOffloadManagerService" - " | egrep -q mdnsoffloadmanager"); - return status == 0; - } - - // Detected panel TV device by using ro.oem.key1 property. + // Checks if the mDNS Offload is supported by any NIC. + bool isMdnsOffloadPresentInNIC() { + return testing::deviceSupportsFeature("com.google.android.tv.mdns_offload"); + } + + bool doesDeviceSupportFullNetworkingUnder2w() { + return testing::deviceSupportsFeature("com.google.android.tv.full_networking_under_2w"); + } + + // Detect TV devices. + bool isTvDevice() { + return testing::deviceSupportsFeature("android.software.leanback") || + testing::deviceSupportsFeature("android.hardware.type.television"); + } + + // Detect Panel TV devices by using ro.oem.key1 property. // https://docs.partner.android.com/tv/build/platform/props-vars/ro-oem-key1 bool isPanelTvDevice() { const std::string oem_key1 = getPropertyString("ro.oem.key1"); @@ -144,10 +150,23 @@ TEST_P(WifiStaIfaceAidlTest, GetFeatureSet) { */ // @VsrTest = 5.3.12 TEST_P(WifiStaIfaceAidlTest, CheckApfIsSupported) { - // Flat panel TV devices that support MDNS offload do not have to implement APF if the WiFi - // chipset does not have sufficient RAM to do so. - if (isPanelTvDevice() && isMdnsOffloadServicePresent()) { - GTEST_SKIP() << "Panel TV supports mDNS offload. It is not required to support APF"; + const std::string oem_key1 = getPropertyString("ro.oem.key1"); + if (isTvDevice()) { + // Flat panel TV devices that support MDNS offload do not have to implement APF if the WiFi + // chipset does not have sufficient RAM to do so. + if (isPanelTvDevice() && isMdnsOffloadPresentInNIC()) { + GTEST_SKIP() << "Panel TV supports mDNS offload. It is not required to support APF"; + } + // For TV devices declaring the + // com.google.android.tv.full_networking_under_2w feature, this indicates + // the device can meet the <= 2W standby power requirement while + // continuously processing network packets on the CPU, even in standby mode. + // In these cases, APF support is strongly recommended rather than being + // mandatory. + if (doesDeviceSupportFullNetworkingUnder2w()) { + GTEST_SKIP() << "TV Device meets the <= 2W standby power demand requirement. It is not " + "required to support APF."; + } } int vendor_api_level = property_get_int32("ro.vendor.api_level", 0); // Before VSR 14, APF support is optional. @@ -157,14 +176,18 @@ TEST_P(WifiStaIfaceAidlTest, CheckApfIsSupported) { } StaApfPacketFilterCapabilities apf_caps = {}; EXPECT_TRUE(wifi_sta_iface_->getApfPacketFilterCapabilities(&apf_caps).isOk()); - } else { - EXPECT_TRUE(isFeatureSupported(IWifiStaIface::FeatureSetMask::APF)); - StaApfPacketFilterCapabilities apf_caps = {}; - EXPECT_TRUE(wifi_sta_iface_->getApfPacketFilterCapabilities(&apf_caps).isOk()); - // The APF version must be 4 and the usable memory must be at least - // 1024 bytes. - EXPECT_EQ(apf_caps.version, 4); - EXPECT_GE(apf_caps.maxLength, 1024); + return; + } + + EXPECT_TRUE(isFeatureSupported(IWifiStaIface::FeatureSetMask::APF)); + StaApfPacketFilterCapabilities apf_caps = {}; + EXPECT_TRUE(wifi_sta_iface_->getApfPacketFilterCapabilities(&apf_caps).isOk()); + EXPECT_GE(apf_caps.version, 4); + // Based on VSR-14 the usable memory must be at least 1024 bytes. + EXPECT_GE(apf_caps.maxLength, 1024); + if (vendor_api_level >= __ANDROID_API_V__) { + // Based on VSR-15 the usable memory must be at least 2000 bytes. + EXPECT_GE(apf_caps.maxLength, 2000); } } @@ -297,6 +320,21 @@ TEST_P(WifiStaIfaceAidlTest, RoamingControl) { EXPECT_TRUE(wifi_sta_iface_->setRoamingState(StaRoamingState::ENABLED).isOk()); } +/* + * RoamingModeControl + */ +TEST_P(WifiStaIfaceAidlTest, RoamingModeControl) { + if (interface_version_ < 2) { + GTEST_SKIP() << "Roaming mode control is available as of sta_iface V2"; + } + if (!isFeatureSupported(IWifiStaIface::FeatureSetMask::ROAMING_MODE_CONTROL)) { + GTEST_SKIP() << "Roaming mode control is not supported."; + } + + // Enable aggressive roaming. + EXPECT_TRUE(wifi_sta_iface_->setRoamingState(StaRoamingState::AGGRESSIVE).isOk()); +} + /* * EnableNDOffload */ @@ -324,6 +362,108 @@ TEST_P(WifiStaIfaceAidlTest, PacketFateMonitoring) { } } +/* + * CachedScanData + */ +TEST_P(WifiStaIfaceAidlTest, CachedScanData) { + if (!isFeatureSupported(IWifiStaIface::FeatureSetMask::CACHED_SCAN_DATA)) { + GTEST_SKIP() << "Cached scan data is not supported."; + } + + // Retrieve cached scan data. + CachedScanData cached_scan_data = {}; + EXPECT_TRUE(wifi_sta_iface_->getCachedScanData(&cached_scan_data).isOk()); + + if (cached_scan_data.cachedScanResults.size() > 0) { + EXPECT_GT(cached_scan_data.cachedScanResults[0].frequencyMhz, 0); + } +} + +TEST_P(WifiStaIfaceAidlTest, TwtGetCapabilities) { + if (interface_version_ < 2) { + GTEST_SKIP() << "TwtGetCapabilities is available as of sta_iface V2"; + } + + TwtCapabilities twt_capabilities = {}; + auto status = wifi_sta_iface_->twtGetCapabilities(&twt_capabilities); + if (checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED)) { + GTEST_SKIP() << "twtGetCapabilities() is not supported by the vendor"; + } + EXPECT_TRUE(status.isOk()); + if (!twt_capabilities.isTwtRequesterSupported) { + GTEST_SKIP() << "TWT is not supported"; + } + + EXPECT_GT(twt_capabilities.minWakeDurationUs, 0); + EXPECT_GT(twt_capabilities.maxWakeDurationUs, 0); + EXPECT_GT(twt_capabilities.minWakeIntervalUs, 0); + EXPECT_GT(twt_capabilities.maxWakeIntervalUs, 0); +} + +TEST_P(WifiStaIfaceAidlTest, TwtSessionSetup) { + if (interface_version_ < 2) { + GTEST_SKIP() << "TwtSessionSetup is available as of sta_iface V2"; + } + + TwtCapabilities twt_capabilities = {}; + auto status = wifi_sta_iface_->twtGetCapabilities(&twt_capabilities); + if (checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED)) { + GTEST_SKIP() << "twtGetCapabilities() is not supported by the vendor"; + } + EXPECT_TRUE(status.isOk()); + if (!twt_capabilities.isTwtRequesterSupported) { + GTEST_SKIP() << "TWT is not supported"; + } + + TwtRequest twtRequest; + twtRequest.mloLinkId = 0; + twtRequest.minWakeDurationUs = twt_capabilities.minWakeDurationUs; + twtRequest.maxWakeDurationUs = twt_capabilities.maxWakeDurationUs; + twtRequest.minWakeIntervalUs = twt_capabilities.minWakeIntervalUs; + twtRequest.maxWakeIntervalUs = twt_capabilities.maxWakeIntervalUs; + EXPECT_TRUE(wifi_sta_iface_->twtSessionSetup(1, twtRequest).isOk()); +} + +TEST_P(WifiStaIfaceAidlTest, TwtSessionGetStats) { + if (interface_version_ < 2) { + GTEST_SKIP() << "TwtSessionGetStats is available as of sta_iface V2"; + } + + TwtCapabilities twt_capabilities = {}; + auto status = wifi_sta_iface_->twtGetCapabilities(&twt_capabilities); + if (checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED)) { + GTEST_SKIP() << "twtGetCapabilities() is not supported by the vendor"; + } + EXPECT_TRUE(status.isOk()); + if (!twt_capabilities.isTwtRequesterSupported) { + GTEST_SKIP() << "TWT is not supported"; + } + + // Expecting a IWifiStaIfaceEventCallback.onTwtFailure() with INVALID_PARAMS + // as the error code. + EXPECT_TRUE(wifi_sta_iface_->twtSessionGetStats(1, 10).isOk()); +} + +TEST_P(WifiStaIfaceAidlTest, TwtSessionTeardown) { + if (interface_version_ < 2) { + GTEST_SKIP() << "TwtSessionTeardown is available as of sta_iface V3"; + } + + TwtCapabilities twt_capabilities = {}; + auto status = wifi_sta_iface_->twtGetCapabilities(&twt_capabilities); + if (checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED)) { + GTEST_SKIP() << "twtGetCapabilities() is not supported by the vendor"; + } + EXPECT_TRUE(status.isOk()); + if (!twt_capabilities.isTwtRequesterSupported) { + GTEST_SKIP() << "TWT is not supported"; + } + + // Expecting a IWifiStaIfaceEventCallback.onTwtFailure() with INVALID_PARAMS + // as the error code. + EXPECT_TRUE(wifi_sta_iface_->twtSessionTeardown(1, 10).isOk()); +} + GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(WifiStaIfaceAidlTest); INSTANTIATE_TEST_SUITE_P(WifiTest, WifiStaIfaceAidlTest, testing::ValuesIn(android::getAidlHalInstanceNames(IWifi::descriptor)), diff --git a/wifi/common/aidl/Android.bp b/wifi/common/aidl/Android.bp index 1913451fd7c04b36d9ca83f2b006b6ccd8c79e4d..0920a559c33d4ca3db740307abc0cda74ce93db6 100644 --- a/wifi/common/aidl/Android.bp +++ b/wifi/common/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -43,5 +44,16 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, }, + versions_with_info: [ + { + version: "1", + imports: [], + }, + ], + frozen: true, + } diff --git a/wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/.hash b/wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/.hash new file mode 100644 index 0000000000000000000000000000000000000000..7e2287795aa7f5cb58b48211de73e39568f734c5 --- /dev/null +++ b/wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/.hash @@ -0,0 +1 @@ +6a467a628209519b1b0ce9260c40157b7fea7713 diff --git a/wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/android/hardware/wifi/common/OuiKeyedData.aidl b/wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/android/hardware/wifi/common/OuiKeyedData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..640a1f69d9fb92fe4db101a68765516ccffea6ab --- /dev/null +++ b/wifi/common/aidl/aidl_api/android.hardware.wifi.common/1/android/hardware/wifi/common/OuiKeyedData.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.common; +@VintfStability +parcelable OuiKeyedData { + int oui; + android.os.PersistableBundle vendorData; +} diff --git a/wifi/hostapd/1.0/Android.bp b/wifi/hostapd/1.0/Android.bp index afcd45cc0ce7329991af59abc9d8fcced86aed93..38083e7d45716bbec04af0231e2f87d8f836cf35 100644 --- a/wifi/hostapd/1.0/Android.bp +++ b/wifi/hostapd/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -21,4 +22,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/hostapd/1.0/vts/functional/Android.bp b/wifi/hostapd/1.0/vts/functional/Android.bp index daf5b60bfc8f7416a05e8f3a94b54cbef4d20278..a44ae6dfb59ddc0b07f9f9c29e891715e05b5e83 100644 --- a/wifi/hostapd/1.0/vts/functional/Android.bp +++ b/wifi/hostapd/1.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -28,7 +29,7 @@ cc_library_static { defaults: ["VtsHalTargetTestDefaults"], srcs: ["hostapd_hidl_test_utils.cpp"], export_include_dirs: [ - "." + ".", ], static_libs: [ "VtsHalWifiV1_0TargetTestUtil", @@ -57,5 +58,8 @@ cc_test { "libwifi-system", "libwifi-system-iface", ], - test_suites: ["general-tests", "vts"], + test_suites: [ + "general-tests", + "vts", + ], } diff --git a/wifi/hostapd/1.1/Android.bp b/wifi/hostapd/1.1/Android.bp index f5f2fbe93aa3ec201835d09442d77176621ca5a0..27b80794ae2b99703272847988298b7465fb06f2 100644 --- a/wifi/hostapd/1.1/Android.bp +++ b/wifi/hostapd/1.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -22,4 +23,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/hostapd/1.1/vts/functional/Android.bp b/wifi/hostapd/1.1/vts/functional/Android.bp index 999a6a7d3271adbd84e606629d32b30dcb3bc5a8..196730e9c0ad982077f148477be1d7db9e34b06e 100644 --- a/wifi/hostapd/1.1/vts/functional/Android.bp +++ b/wifi/hostapd/1.1/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/hostapd/1.2/Android.bp b/wifi/hostapd/1.2/Android.bp index 4ca41aa2a790e1aa9a400e008db2e44301382c5b..15446af3778a356ed096689ea0395c23d5f292fc 100644 --- a/wifi/hostapd/1.2/Android.bp +++ b/wifi/hostapd/1.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -23,4 +24,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/hostapd/1.2/vts/functional/Android.bp b/wifi/hostapd/1.2/vts/functional/Android.bp index 26edab576bcb32fd7918bc2eccfcb638af718c73..411110b33de0ad3ba65fdb0f06cf4c93b87f3b32 100644 --- a/wifi/hostapd/1.2/vts/functional/Android.bp +++ b/wifi/hostapd/1.2/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/hostapd/1.3/Android.bp b/wifi/hostapd/1.3/Android.bp index f75b5e25da218282dc4fa51a461b47d381e94286..5598327808cb85141f6869029b0f6356e6ec9aef 100644 --- a/wifi/hostapd/1.3/Android.bp +++ b/wifi/hostapd/1.3/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/hostapd/1.3/vts/functional/Android.bp b/wifi/hostapd/1.3/vts/functional/Android.bp index 78cd4af9d2821fec539fa3e950bdd5823e5f3a62..50ecc28733ea23e68a5dd893b7e290c995b84097 100644 --- a/wifi/hostapd/1.3/vts/functional/Android.bp +++ b/wifi/hostapd/1.3/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/hostapd/aidl/Android.bp b/wifi/hostapd/aidl/Android.bp index cdc94bb0361efce3de1a00244fc74dee074e5415..2e4d4d1eb2f97b10488c76caaf55fea306f55d99 100644 --- a/wifi/hostapd/aidl/Android.bp +++ b/wifi/hostapd/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -39,6 +40,9 @@ aidl_interface { "com.android.wifi", ], min_sdk_version: "30", + lint: { + baseline_filename: "lint-baseline.xml", + }, }, ndk: { gen_trace: true, @@ -46,11 +50,20 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, }, versions_with_info: [ { version: "1", imports: [], }, + { + version: "2", + imports: ["android.hardware.wifi.common-V1"], + }, + ], + frozen: true, } diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/.hash b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/.hash new file mode 100644 index 0000000000000000000000000000000000000000..1b118bea44d67dbbe96d8800bc6dd7117e7c16e3 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/.hash @@ -0,0 +1 @@ +7dd4f61d4cddf5620591aaf0a3d67c61a8eb7287 diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ApInfo.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ApInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1a66105b8f8373a0c6a567bc686699623711aa09 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ApInfo.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable ApInfo { + String ifaceName; + String apIfaceInstance; + int freqMhz; + android.hardware.wifi.hostapd.ChannelBandwidth channelBandwidth; + android.hardware.wifi.hostapd.Generation generation; + byte[] apIfaceInstanceMacAddress; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/BandMask.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/BandMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fa9f1982d5405a3ed8935b8458ee6fb922d7d6ba --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/BandMask.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum BandMask { + BAND_2_GHZ = (1 << 0) /* 1 */, + BAND_5_GHZ = (1 << 1) /* 2 */, + BAND_6_GHZ = (1 << 2) /* 4 */, + BAND_60_GHZ = (1 << 3) /* 8 */, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelBandwidth.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelBandwidth.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6c1fd22266c4f8968a0eba9e8ee260daaa5a993b --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelBandwidth.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum ChannelBandwidth { + BANDWIDTH_INVALID = 0, + BANDWIDTH_AUTO = 1, + BANDWIDTH_20_NOHT = 2, + BANDWIDTH_20 = 3, + BANDWIDTH_40 = 4, + BANDWIDTH_80 = 5, + BANDWIDTH_80P80 = 6, + BANDWIDTH_160 = 7, + BANDWIDTH_320 = 8, + BANDWIDTH_2160 = 9, + BANDWIDTH_4320 = 10, + BANDWIDTH_6480 = 11, + BANDWIDTH_8640 = 12, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelParams.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..43a9ada0e826562a3dacb15f9890b275a766b740 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ChannelParams.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable ChannelParams { + android.hardware.wifi.hostapd.BandMask bandMask; + android.hardware.wifi.hostapd.FrequencyRange[] acsChannelFreqRangesMhz; + boolean enableAcs; + boolean acsShouldExcludeDfs; + int channel; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ClientInfo.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ClientInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c4d62b68cc5420e1ebe92d9e99858b52ba9f7f89 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ClientInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable ClientInfo { + String ifaceName; + String apIfaceInstance; + byte[] clientAddress; + boolean isConnected; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/DebugLevel.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/DebugLevel.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9795211df0b1a7ef8a3dd5f2da67eb1cdf7d9b73 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/DebugLevel.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum DebugLevel { + EXCESSIVE = 0, + MSGDUMP = 1, + DEBUG = 2, + INFO = 3, + WARNING = 4, + ERROR = 5, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/EncryptionType.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/EncryptionType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..840b8755c1a6171d935c0f0eab5af30ed3f62a05 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/EncryptionType.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum EncryptionType { + NONE, + WPA, + WPA2, + WPA3_SAE_TRANSITION, + WPA3_SAE, + WPA3_OWE_TRANSITION, + WPA3_OWE, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/FrequencyRange.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/FrequencyRange.aidl new file mode 100644 index 0000000000000000000000000000000000000000..11851438bd0042e02b639fbd6de0600adfd376bd --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/FrequencyRange.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable FrequencyRange { + int startMhz; + int endMhz; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Generation.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Generation.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a0c18860217f095da6079aba64976b968a0b4a6a --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Generation.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum Generation { + WIFI_STANDARD_UNKNOWN = (-1) /* -1 */, + WIFI_STANDARD_LEGACY = 0, + WIFI_STANDARD_11N = 1, + WIFI_STANDARD_11AC = 2, + WIFI_STANDARD_11AD = 3, + WIFI_STANDARD_11AX = 4, + WIFI_STANDARD_11BE = 5, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HostapdStatusCode.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HostapdStatusCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7edff15c5e521558990a3e3b913486a1d221c0fe --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HostapdStatusCode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum HostapdStatusCode { + SUCCESS, + FAILURE_UNKNOWN, + FAILURE_ARGS_INVALID, + FAILURE_IFACE_UNKNOWN, + FAILURE_IFACE_EXISTS, + FAILURE_CLIENT_UNKNOWN, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HwModeParams.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HwModeParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d732bcbcd8012f84cbdab918f184b217df9edebd --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/HwModeParams.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable HwModeParams { + boolean enable80211N; + boolean enable80211AC; + boolean enable80211AX; + boolean enable6GhzBand; + boolean enableHeSingleUserBeamformer; + boolean enableHeSingleUserBeamformee; + boolean enableHeMultiUserBeamformer; + boolean enableHeTargetWakeTime; + boolean enableEdmg; + boolean enable80211BE; + android.hardware.wifi.hostapd.ChannelBandwidth maximumChannelBandwidth; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapd.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapd.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ff941fdbf767a86dc0dfdadd8c206719e2f96142 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapd.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +interface IHostapd { + void addAccessPoint(in android.hardware.wifi.hostapd.IfaceParams ifaceParams, in android.hardware.wifi.hostapd.NetworkParams nwParams); + void forceClientDisconnect(in String ifaceName, in byte[] clientAddress, in android.hardware.wifi.hostapd.Ieee80211ReasonCode reasonCode); + void registerCallback(in android.hardware.wifi.hostapd.IHostapdCallback callback); + void removeAccessPoint(in String ifaceName); + void setDebugParams(in android.hardware.wifi.hostapd.DebugLevel level); + oneway void terminate(); +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapdCallback.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapdCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9dd062a1f2ec9a36d9d519a380d329ecb5ba03e6 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IHostapdCallback.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +interface IHostapdCallback { + oneway void onApInstanceInfoChanged(in android.hardware.wifi.hostapd.ApInfo apInfo); + oneway void onConnectedClientsChanged(in android.hardware.wifi.hostapd.ClientInfo clientInfo); + oneway void onFailure(in String ifaceName, in String instanceName); +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Ieee80211ReasonCode.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Ieee80211ReasonCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..99879b59bdd27d9b8797fc57994fc921b3ab19cf --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/Ieee80211ReasonCode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum Ieee80211ReasonCode { + WLAN_REASON_UNSPECIFIED = 1, + WLAN_REASON_PREV_AUTH_NOT_VALID = 2, + WLAN_REASON_DISASSOC_AP_BUSY = 5, +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IfaceParams.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IfaceParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..64367bbe70e54f65046b66607513aec46bf7a603 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/IfaceParams.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable IfaceParams { + String name; + android.hardware.wifi.hostapd.HwModeParams hwModeParams; + android.hardware.wifi.hostapd.ChannelParams[] channelParams; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/NetworkParams.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/NetworkParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..45542237514190490eab0f561f5c4e2a30af0b62 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/NetworkParams.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@VintfStability +parcelable NetworkParams { + byte[] ssid; + boolean isHidden; + android.hardware.wifi.hostapd.EncryptionType encryptionType; + String passphrase; + boolean isMetered; + byte[] vendorElements; +} diff --git a/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ParamSizeLimits.aidl b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ParamSizeLimits.aidl new file mode 100644 index 0000000000000000000000000000000000000000..70f94c1b5e54bf73f01c51327ceae988b24f9fc7 --- /dev/null +++ b/wifi/hostapd/aidl/aidl_api/android.hardware.wifi.hostapd/2/android/hardware/wifi/hostapd/ParamSizeLimits.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.hostapd; +@Backing(type="int") @VintfStability +enum ParamSizeLimits { + SSID_MAX_LEN_IN_BYTES = 32, + WPA2_PSK_PASSPHRASE_MIN_LEN_IN_BYTES = 8, + WPA2_PSK_PASSPHRASE_MAX_LEN_IN_BYTES = 63, +} diff --git a/wifi/hostapd/aidl/lint-baseline.xml b/wifi/hostapd/aidl/lint-baseline.xml index 657622e6749681d1b2fced5b5cdbed83a33985d9..4329e1219f1c3358f0d903c8562b06d272ab1eea 100644 --- a/wifi/hostapd/aidl/lint-baseline.xml +++ b/wifi/hostapd/aidl/lint-baseline.xml @@ -1,5 +1,5 @@ - + @@ -18,8 +18,8 @@ errorLine1=" this.markVintfStability();" errorLine2=" ~~~~~~~~~~~~~~~~~~"> @@ -29,8 +29,8 @@ errorLine1=" this.markVintfStability();" errorLine2=" ~~~~~~~~~~~~~~~~~~"> @@ -40,9 +40,27 @@ errorLine1=" this.markVintfStability();" errorLine2=" ~~~~~~~~~~~~~~~~~~"> + + + + + + + + \ No newline at end of file diff --git a/wifi/hostapd/aidl/vts/functional/Android.bp b/wifi/hostapd/aidl/vts/functional/Android.bp index 87eee824a0eb75d3a3c2016dd0420b74fbfdd6bd..f614679c44f7fe36032313e2dd0ee456b41738ea 100644 --- a/wifi/hostapd/aidl/vts/functional/Android.bp +++ b/wifi/hostapd/aidl/vts/functional/Android.bp @@ -1,4 +1,5 @@ package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -20,7 +21,7 @@ cc_test { "libvndksupport", ], static_libs: [ - "android.hardware.wifi.hostapd-V1-ndk", + "android.hardware.wifi.hostapd-V2-ndk", "VtsHalWifiV1_0TargetTestUtil", "VtsHalWifiV1_5TargetTestUtil", "VtsHalWifiV1_6TargetTestUtil", diff --git a/wifi/hostapd/aidl/vts/functional/VtsHalHostapdTargetTest.cpp b/wifi/hostapd/aidl/vts/functional/VtsHalHostapdTargetTest.cpp index 137537d18b2e989b9cf78db2b1159d16964eec9c..590c58bad539acd59c1e971dd7cf58dd545ed6f9 100644 --- a/wifi/hostapd/aidl/vts/functional/VtsHalHostapdTargetTest.cpp +++ b/wifi/hostapd/aidl/vts/functional/VtsHalHostapdTargetTest.cpp @@ -58,6 +58,7 @@ const int kIfaceChannel = 6; const int kIfaceInvalidChannel = 567; const std::vector kTestZeroMacAddr(6, 0x0); const Ieee80211ReasonCode kTestDisconnectReasonCode = Ieee80211ReasonCode::WLAN_REASON_UNSPECIFIED; +const auto& kTestVendorDataOptional = generateOuiKeyedDataListOptional(5); inline BandMask operator|(BandMask a, BandMask b) { return static_cast(static_cast(a) | @@ -74,6 +75,7 @@ class HostapdAidl : public testing::TestWithParam { hostapd = getHostapd(GetParam()); ASSERT_NE(hostapd, nullptr); EXPECT_TRUE(hostapd->setDebugParams(DebugLevel::EXCESSIVE).isOk()); + EXPECT_TRUE(hostapd->getInterfaceVersion(&interface_version_).isOk()); isAcsSupport = testing::checkSubstringInCommandOutput( "/system/bin/cmd wifi get-softap-supported-features", @@ -98,6 +100,7 @@ class HostapdAidl : public testing::TestWithParam { bool isAcsSupport; bool isWpa3SaeSupport; bool isBridgedSupport; + int interface_version_; IfaceParams getIfaceParamsWithoutAcs(std::string iface_name) { IfaceParams iface_params; @@ -342,6 +345,22 @@ TEST_P(HostapdAidl, AddOpenAccessPointWithoutAcs) { EXPECT_TRUE(status.isOk()); } +/** + * Adds an access point with Open network config & ACS disabled. + * IfaceParams will also include vendor data. + * Access point creation should pass. + */ +TEST_P(HostapdAidl, AddOpenAccessPointWithVendorData) { + if (interface_version_ < 2) { + GTEST_SKIP() << "Vendor data is available in IfaceParams as of Hostapd V2"; + } + std::string ifname = setupApIfaceAndGetName(false); + IfaceParams params = getIfaceParamsWithoutAcs(ifname); + params.vendorData = kTestVendorDataOptional; + auto status = hostapd->addAccessPoint(params, getOpenNwParams()); + EXPECT_TRUE(status.isOk()); +} + /** * Adds an access point with SAE Transition network config & ACS disabled. * Access point creation should pass. diff --git a/wifi/netlinkinterceptor/aidl/Android.bp b/wifi/netlinkinterceptor/aidl/Android.bp index 2f7f34fb240d54ef1bf74e3416660a63c6c51d39..8c04e3191bd1bf97f35b9d3d03e7e43a8a36eef8 100644 --- a/wifi/netlinkinterceptor/aidl/Android.bp +++ b/wifi/netlinkinterceptor/aidl/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/netlinkinterceptor/aidl/default/Android.bp b/wifi/netlinkinterceptor/aidl/default/Android.bp index c3a0c03ce786ef0072b6558bd7234811267a1ed4..6bdd9fcbdec8921ebbbc867234c1ed37af333d2d 100644 --- a/wifi/netlinkinterceptor/aidl/default/Android.bp +++ b/wifi/netlinkinterceptor/aidl/default/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/netlinkinterceptor/aidl/default/InterceptorRelay.h b/wifi/netlinkinterceptor/aidl/default/InterceptorRelay.h index 0178c90e1e69b133306a10e7496e2453c1cbe20b..915b5ffbc313da09a3f1a7bacd19f5eba9c12098 100644 --- a/wifi/netlinkinterceptor/aidl/default/InterceptorRelay.h +++ b/wifi/netlinkinterceptor/aidl/default/InterceptorRelay.h @@ -18,6 +18,7 @@ #include +#include #include #include diff --git a/wifi/netlinkinterceptor/libnlinterceptor/Android.bp b/wifi/netlinkinterceptor/libnlinterceptor/Android.bp index 671cd8501dcfb26f55d307bfd864618ec22e0bb6..9b278b6e86d83da92684989bd947a818949f982f 100644 --- a/wifi/netlinkinterceptor/libnlinterceptor/Android.bp +++ b/wifi/netlinkinterceptor/libnlinterceptor/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/netlinkinterceptor/vts/functional/Android.bp b/wifi/netlinkinterceptor/vts/functional/Android.bp index 80608a74a6ded51494eff83045ad5f6726ee0d96..30766c0fe954a868ca21e3fa3f48b9ba54e4f09e 100644 --- a/wifi/netlinkinterceptor/vts/functional/Android.bp +++ b/wifi/netlinkinterceptor/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.0/Android.bp b/wifi/supplicant/1.0/Android.bp index 66e9353833434abfc3c349ee3ab3e52a76745050..3449e403e8e37926303751a212266ae31d3acee6 100644 --- a/wifi/supplicant/1.0/Android.bp +++ b/wifi/supplicant/1.0/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -31,4 +32,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/supplicant/1.0/vts/functional/Android.bp b/wifi/supplicant/1.0/vts/functional/Android.bp index 2d86822fc78c5edf5dbfb0a322b68595a659bc2d..353e57bc4d55bb91860ac9fce06b08d31e424ac0 100644 --- a/wifi/supplicant/1.0/vts/functional/Android.bp +++ b/wifi/supplicant/1.0/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.1/Android.bp b/wifi/supplicant/1.1/Android.bp index c62437455e8d38577fc48a407e9f552cac88623a..e2582e5d55a546f450fd2bce8dbd426d1299fb34 100644 --- a/wifi/supplicant/1.1/Android.bp +++ b/wifi/supplicant/1.1/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -23,4 +24,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/supplicant/1.1/vts/functional/Android.bp b/wifi/supplicant/1.1/vts/functional/Android.bp index 68cda33d3e4f39d75763755ee3aef990532d9687..215c1cafb13a2d5c9cdfa17da68950be226bc188 100644 --- a/wifi/supplicant/1.1/vts/functional/Android.bp +++ b/wifi/supplicant/1.1/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.2/Android.bp b/wifi/supplicant/1.2/Android.bp index d5d937fac0967279adb0ace4012bc1ec16bb6f2c..c7ce01006c0ddef8533203c6dc03ed4b145976dd 100644 --- a/wifi/supplicant/1.2/Android.bp +++ b/wifi/supplicant/1.2/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -26,4 +27,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/supplicant/1.2/vts/functional/Android.bp b/wifi/supplicant/1.2/vts/functional/Android.bp index ec3ca2210a614c44fc5e10e5ec02084166f4178b..65a17a8df2aa484fb4b5b0ed6dd352ecd7e550be 100644 --- a/wifi/supplicant/1.2/vts/functional/Android.bp +++ b/wifi/supplicant/1.2/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.3/Android.bp b/wifi/supplicant/1.3/Android.bp index fbe7f75bf4f7e39c22d395204bdb59e6c287c59a..bbb17c219bf72c06d4ab94dbe16e68a37bdb2ca8 100644 --- a/wifi/supplicant/1.3/Android.bp +++ b/wifi/supplicant/1.3/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -27,4 +28,8 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], } diff --git a/wifi/supplicant/1.3/vts/functional/Android.bp b/wifi/supplicant/1.3/vts/functional/Android.bp index 4b563367c9483a218d613fdc4f2c8be5e19f5989..609de11cee1a5c232481e70031f6f7183ccc159b 100644 --- a/wifi/supplicant/1.3/vts/functional/Android.bp +++ b/wifi/supplicant/1.3/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.4/Android.bp b/wifi/supplicant/1.4/Android.bp index c988fdbb9e26f115c27c5d33b32235f278a83bb2..4b948235249eafc49d17a5cacc466a0c3e94c307 100644 --- a/wifi/supplicant/1.4/Android.bp +++ b/wifi/supplicant/1.4/Android.bp @@ -1,6 +1,7 @@ // This file is autogenerated by hidl-gen -Landroidbp. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/1.4/vts/functional/Android.bp b/wifi/supplicant/1.4/vts/functional/Android.bp index 57ee83073bc1d201c9e8f14e355a8d62349ed5a0..def3b863f6636003301081ec1b757f0f11fdf57f 100644 --- a/wifi/supplicant/1.4/vts/functional/Android.bp +++ b/wifi/supplicant/1.4/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/aidl/Android.bp b/wifi/supplicant/aidl/Android.bp index 632927d714de8c63a7ffba94bf9592c188cfc8b2..b7242ed2b7e8d3e44d7e12ceda0e3d54c12bcf9c 100644 --- a/wifi/supplicant/aidl/Android.bp +++ b/wifi/supplicant/aidl/Android.bp @@ -13,6 +13,7 @@ // limitations under the License. package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" @@ -51,6 +52,9 @@ aidl_interface { cpp: { enabled: false, }, + rust: { + enabled: false, + }, }, versions_with_info: [ { @@ -61,7 +65,11 @@ aidl_interface { version: "2", imports: [], }, + { + version: "3", + imports: ["android.hardware.wifi.common-V1"], + }, ], - frozen: false, + frozen: true, } diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/.hash b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/.hash new file mode 100644 index 0000000000000000000000000000000000000000..458d57f69e226e2895d24a99e84ee787d591a677 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/.hash @@ -0,0 +1 @@ +55b58c9bd6d40c1459073b5d03f4ede5cfc9a212 diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d8e49d70f34dc810f0fcd46b6a30a3f466fe30ea --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpData.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable AnqpData { + byte[] venueName; + byte[] roamingConsortium; + byte[] ipAddrTypeAvailability; + byte[] naiRealm; + byte[] anqp3gppCellularNetwork; + byte[] domainName; + byte[] venueUrl; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpInfoId.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpInfoId.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cc323608f93a1629165f61514111a58a3748ee24 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AnqpInfoId.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum AnqpInfoId { + VENUE_NAME = 258, + ROAMING_CONSORTIUM = 261, + IP_ADDR_TYPE_AVAILABILITY = 262, + NAI_REALM = 263, + ANQP_3GPP_CELLULAR_NETWORK = 264, + DOMAIN_NAME = 268, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AssociationRejectionData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AssociationRejectionData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f6830dc8be17158ec940e150079f70b795574114 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AssociationRejectionData.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable AssociationRejectionData { + byte[] ssid; + byte[] bssid; + android.hardware.wifi.supplicant.StaIfaceStatusCode statusCode; + boolean timedOut; + boolean isMboAssocDisallowedReasonCodePresent; + android.hardware.wifi.supplicant.MboAssocDisallowedReasonCode mboAssocDisallowedReason; + boolean isOceRssiBasedAssocRejectAttrPresent; + android.hardware.wifi.supplicant.OceRssiBasedAssocRejectAttr oceRssiBasedAssocRejectData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuthAlgMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuthAlgMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..44210185cf73bf03e5c31c711710baa714c7bce0 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuthAlgMask.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum AuthAlgMask { + OPEN = (1 << 0) /* 1 */, + SHARED = (1 << 1) /* 2 */, + LEAP = (1 << 2) /* 4 */, + SAE = (1 << 4) /* 16 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuxiliarySupplicantEventCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuxiliarySupplicantEventCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a339a9272f62d1c001ed225e40b92417176e287e --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/AuxiliarySupplicantEventCode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum AuxiliarySupplicantEventCode { + EAP_METHOD_SELECTED, + SSID_TEMP_DISABLED, + OPEN_SSL_FAILURE, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..34d894d6fa050ce5b39c7b0df4b7cd2ed863c60b --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmData.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable BssTmData { + android.hardware.wifi.supplicant.BssTmStatusCode status; + android.hardware.wifi.supplicant.BssTmDataFlagsMask flags; + int assocRetryDelayMs; + android.hardware.wifi.supplicant.MboTransitionReasonCode mboTransitionReason; + android.hardware.wifi.supplicant.MboCellularDataConnectionPrefValue mboCellPreference; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmDataFlagsMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmDataFlagsMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6f0045c82ce07dd3c35728b1e8a98d75ce79329d --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmDataFlagsMask.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum BssTmDataFlagsMask { + WNM_MODE_PREFERRED_CANDIDATE_LIST_INCLUDED = (1 << 0) /* 1 */, + WNM_MODE_ABRIDGED = (1 << 1) /* 2 */, + WNM_MODE_DISASSOCIATION_IMMINENT = (1 << 2) /* 4 */, + WNM_MODE_BSS_TERMINATION_INCLUDED = (1 << 3) /* 8 */, + WNM_MODE_ESS_DISASSOCIATION_IMMINENT = (1 << 4) /* 16 */, + MBO_TRANSITION_REASON_CODE_INCLUDED = (1 << 5) /* 32 */, + MBO_ASSOC_RETRY_DELAY_INCLUDED = (1 << 6) /* 64 */, + MBO_CELLULAR_DATA_CONNECTION_PREFERENCE_INCLUDED = (1 << 7) /* 128 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmStatusCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c95825fe3c3dadaf1456fbcd8249a50af1d40c11 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssTmStatusCode.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum BssTmStatusCode { + ACCEPT = 0, + REJECT_UNSPECIFIED = 1, + REJECT_INSUFFICIENT_BEACON = 2, + REJECT_INSUFFICIENT_CAPABITY = 3, + REJECT_BSS_TERMINATION_UNDESIRED = 4, + REJECT_BSS_TERMINATION_DELAY_REQUEST = 5, + REJECT_STA_CANDIDATE_LIST_PROVIDED = 6, + REJECT_NO_SUITABLE_CANDIDATES = 7, + REJECT_LEAVING_ESS = 8, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssidChangeReason.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssidChangeReason.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1d24579201f8bfe4696b2c9726099e311c9118da --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BssidChangeReason.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum BssidChangeReason { + ASSOC_START = 0, + ASSOC_COMPLETE = 1, + DISASSOC = 2, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BtCoexistenceMode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BtCoexistenceMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bdc1b4a99100eee068a3522ed29d32b151ed3ae8 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/BtCoexistenceMode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum BtCoexistenceMode { + ENABLED = 0, + DISABLED = 1, + SENSE = 2, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ConnectionCapabilities.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ConnectionCapabilities.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a0dd32fee66493631bc138ca307490b20425b273 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ConnectionCapabilities.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable ConnectionCapabilities { + android.hardware.wifi.supplicant.WifiTechnology technology; + int channelBandwidth; + int maxNumberTxSpatialStreams; + int maxNumberRxSpatialStreams; + android.hardware.wifi.supplicant.LegacyMode legacyMode; + boolean apTidToLinkMapNegotiationSupported; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DebugLevel.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DebugLevel.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fbfb5b346819a438ed7cb9caeede19df6f1cac03 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DebugLevel.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DebugLevel { + EXCESSIVE = 0, + MSGDUMP = 1, + DEBUG = 2, + INFO = 3, + WARNING = 4, + ERROR = 5, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppAkm.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppAkm.aidl new file mode 100644 index 0000000000000000000000000000000000000000..730843d2ec07b0852ee868ad94e211fb1924ffe7 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppAkm.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppAkm { + PSK, + PSK_SAE, + SAE, + DPP, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConfigurationData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConfigurationData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..22253305380f26f19171bd283a110097e726f907 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConfigurationData.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable DppConfigurationData { + byte[] ssid; + String password; + byte[] psk; + android.hardware.wifi.supplicant.DppAkm securityAkm; + android.hardware.wifi.supplicant.DppConnectionKeys dppConnectionKeys; + boolean connStatusRequested; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConnectionKeys.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConnectionKeys.aidl new file mode 100644 index 0000000000000000000000000000000000000000..559d1c94ce8713468d5b9734d7e8dbd7c126d941 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppConnectionKeys.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable DppConnectionKeys { + byte[] connector; + byte[] cSign; + byte[] netAccessKey; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppCurve.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppCurve.aidl new file mode 100644 index 0000000000000000000000000000000000000000..14cb49f681bf9d169c34a338cf8c3ff6ddbd9fb7 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppCurve.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppCurve { + PRIME256V1, + SECP384R1, + SECP521R1, + BRAINPOOLP256R1, + BRAINPOOLP384R1, + BRAINPOOLP512R1, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppEventType.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppEventType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..47c8cc0e3534b57fb8b598bb6533204cc4d4acec --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppEventType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppEventType { + CONFIGURATION_SENT, + CONFIGURATION_APPLIED, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppFailureCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppFailureCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..89fbc4bab198e04c15e7cb143549d7df984f234d --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppFailureCode.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppFailureCode { + INVALID_URI, + AUTHENTICATION, + NOT_COMPATIBLE, + CONFIGURATION, + BUSY, + TIMEOUT, + FAILURE, + NOT_SUPPORTED, + CONFIGURATION_REJECTED, + CANNOT_FIND_NETWORK, + ENROLLEE_AUTHENTICATION, + URI_GENERATION, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppNetRole.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppNetRole.aidl new file mode 100644 index 0000000000000000000000000000000000000000..77a910b251ec4de4b13fb29d869924a693289845 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppNetRole.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppNetRole { + STA, + AP, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppProgressCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppProgressCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ea244de3c2ab6dff16b5f6aa512850d3fef2912a --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppProgressCode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppProgressCode { + AUTHENTICATION_SUCCESS, + RESPONSE_PENDING, + CONFIGURATION_SENT_WAITING_RESPONSE, + CONFIGURATION_ACCEPTED, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppResponderBootstrapInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppResponderBootstrapInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8b6492b4f344517f525c637c448ccc0b0d24acac --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppResponderBootstrapInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable DppResponderBootstrapInfo { + int bootstrapId; + int listenChannel; + String uri; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppStatusErrorCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppStatusErrorCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..21f07dded55532708734c20633b96cda221eb3d1 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/DppStatusErrorCode.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum DppStatusErrorCode { + UNKNOWN = (-1) /* -1 */, + SUCCESS = 0, + NOT_COMPATIBLE = 1, + AUTH_FAILURE = 2, + UNWRAP_FAILURE = 3, + BAD_GROUP = 4, + CONFIGURE_FAILURE = 5, + RESPONSE_PENDING = 6, + INVALID_CONNECTOR = 7, + NO_MATCH = 8, + CONFIG_REJECTED = 9, + NO_AP = 10, + CONFIGURE_PENDING = 11, + CSR_NEEDED = 12, + CSR_BAD = 13, + NEW_KEY_NEEDED = 14, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapErrorCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapErrorCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2cf81d9ca21001f60c55520fd444bdaf2f334fc7 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapErrorCode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum EapErrorCode { + SIM_GENERAL_FAILURE_AFTER_AUTH = 0, + SIM_TEMPORARILY_DENIED = 1026, + SIM_NOT_SUBSCRIBED = 1031, + SIM_GENERAL_FAILURE_BEFORE_AUTH = 16384, + SIM_VENDOR_SPECIFIC_EXPIRED_CERT = 16385, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapMethod.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapMethod.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4ab23afefd72c1153967fe7bd061a01e184e018b --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapMethod.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum EapMethod { + PEAP = 0, + TLS = 1, + TTLS = 2, + PWD = 3, + SIM = 4, + AKA = 5, + AKA_PRIME = 6, + WFA_UNAUTH_TLS = 7, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapPhase2Method.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapPhase2Method.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4bd93a08da7ba88fa6378bf35fc8610d7cb8729c --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/EapPhase2Method.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum EapPhase2Method { + NONE = 0, + PAP = 1, + MSPAP = 2, + MSPAPV2 = 3, + GTC = 4, + SIM = 5, + AKA = 6, + AKA_PRIME = 7, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ExtRadioWorkDefaults.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ExtRadioWorkDefaults.aidl new file mode 100644 index 0000000000000000000000000000000000000000..cbf1a3ee375c490e965c6fd605b7f54e71fadadb --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ExtRadioWorkDefaults.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum ExtRadioWorkDefaults { + TIMEOUT_IN_SECS = 10, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/FreqRange.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/FreqRange.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0971d517f6c53e02154d1e1d6b0a8d6c87802b2c --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/FreqRange.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable FreqRange { + int min; + int max; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupCipherMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupCipherMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d22d3d0582e7b7ecb0e67c87765fe3f0aeaa606d --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupCipherMask.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum GroupCipherMask { + WEP40 = (1 << 1) /* 2 */, + WEP104 = (1 << 2) /* 4 */, + TKIP = (1 << 3) /* 8 */, + CCMP = (1 << 4) /* 16 */, + GTK_NOT_USED = (1 << 14) /* 16384 */, + GCMP_256 = (1 << 8) /* 256 */, + SMS4 = (1 << 7) /* 128 */, + GCMP_128 = (1 << 6) /* 64 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupMgmtCipherMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupMgmtCipherMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..23bb04fe2f74dc68d4fea104575325c111a6d454 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GroupMgmtCipherMask.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum GroupMgmtCipherMask { + BIP_GMAC_128 = (1 << 11) /* 2048 */, + BIP_GMAC_256 = (1 << 12) /* 4096 */, + BIP_CMAC_256 = (1 << 13) /* 8192 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GsmRand.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GsmRand.aidl new file mode 100644 index 0000000000000000000000000000000000000000..599a68339ab34f3e0b4e1f603ea7dc6817ed4ebb --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/GsmRand.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable GsmRand { + byte[] data; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..43b182a24a764f9926f79b0a8bc56910d5d63649 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpData.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable Hs20AnqpData { + byte[] operatorFriendlyName; + byte[] wanMetrics; + byte[] connectionCapability; + byte[] osuProvidersList; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpSubtypes.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpSubtypes.aidl new file mode 100644 index 0000000000000000000000000000000000000000..270d43b073879364928c4bedce0a07d277b93049 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/Hs20AnqpSubtypes.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum Hs20AnqpSubtypes { + OPERATOR_FRIENDLY_NAME = 3, + WAN_METRICS = 4, + CONNECTION_CAPABILITY = 5, + OSU_PROVIDERS_LIST = 8, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/INonStandardCertCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/INonStandardCertCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bcf0ea8cb6c3a2c68d3be0e3b29b60f45a73435c --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/INonStandardCertCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface INonStandardCertCallback { + byte[] getBlob(in String alias); + String[] listAliases(in String prefix); +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicant.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicant.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dd62167907e1cdff14f054595d23ccc0a6d72b20 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicant.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicant { + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantP2pIface addP2pInterface(in String ifName); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantStaIface addStaInterface(in String ifName); + android.hardware.wifi.supplicant.DebugLevel getDebugLevel(); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantP2pIface getP2pInterface(in String ifName); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantStaIface getStaInterface(in String ifName); + boolean isDebugShowKeysEnabled(); + boolean isDebugShowTimestampEnabled(); + android.hardware.wifi.supplicant.IfaceInfo[] listInterfaces(); + void registerCallback(in android.hardware.wifi.supplicant.ISupplicantCallback callback); + void removeInterface(in android.hardware.wifi.supplicant.IfaceInfo ifaceInfo); + void setConcurrencyPriority(in android.hardware.wifi.supplicant.IfaceType type); + void setDebugParams(in android.hardware.wifi.supplicant.DebugLevel level, in boolean showTimestamp, in boolean showKeys); + oneway void terminate(); + void registerNonStandardCertCallback(in android.hardware.wifi.supplicant.INonStandardCertCallback callback); + const int EXT_RADIO_WORK_TIMEOUT_IN_SECS = 10; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..7281053cdb17d8b4621ef4bd1815064ff5c8b94e --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantCallback.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantCallback { + oneway void onInterfaceCreated(in String ifaceName); + oneway void onInterfaceRemoved(in String ifaceName); +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl new file mode 100644 index 0000000000000000000000000000000000000000..0b068e001f3d3ef75c76c538e29237ff1060ef3a --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantP2pIface { + void addBonjourService(in byte[] query, in byte[] response); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use createGroupOwner. + */ + void addGroup(in boolean persistent, in int persistentNetworkId); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use addGroupWithConfigurationParams. + */ + void addGroupWithConfig(in byte[] ssid, in String pskPassphrase, in boolean persistent, in int freq, in byte[] peerAddress, in boolean joinExistingGroup); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantP2pNetwork addNetwork(); + void addUpnpService(in int version, in String serviceName); + void cancelConnect(); + void cancelServiceDiscovery(in long identifier); + void cancelWps(in String groupIfName); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use configureExtListenWithParams. + */ + void configureExtListen(in int periodInMillis, in int intervalInMillis); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use connectWithParams. + */ + String connect(in byte[] peerAddress, in android.hardware.wifi.supplicant.WpsProvisionMethod provisionMethod, in String preSelectedPin, in boolean joinExistingGroup, in boolean persistent, in int goIntent); + byte[] createNfcHandoverRequestMessage(); + byte[] createNfcHandoverSelectMessage(); + void enableWfd(in boolean enable); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use findWithParams. + */ + void find(in int timeoutInSec); + void flush(); + void flushServices(); + byte[] getDeviceAddress(); + boolean getEdmg(); + android.hardware.wifi.supplicant.P2pGroupCapabilityMask getGroupCapability(in byte[] peerAddress); + String getName(); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantP2pNetwork getNetwork(in int id); + byte[] getSsid(in byte[] peerAddress); + android.hardware.wifi.supplicant.IfaceType getType(); + void invite(in String groupIfName, in byte[] goDeviceAddress, in byte[] peerAddress); + int[] listNetworks(); + void provisionDiscovery(in byte[] peerAddress, in android.hardware.wifi.supplicant.WpsProvisionMethod provisionMethod); + void registerCallback(in android.hardware.wifi.supplicant.ISupplicantP2pIfaceCallback callback); + void reinvoke(in int persistentNetworkId, in byte[] peerAddress); + void reject(in byte[] peerAddress); + void removeBonjourService(in byte[] query); + void removeGroup(in String groupIfName); + void removeNetwork(in int id); + void removeUpnpService(in int version, in String serviceName); + void reportNfcHandoverInitiation(in byte[] select); + void reportNfcHandoverResponse(in byte[] request); + long requestServiceDiscovery(in byte[] peerAddress, in byte[] query); + void saveConfig(); + void setDisallowedFrequencies(in android.hardware.wifi.supplicant.FreqRange[] ranges); + void setEdmg(in boolean enable); + void setGroupIdle(in String groupIfName, in int timeoutInSec); + void setListenChannel(in int channel, in int operatingClass); + void setMacRandomization(in boolean enable); + void setMiracastMode(in android.hardware.wifi.supplicant.MiracastMode mode); + void setPowerSave(in String groupIfName, in boolean enable); + void setSsidPostfix(in byte[] postfix); + void setWfdDeviceInfo(in byte[] info); + void setWfdR2DeviceInfo(in byte[] info); + void removeClient(in byte[] peerAddress, in boolean isLegacyClient); + void setWpsConfigMethods(in android.hardware.wifi.supplicant.WpsConfigMethods configMethods); + void setWpsDeviceName(in String name); + void setWpsDeviceType(in byte[] type); + void setWpsManufacturer(in String manufacturer); + void setWpsModelName(in String modelName); + void setWpsModelNumber(in String modelNumber); + void setWpsSerialNumber(in String serialNumber); + void startWpsPbc(in String groupIfName, in byte[] bssid); + String startWpsPinDisplay(in String groupIfName, in byte[] bssid); + void startWpsPinKeypad(in String groupIfName, in String pin); + void stopFind(); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use findWithParams. + */ + void findOnSocialChannels(in int timeoutInSec); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use findWithParams. + */ + void findOnSpecificFrequency(in int freqInHz, in int timeoutInSec); + void setVendorElements(in android.hardware.wifi.supplicant.P2pFrameTypeMask frameTypeMask, in byte[] vendorElemBytes); + void configureEapolIpAddressAllocationParams(in int ipAddressGo, in int ipAddressMask, in int ipAddressStart, in int ipAddressEnd); + String connectWithParams(in android.hardware.wifi.supplicant.P2pConnectInfo connectInfo); + void findWithParams(in android.hardware.wifi.supplicant.P2pDiscoveryInfo discoveryInfo); + void configureExtListenWithParams(in android.hardware.wifi.supplicant.P2pExtListenInfo extListenInfo); + void addGroupWithConfigurationParams(in android.hardware.wifi.supplicant.P2pAddGroupConfigurationParams groupConfigurationParams); + void createGroupOwner(in android.hardware.wifi.supplicant.P2pCreateGroupOwnerInfo groupOwnerInfo); +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..65ad4c1407bb63ea7e2fe1fbaf230a247b3b1586 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantP2pIfaceCallback { + /** + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onDeviceFoundWithParams. + */ + oneway void onDeviceFound(in byte[] srcAddress, in byte[] p2pDeviceAddress, in byte[] primaryDeviceType, in String deviceName, in android.hardware.wifi.supplicant.WpsConfigMethods configMethods, in byte deviceCapabilities, in android.hardware.wifi.supplicant.P2pGroupCapabilityMask groupCapabilities, in byte[] wfdDeviceInfo); + oneway void onDeviceLost(in byte[] p2pDeviceAddress); + oneway void onFindStopped(); + oneway void onGoNegotiationCompleted(in android.hardware.wifi.supplicant.P2pStatusCode status); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use onGoNegotiationRequestWithParams. + */ + oneway void onGoNegotiationRequest(in byte[] srcAddress, in android.hardware.wifi.supplicant.WpsDevPasswordId passwordId); + oneway void onGroupFormationFailure(in String failureReason); + oneway void onGroupFormationSuccess(); + oneway void onGroupRemoved(in String groupIfname, in boolean isGroupOwner); + oneway void onGroupStarted(in String groupIfname, in boolean isGroupOwner, in byte[] ssid, in int frequency, in byte[] psk, in String passphrase, in byte[] goDeviceAddress, in boolean isPersistent); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use onInvitationReceivedWithParams. + */ + oneway void onInvitationReceived(in byte[] srcAddress, in byte[] goDeviceAddress, in byte[] bssid, in int persistentNetworkId, in int operatingFrequency); + oneway void onInvitationResult(in byte[] bssid, in android.hardware.wifi.supplicant.P2pStatusCode status); + /** + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onProvisionDiscoveryCompletedEvent. + */ + oneway void onProvisionDiscoveryCompleted(in byte[] p2pDeviceAddress, in boolean isRequest, in android.hardware.wifi.supplicant.P2pProvDiscStatusCode status, in android.hardware.wifi.supplicant.WpsConfigMethods configMethods, in String generatedPin); + oneway void onR2DeviceFound(in byte[] srcAddress, in byte[] p2pDeviceAddress, in byte[] primaryDeviceType, in String deviceName, in android.hardware.wifi.supplicant.WpsConfigMethods configMethods, in byte deviceCapabilities, in android.hardware.wifi.supplicant.P2pGroupCapabilityMask groupCapabilities, in byte[] wfdDeviceInfo, in byte[] wfdR2DeviceInfo); + oneway void onServiceDiscoveryResponse(in byte[] srcAddress, in char updateIndicator, in byte[] tlvs); + /** + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onPeerClientJoined() + */ + oneway void onStaAuthorized(in byte[] srcAddress, in byte[] p2pDeviceAddress); + /** + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onPeerClientDisconnected() + */ + oneway void onStaDeauthorized(in byte[] srcAddress, in byte[] p2pDeviceAddress); + oneway void onGroupFrequencyChanged(in String groupIfname, in int frequency); + /** + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onDeviceFoundWithParams. + */ + oneway void onDeviceFoundWithVendorElements(in byte[] srcAddress, in byte[] p2pDeviceAddress, in byte[] primaryDeviceType, in String deviceName, in android.hardware.wifi.supplicant.WpsConfigMethods configMethods, in byte deviceCapabilities, in android.hardware.wifi.supplicant.P2pGroupCapabilityMask groupCapabilities, in byte[] wfdDeviceInfo, in byte[] wfdR2DeviceInfo, in byte[] vendorElemBytes); + oneway void onGroupStartedWithParams(in android.hardware.wifi.supplicant.P2pGroupStartedEventParams groupStartedEventParams); + oneway void onPeerClientJoined(in android.hardware.wifi.supplicant.P2pPeerClientJoinedEventParams clientJoinedEventParams); + oneway void onPeerClientDisconnected(in android.hardware.wifi.supplicant.P2pPeerClientDisconnectedEventParams clientDisconnectedEventParams); + oneway void onProvisionDiscoveryCompletedEvent(in android.hardware.wifi.supplicant.P2pProvisionDiscoveryCompletedEventParams provisionDiscoveryCompletedEventParams); + oneway void onDeviceFoundWithParams(in android.hardware.wifi.supplicant.P2pDeviceFoundEventParams deviceFoundEventParams); + oneway void onGoNegotiationRequestWithParams(in android.hardware.wifi.supplicant.P2pGoNegotiationReqEventParams params); + oneway void onInvitationReceivedWithParams(in android.hardware.wifi.supplicant.P2pInvitationEventParams params); +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pNetwork.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pNetwork.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ef7272464293152bf88a036e740a80d99514d129 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantP2pNetwork.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantP2pNetwork { + byte[] getBssid(); + android.hardware.wifi.supplicant.MacAddress[] getClientList(); + int getId(); + String getInterfaceName(); + byte[] getSsid(); + android.hardware.wifi.supplicant.IfaceType getType(); + boolean isCurrent(); + boolean isGroupOwner(); + boolean isPersistent(); + void setClientList(in android.hardware.wifi.supplicant.MacAddress[] clients); +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIface.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIface.aidl new file mode 100644 index 0000000000000000000000000000000000000000..917668e9ab03c9909558239537b4e18eed63cc0f --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIface.aidl @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantStaIface { + int addDppPeerUri(in String uri); + int addExtRadioWork(in String name, in int freqInMhz, in int timeoutInSec); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantStaNetwork addNetwork(); + void addRxFilter(in android.hardware.wifi.supplicant.RxFilterType type); + void cancelWps(); + void disconnect(); + void enableAutoReconnect(in boolean enable); + void filsHlpAddRequest(in byte[] dst_mac, in byte[] pkt); + void filsHlpFlushRequest(); + android.hardware.wifi.supplicant.DppResponderBootstrapInfo generateDppBootstrapInfoForResponder(in byte[] macAddress, in String deviceInfo, in android.hardware.wifi.supplicant.DppCurve curve); + void generateSelfDppConfiguration(in String ssid, in byte[] privEcKey); + android.hardware.wifi.supplicant.ConnectionCapabilities getConnectionCapabilities(); + android.hardware.wifi.supplicant.MloLinksInfo getConnectionMloLinksInfo(); + android.hardware.wifi.supplicant.KeyMgmtMask getKeyMgmtCapabilities(); + byte[] getMacAddress(); + String getName(); + @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantStaNetwork getNetwork(in int id); + android.hardware.wifi.supplicant.IfaceType getType(); + android.hardware.wifi.supplicant.WpaDriverCapabilitiesMask getWpaDriverCapabilities(); + void initiateAnqpQuery(in byte[] macAddress, in android.hardware.wifi.supplicant.AnqpInfoId[] infoElements, in android.hardware.wifi.supplicant.Hs20AnqpSubtypes[] subTypes); + /** + * @deprecated No longer in use. + */ + void initiateHs20IconQuery(in byte[] macAddress, in String fileName); + void initiateTdlsDiscover(in byte[] macAddress); + void initiateTdlsSetup(in byte[] macAddress); + void initiateTdlsTeardown(in byte[] macAddress); + void initiateVenueUrlAnqpQuery(in byte[] macAddress); + int[] listNetworks(); + void reassociate(); + void reconnect(); + void registerCallback(in android.hardware.wifi.supplicant.ISupplicantStaIfaceCallback callback); + void setQosPolicyFeatureEnabled(in boolean enable); + void sendQosPolicyResponse(in int qosPolicyRequestId, in boolean morePolicies, in android.hardware.wifi.supplicant.QosPolicyStatus[] qosPolicyStatusList); + void removeAllQosPolicies(); + void removeDppUri(in int id); + void removeExtRadioWork(in int id); + void removeNetwork(in int id); + void removeRxFilter(in android.hardware.wifi.supplicant.RxFilterType type); + void setBtCoexistenceMode(in android.hardware.wifi.supplicant.BtCoexistenceMode mode); + void setBtCoexistenceScanModeEnabled(in boolean enable); + void setCountryCode(in byte[] code); + void setExternalSim(in boolean useExternalSim); + void setMboCellularDataStatus(in boolean available); + void setPowerSave(in boolean enable); + void setSuspendModeEnabled(in boolean enable); + void setWpsConfigMethods(in android.hardware.wifi.supplicant.WpsConfigMethods configMethods); + void setWpsDeviceName(in String name); + void setWpsDeviceType(in byte[] type); + void setWpsManufacturer(in String manufacturer); + void setWpsModelName(in String modelName); + void setWpsModelNumber(in String modelNumber); + void setWpsSerialNumber(in String serialNumber); + byte[] startDppConfiguratorInitiator(in int peerBootstrapId, in int ownBootstrapId, in String ssid, in String password, in String psk, in android.hardware.wifi.supplicant.DppNetRole netRole, in android.hardware.wifi.supplicant.DppAkm securityAkm, in byte[] privEcKey); + void startDppEnrolleeInitiator(in int peerBootstrapId, in int ownBootstrapId); + void startDppEnrolleeResponder(in int listenChannel); + void startRxFilter(); + void startWpsPbc(in byte[] bssid); + String startWpsPinDisplay(in byte[] bssid); + void startWpsPinKeypad(in String pin); + void startWpsRegistrar(in byte[] bssid, in String pin); + void stopDppInitiator(); + void stopDppResponder(in int ownBootstrapId); + void stopRxFilter(); + android.hardware.wifi.supplicant.SignalPollResult[] getSignalPollResults(); + android.hardware.wifi.supplicant.QosPolicyScsRequestStatus[] addQosPolicyRequestForScs(in android.hardware.wifi.supplicant.QosPolicyScsData[] qosPolicyData); + android.hardware.wifi.supplicant.QosPolicyScsRequestStatus[] removeQosPolicyForScs(in byte[] scsPolicyIds); + void configureMscs(in android.hardware.wifi.supplicant.MscsParams params); + void disableMscs(); + const int MAX_POLICIES_PER_QOS_SCS_REQUEST = 16; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9fa8f56cd58c0d0b4f1aef3047a919df70a3f22b --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantStaIfaceCallback { + oneway void onAnqpQueryDone(in byte[] bssid, in android.hardware.wifi.supplicant.AnqpData data, in android.hardware.wifi.supplicant.Hs20AnqpData hs20Data); + oneway void onAssociationRejected(in android.hardware.wifi.supplicant.AssociationRejectionData assocRejectData); + oneway void onAuthenticationTimeout(in byte[] bssid); + oneway void onAuxiliarySupplicantEvent(in android.hardware.wifi.supplicant.AuxiliarySupplicantEventCode eventCode, in byte[] bssid, in String reasonString); + oneway void onBssTmHandlingDone(in android.hardware.wifi.supplicant.BssTmData tmData); + oneway void onBssidChanged(in android.hardware.wifi.supplicant.BssidChangeReason reason, in byte[] bssid); + oneway void onDisconnected(in byte[] bssid, in boolean locallyGenerated, in android.hardware.wifi.supplicant.StaIfaceReasonCode reasonCode); + oneway void onDppFailure(in android.hardware.wifi.supplicant.DppFailureCode code, in String ssid, in String channelList, in char[] bandList); + oneway void onDppProgress(in android.hardware.wifi.supplicant.DppProgressCode code); + oneway void onDppSuccess(in android.hardware.wifi.supplicant.DppEventType event); + /** + * @deprecated This callback is deprecated from AIDL v2, newer HAL should call onDppConfigReceived. + */ + oneway void onDppSuccessConfigReceived(in byte[] ssid, in String password, in byte[] psk, in android.hardware.wifi.supplicant.DppAkm securityAkm, in android.hardware.wifi.supplicant.DppConnectionKeys dppConnectionKeys); + oneway void onDppSuccessConfigSent(); + oneway void onEapFailure(in byte[] bssid, in int errorCode); + oneway void onExtRadioWorkStart(in int id); + oneway void onExtRadioWorkTimeout(in int id); + oneway void onHs20DeauthImminentNotice(in byte[] bssid, in int reasonCode, in int reAuthDelayInSec, in String url); + /** + * @deprecated This callback is deprecated from AIDL v3. + */ + oneway void onHs20IconQueryDone(in byte[] bssid, in String fileName, in byte[] data); + oneway void onHs20SubscriptionRemediation(in byte[] bssid, in android.hardware.wifi.supplicant.OsuMethod osuMethod, in String url); + oneway void onHs20TermsAndConditionsAcceptanceRequestedNotification(in byte[] bssid, in String url); + oneway void onNetworkAdded(in int id); + oneway void onNetworkNotFound(in byte[] ssid); + oneway void onNetworkRemoved(in int id); + /** + * @deprecated use onPmkSaCacheAdded() instead. + */ + oneway void onPmkCacheAdded(in long expirationTimeInSec, in byte[] serializedEntry); + /** + * @deprecated This callback is deprecated from AIDL v2, newer HAL should call onSupplicantStateChanged() + */ + oneway void onStateChanged(in android.hardware.wifi.supplicant.StaIfaceCallbackState newState, in byte[] bssid, in int id, in byte[] ssid, in boolean filsHlpSent); + oneway void onWpsEventFail(in byte[] bssid, in android.hardware.wifi.supplicant.WpsConfigError configError, in android.hardware.wifi.supplicant.WpsErrorIndication errorInd); + oneway void onWpsEventPbcOverlap(); + oneway void onWpsEventSuccess(); + oneway void onQosPolicyReset(); + oneway void onQosPolicyRequest(in int qosPolicyRequestId, in android.hardware.wifi.supplicant.QosPolicyData[] qosPolicyData); + oneway void onMloLinksInfoChanged(in android.hardware.wifi.supplicant.ISupplicantStaIfaceCallback.MloLinkInfoChangeReason reason); + oneway void onDppConfigReceived(in android.hardware.wifi.supplicant.DppConfigurationData configData); + oneway void onDppConnectionStatusResultSent(in android.hardware.wifi.supplicant.DppStatusErrorCode code); + oneway void onBssFrequencyChanged(in int frequencyMhz); + oneway void onSupplicantStateChanged(in android.hardware.wifi.supplicant.SupplicantStateChangeData stateChangeData); + oneway void onQosPolicyResponseForScs(in android.hardware.wifi.supplicant.QosPolicyScsResponseStatus[] qosPolicyScsResponseStatus); + oneway void onPmkSaCacheAdded(in android.hardware.wifi.supplicant.PmkSaCacheData pmkSaData); + @Backing(type="int") @VintfStability + enum MloLinkInfoChangeReason { + TID_TO_LINK_MAP = 0, + MULTI_LINK_RECONFIG_AP_REMOVAL = 1, + } +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetwork.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetwork.aidl new file mode 100644 index 0000000000000000000000000000000000000000..488037f3b4d53ff7204c1b39eaf48c7c92762042 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetwork.aidl @@ -0,0 +1,140 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantStaNetwork { + void disable(); + void enable(in boolean noConnect); + void enableSaePkOnlyMode(in boolean enable); + void enableSuiteBEapOpenSslCiphers(); + void enableTlsSuiteBEapPhase1Param(in boolean enable); + android.hardware.wifi.supplicant.AuthAlgMask getAuthAlg(); + byte[] getBssid(); + String getEapAltSubjectMatch(); + byte[] getEapAnonymousIdentity(); + String getEapCACert(); + String getEapCAPath(); + String getEapClientCert(); + String getEapDomainSuffixMatch(); + boolean getEapEngine(); + String getEapEngineId(); + byte[] getEapIdentity(); + android.hardware.wifi.supplicant.EapMethod getEapMethod(); + byte[] getEapPassword(); + android.hardware.wifi.supplicant.EapPhase2Method getEapPhase2Method(); + String getEapPrivateKeyId(); + String getEapSubjectMatch(); + boolean getEdmg(); + android.hardware.wifi.supplicant.GroupCipherMask getGroupCipher(); + android.hardware.wifi.supplicant.GroupMgmtCipherMask getGroupMgmtCipher(); + int getId(); + String getIdStr(); + String getInterfaceName(); + android.hardware.wifi.supplicant.KeyMgmtMask getKeyMgmt(); + android.hardware.wifi.supplicant.OcspType getOcsp(); + android.hardware.wifi.supplicant.PairwiseCipherMask getPairwiseCipher(); + android.hardware.wifi.supplicant.ProtoMask getProto(); + byte[] getPsk(); + String getPskPassphrase(); + boolean getRequirePmf(); + String getSaePassword(); + String getSaePasswordId(); + boolean getScanSsid(); + byte[] getSsid(); + android.hardware.wifi.supplicant.IfaceType getType(); + String getWapiCertSuite(); + byte[] getWepKey(in int keyIdx); + int getWepTxKeyIdx(); + byte[] getWpsNfcConfigurationToken(); + void registerCallback(in android.hardware.wifi.supplicant.ISupplicantStaNetworkCallback callback); + void select(); + void sendNetworkEapIdentityResponse(in byte[] identity, in byte[] encryptedIdentity); + void sendNetworkEapSimGsmAuthFailure(); + void sendNetworkEapSimGsmAuthResponse(in android.hardware.wifi.supplicant.NetworkResponseEapSimGsmAuthParams[] params); + void sendNetworkEapSimUmtsAuthFailure(); + void sendNetworkEapSimUmtsAuthResponse(in android.hardware.wifi.supplicant.NetworkResponseEapSimUmtsAuthParams params); + void sendNetworkEapSimUmtsAutsResponse(in byte[] auts); + void setAuthAlg(in android.hardware.wifi.supplicant.AuthAlgMask authAlgMask); + void setBssid(in byte[] bssid); + void setDppKeys(in android.hardware.wifi.supplicant.DppConnectionKeys keys); + void setEapAltSubjectMatch(in String match); + void setEapAnonymousIdentity(in byte[] identity); + void setEapCACert(in String path); + void setEapCAPath(in String path); + void setEapClientCert(in String path); + void setEapDomainSuffixMatch(in String match); + void setEapEncryptedImsiIdentity(in byte[] identity); + void setEapEngine(in boolean enable); + void setEapEngineID(in String id); + void setEapErp(in boolean enable); + void setEapIdentity(in byte[] identity); + void setEapMethod(in android.hardware.wifi.supplicant.EapMethod method); + void setEapPassword(in byte[] password); + void setEapPhase2Method(in android.hardware.wifi.supplicant.EapPhase2Method method); + void setEapPrivateKeyId(in String id); + void setEapSubjectMatch(in String match); + void setEdmg(in boolean enable); + void setGroupCipher(in android.hardware.wifi.supplicant.GroupCipherMask groupCipherMask); + void setGroupMgmtCipher(in android.hardware.wifi.supplicant.GroupMgmtCipherMask groupMgmtCipherMask); + void setIdStr(in String idStr); + void setKeyMgmt(in android.hardware.wifi.supplicant.KeyMgmtMask keyMgmtMask); + void setOcsp(in android.hardware.wifi.supplicant.OcspType ocspType); + void setPairwiseCipher(in android.hardware.wifi.supplicant.PairwiseCipherMask pairwiseCipherMask); + void setPmkCache(in byte[] serializedEntry); + void setProactiveKeyCaching(in boolean enable); + void setProto(in android.hardware.wifi.supplicant.ProtoMask protoMask); + void setPsk(in byte[] psk); + void setPskPassphrase(in String psk); + void setRequirePmf(in boolean enable); + void setSaeH2eMode(in android.hardware.wifi.supplicant.SaeH2eMode mode); + void setSaePassword(in String saePassword); + void setSaePasswordId(in String saePasswordId); + void setScanSsid(in boolean enable); + void setSsid(in byte[] ssid); + void setUpdateIdentifier(in int id); + void setWapiCertSuite(in String suite); + void setWepKey(in int keyIdx, in byte[] wepKey); + void setWepTxKeyIdx(in int keyIdx); + void setRoamingConsortiumSelection(in byte[] selectedRcoi); + void setMinimumTlsVersionEapPhase1Param(android.hardware.wifi.supplicant.TlsVersion tlsVersion); + void setStrictConservativePeerMode(in boolean enable); + void disableEht(); + void setVendorData(in android.hardware.wifi.common.OuiKeyedData[] vendorData); + const int SSID_MAX_LEN_IN_BYTES = 32; + const int PSK_PASSPHRASE_MIN_LEN_IN_BYTES = 8; + const int PSK_PASSPHRASE_MAX_LEN_IN_BYTES = 63; + const int WEP_KEYS_MAX_NUM = 4; + const int WEP40_KEY_LEN_IN_BYTES = 5; + const int WEP104_KEY_LEN_IN_BYTES = 13; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetworkCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetworkCallback.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f9a078be4d4dac23e61468171dc1b25da3279b4d --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ISupplicantStaNetworkCallback.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +interface ISupplicantStaNetworkCallback { + oneway void onNetworkEapIdentityRequest(); + oneway void onNetworkEapSimGsmAuthRequest(in android.hardware.wifi.supplicant.NetworkRequestEapSimGsmAuthParams params); + oneway void onNetworkEapSimUmtsAuthRequest(in android.hardware.wifi.supplicant.NetworkRequestEapSimUmtsAuthParams params); + oneway void onTransitionDisable(in android.hardware.wifi.supplicant.TransitionDisableIndication ind); + oneway void onServerCertificateAvailable(in int depth, in byte[] subject, in byte[] certHash, in byte[] certBlob); + oneway void onPermanentIdReqDenied(); +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6706c8c6ef35f8459d73e160adf352ac5baffedd --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceInfo.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable IfaceInfo { + android.hardware.wifi.supplicant.IfaceType type; + String name; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceType.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e11c2f7ec6711501266aa375c9859a621b0a8861 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IfaceType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum IfaceType { + STA, + P2P, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IpVersion.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IpVersion.aidl new file mode 100644 index 0000000000000000000000000000000000000000..958031437cb3ebd6a9076c7cb3a3ae153c18df5f --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/IpVersion.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum IpVersion { + VERSION_4, + VERSION_6, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/KeyMgmtMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/KeyMgmtMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..06c22cbde81eec48462e4390e2b968440beb1dd7 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/KeyMgmtMask.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum KeyMgmtMask { + WPA_EAP = (1 << 0) /* 1 */, + WPA_PSK = (1 << 1) /* 2 */, + NONE = (1 << 2) /* 4 */, + IEEE8021X = (1 << 3) /* 8 */, + FT_EAP = (1 << 5) /* 32 */, + FT_PSK = (1 << 6) /* 64 */, + OSEN = (1 << 15) /* 32768 */, + WPA_EAP_SHA256 = (1 << 7) /* 128 */, + WPA_PSK_SHA256 = (1 << 8) /* 256 */, + SAE = (1 << 10) /* 1024 */, + SUITE_B_192 = (1 << 17) /* 131072 */, + OWE = (1 << 22) /* 4194304 */, + DPP = (1 << 23) /* 8388608 */, + WAPI_PSK = (1 << 12) /* 4096 */, + WAPI_CERT = (1 << 13) /* 8192 */, + FILS_SHA256 = (1 << 18) /* 262144 */, + FILS_SHA384 = (1 << 19) /* 524288 */, + PASN = (1 << 25) /* 33554432 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/LegacyMode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/LegacyMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6896d75f7f3b3e0535514ae88bb9f44ab4466c35 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/LegacyMode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum LegacyMode { + UNKNOWN = 0, + A_MODE = 1, + B_MODE = 2, + G_MODE = 3, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MacAddress.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MacAddress.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d17930a649f62136bd5c59cf18c79a9752855ccb --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MacAddress.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable MacAddress { + byte[] data; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboAssocDisallowedReasonCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboAssocDisallowedReasonCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..661165d062440b9d0fb748b3c2a17e317dbdf491 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboAssocDisallowedReasonCode.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum MboAssocDisallowedReasonCode { + RESERVED = 0, + UNSPECIFIED = 1, + MAX_NUM_STA_ASSOCIATED = 2, + AIR_INTERFACE_OVERLOADED = 3, + AUTH_SERVER_OVERLOADED = 4, + INSUFFICIENT_RSSI = 5, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboCellularDataConnectionPrefValue.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboCellularDataConnectionPrefValue.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c4024d097b9a2c71a59d1b7ef7c75d7cb7e97697 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboCellularDataConnectionPrefValue.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum MboCellularDataConnectionPrefValue { + EXCLUDED = 0, + NOT_PREFERRED = 1, + PREFERRED = 255, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboTransitionReasonCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboTransitionReasonCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..caed0950ee13d7448a8036379d00579140451c59 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MboTransitionReasonCode.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum MboTransitionReasonCode { + UNSPECIFIED = 0, + EXCESSIVE_FRAME_LOSS = 1, + EXCESSIVE_TRAFFIC_DELAY = 2, + INSUFFICIENT_BANDWIDTH = 3, + LOAD_BALANCING = 4, + LOW_RSSI = 5, + RX_EXCESSIVE_RETRIES = 6, + HIGH_INTERFERENCE = 7, + GRAY_ZONE = 8, + TRANSITION_TO_PREMIUM_AP = 9, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MiracastMode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MiracastMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..6bc9e4d629631b6909c6da596bd388875e5fe049 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MiracastMode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum MiracastMode { + DISABLED = 0, + SOURCE = 1, + SINK = 2, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLink.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLink.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8bda3242b31e98589e4249958a698c53108e55ad --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLink.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable MloLink { + byte linkId; + byte[] staLinkMacAddress; + byte tidsUplinkMap; + byte tidsDownlinkMap; + @nullable byte[6] apLinkMacAddress; + int frequencyMHz; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLinksInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLinksInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3dac2d6694dd7bf7835bac74a5e1014a021e4954 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MloLinksInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable MloLinksInfo { + android.hardware.wifi.supplicant.MloLink[] links; + int apMloLinkId; + @nullable byte[6] apMldMacAddress; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MscsParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MscsParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..aeed4080de21f306bc04ca45d8edd4f51a5bd478 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MscsParams.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable MscsParams { + byte upBitmap; + byte upLimit; + int streamTimeoutUs; + byte frameClassifierMask; + @Backing(type="int") @VintfStability + enum FrameClassifierFields { + IP_VERSION = (1 << 0) /* 1 */, + SRC_IP_ADDR = (1 << 1) /* 2 */, + DST_IP_ADDR = (1 << 2) /* 4 */, + SRC_PORT = (1 << 3) /* 8 */, + DST_PORT = (1 << 4) /* 16 */, + DSCP = (1 << 5) /* 32 */, + PROTOCOL_NEXT_HDR = (1 << 6) /* 64 */, + FLOW_LABEL = (1 << 7) /* 128 */, + } +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MsduDeliveryInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MsduDeliveryInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..792e08d2cd234de07276cd87500e89e077d98256 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/MsduDeliveryInfo.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable MsduDeliveryInfo { + android.hardware.wifi.supplicant.MsduDeliveryInfo.DeliveryRatio deliveryRatio; + byte countExponent; + @Backing(type="byte") @VintfStability + enum DeliveryRatio { + RATIO_95 = 1, + RATIO_96 = 2, + RATIO_97 = 3, + RATIO_98 = 4, + RATIO_99 = 5, + RATIO_99_9 = 6, + RATIO_99_99 = 7, + RATIO_99_999 = 8, + RATIO_99_9999 = 9, + } +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimGsmAuthParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimGsmAuthParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1f03bb84c7b496890a518e8539ac2042fbdc0004 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimGsmAuthParams.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable NetworkRequestEapSimGsmAuthParams { + android.hardware.wifi.supplicant.GsmRand[] rands; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimUmtsAuthParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimUmtsAuthParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..956a799b7d55c939cfdc5a93c200e351e3ae29d5 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkRequestEapSimUmtsAuthParams.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable NetworkRequestEapSimUmtsAuthParams { + byte[] rand; + byte[] autn; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimGsmAuthParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimGsmAuthParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..29415b739df62b1d9aecfb9fc5912219ac741483 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimGsmAuthParams.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable NetworkResponseEapSimGsmAuthParams { + byte[] kc; + byte[] sres; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimUmtsAuthParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimUmtsAuthParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4e58dd826111b1a815526dd1f4da80096b50ad3e --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/NetworkResponseEapSimUmtsAuthParams.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable NetworkResponseEapSimUmtsAuthParams { + byte[] res; + byte[] ik; + byte[] ck; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OceRssiBasedAssocRejectAttr.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OceRssiBasedAssocRejectAttr.aidl new file mode 100644 index 0000000000000000000000000000000000000000..95a95bc54363e95a2e1173bcb1a6e955ff608c29 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OceRssiBasedAssocRejectAttr.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable OceRssiBasedAssocRejectAttr { + int deltaRssi; + int retryDelayS; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OcspType.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OcspType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d5ed08453783282918d6978450ba04ec4a3aedef --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OcspType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum OcspType { + NONE, + REQUEST_CERT_STATUS, + REQUIRE_CERT_STATUS, + REQUIRE_ALL_CERTS_STATUS, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OsuMethod.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OsuMethod.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1b99e2f157c098268a71789f7318200b2aba215f --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/OsuMethod.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum OsuMethod { + OMA_DM = 0, + SOAP_XML_SPP = 1, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ff73f84f24c79b39f686e1868c0bb5913304a80f --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pAddGroupConfigurationParams { + byte[] ssid; + String passphrase; + boolean isPersistent; + int frequencyMHzOrBand; + byte[6] goInterfaceAddress; + boolean joinExistingGroup; + int keyMgmtMask; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pClientEapolIpAddressInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pClientEapolIpAddressInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..db31ca1d48463202fb1b560340dc1892fdba1ff8 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pClientEapolIpAddressInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pClientEapolIpAddressInfo { + int ipAddressClient; + int ipAddressMask; + int ipAddressGo; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pConnectInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pConnectInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f4662de122dbd8553e5cca2a61917d160f464665 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pConnectInfo.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pConnectInfo { + byte[6] peerAddress; + android.hardware.wifi.supplicant.WpsProvisionMethod provisionMethod; + String preSelectedPin; + boolean joinExistingGroup; + boolean persistent; + int goIntent; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4451fb55effa47a04c3a2fcf2edc76aaed6d099a --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pCreateGroupOwnerInfo { + boolean persistent; + int persistentNetworkId; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDeviceFoundEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDeviceFoundEventParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ee8e6dc186b800efc7ed4f3bb589c3e2b522ca02 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDeviceFoundEventParams.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pDeviceFoundEventParams { + byte[6] srcAddress; + byte[6] p2pDeviceAddress; + byte[] primaryDeviceType; + String deviceName; + int configMethods; + byte deviceCapabilities; + int groupCapabilities; + byte[] wfdDeviceInfo; + byte[] wfdR2DeviceInfo; + byte[] vendorElemBytes; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDiscoveryInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDiscoveryInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5b7dd3f043cd10833ce90d6485fcdfc8fe471a1c --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pDiscoveryInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pDiscoveryInfo { + android.hardware.wifi.supplicant.P2pScanType scanType; + int frequencyMhz; + int timeoutInSec; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b4d8e9d92e81aa0f6d51f4b60632bd42b4ac2dd6 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pExtListenInfo { + int periodMs; + int intervalMs; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pFrameTypeMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pFrameTypeMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3c6f8ed5edd71f2e43f33a7ad2b53e6fc16a4838 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pFrameTypeMask.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum P2pFrameTypeMask { + P2P_FRAME_PROBE_REQ_P2P = (1 << 0) /* 1 */, + P2P_FRAME_PROBE_RESP_P2P = (1 << 1) /* 2 */, + P2P_FRAME_PROBE_RESP_P2P_GO = (1 << 2) /* 4 */, + P2P_FRAME_BEACON_P2P_GO = (1 << 3) /* 8 */, + P2P_FRAME_P2P_PD_REQ = (1 << 4) /* 16 */, + P2P_FRAME_P2P_PD_RESP = (1 << 5) /* 32 */, + P2P_FRAME_P2P_GO_NEG_REQ = (1 << 6) /* 64 */, + P2P_FRAME_P2P_GO_NEG_RESP = (1 << 7) /* 128 */, + P2P_FRAME_P2P_GO_NEG_CONF = (1 << 8) /* 256 */, + P2P_FRAME_P2P_INV_REQ = (1 << 9) /* 512 */, + P2P_FRAME_P2P_INV_RESP = (1 << 10) /* 1024 */, + P2P_FRAME_P2P_ASSOC_REQ = (1 << 11) /* 2048 */, + P2P_FRAME_P2P_ASSOC_RESP = (1 << 12) /* 4096 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ba10b3ee647e8d641a42fcf0caac056b68afaa87 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pGoNegotiationReqEventParams { + byte[6] srcAddress; + android.hardware.wifi.supplicant.WpsDevPasswordId passwordId; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupCapabilityMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupCapabilityMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e47713182e5bf2f6b9dcc758a558d4e4df924643 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupCapabilityMask.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum P2pGroupCapabilityMask { + GROUP_OWNER = (1 << 0) /* 1 */, + PERSISTENT_GROUP = (1 << 1) /* 2 */, + GROUP_LIMIT = (1 << 2) /* 4 */, + INTRA_BSS_DIST = (1 << 3) /* 8 */, + CROSS_CONN = (1 << 4) /* 16 */, + PERSISTENT_RECONN = (1 << 5) /* 32 */, + GROUP_FORMATION = (1 << 6) /* 64 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..e19ae4460d53c43a383ddf3070d558cc3766accd --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pGroupStartedEventParams { + String groupInterfaceName; + boolean isGroupOwner; + byte[] ssid; + int frequencyMHz; + byte[] psk; + String passphrase; + boolean isPersistent; + byte[6] goDeviceAddress; + byte[6] goInterfaceAddress; + boolean isP2pClientEapolIpAddressInfoPresent; + android.hardware.wifi.supplicant.P2pClientEapolIpAddressInfo p2pClientIpInfo; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..541ee4f93d70300dfe2b83bc2abbc82b0589a7a7 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pInvitationEventParams { + byte[6] srcAddress; + byte[6] goDeviceAddress; + byte[6] bssid; + int persistentNetworkId; + int operatingFrequencyMHz; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientDisconnectedEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientDisconnectedEventParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5c7c393b4b0f8520df18340ef3f07942c0771d58 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientDisconnectedEventParams.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pPeerClientDisconnectedEventParams { + String groupInterfaceName; + byte[6] clientInterfaceAddress; + byte[6] clientDeviceAddress; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientJoinedEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientJoinedEventParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..40c8ff6d8a4e54c29934b361f7d07df8b5a68a08 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pPeerClientJoinedEventParams.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pPeerClientJoinedEventParams { + String groupInterfaceName; + byte[6] clientInterfaceAddress; + byte[6] clientDeviceAddress; + int clientIpAddress; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvDiscStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvDiscStatusCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c8e53b93c1852c98df7c0d15646bc96906ad7a3a --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvDiscStatusCode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum P2pProvDiscStatusCode { + SUCCESS = 0, + TIMEOUT = 1, + REJECTED = 2, + TIMEOUT_JOIN = 3, + INFO_UNAVAILABLE = 4, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..46366cc8d3a1ed3552992209c60e27234921c9d8 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pProvisionDiscoveryCompletedEventParams { + byte[6] p2pDeviceAddress; + boolean isRequest; + android.hardware.wifi.supplicant.P2pProvDiscStatusCode status; + int configMethods; + String generatedPin; + String groupInterfaceName; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pScanType.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pScanType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ff3efd20639d75b67d96cf676b000b73f647a95e --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pScanType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum P2pScanType { + FULL, + SOCIAL, + SPECIFIC_FREQ, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pStatusCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c7ad3832c7d62438f3a64b9c14aad3cb8a209c8f --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/P2pStatusCode.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum P2pStatusCode { + SUCCESS = 0, + FAIL_INFO_CURRENTLY_UNAVAILABLE = 1, + FAIL_INCOMPATIBLE_PARAMS = 2, + FAIL_LIMIT_REACHED = 3, + FAIL_INVALID_PARAMS = 4, + FAIL_UNABLE_TO_ACCOMMODATE = 5, + FAIL_PREV_PROTOCOL_ERROR = 6, + FAIL_NO_COMMON_CHANNELS = 7, + FAIL_UNKNOWN_GROUP = 8, + FAIL_BOTH_GO_INTENT_15 = 9, + FAIL_INCOMPATIBLE_PROV_METHOD = 10, + FAIL_REJECTED_BY_USER = 11, + SUCCESS_DEFERRED = 12, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PairwiseCipherMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PairwiseCipherMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a4c7b6065be00418c690c8c143253feb06686722 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PairwiseCipherMask.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum PairwiseCipherMask { + NONE = (1 << 0) /* 1 */, + TKIP = (1 << 3) /* 8 */, + CCMP = (1 << 4) /* 16 */, + GCMP_128 = (1 << 6) /* 64 */, + SMS4 = (1 << 7) /* 128 */, + GCMP_256 = (1 << 8) /* 256 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PmkSaCacheData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PmkSaCacheData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c31b16756c8bb822c29d0a119d0482111d0376f0 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PmkSaCacheData.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable PmkSaCacheData { + byte[6] bssid; + long expirationTimeInSec; + byte[] serializedEntry; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PortRange.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PortRange.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b2004f242b607b3fe6ebbbb40414177cd417935d --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/PortRange.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable PortRange { + int startPort; + int endPort; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtoMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtoMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ba79025fa1158e778871ad9ff8214bb73daff16d --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtoMask.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum ProtoMask { + WPA = (1 << 0) /* 1 */, + RSN = (1 << 1) /* 2 */, + WAPI = (1 << 2) /* 4 */, + OSEN = (1 << 3) /* 8 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtocolNextHeader.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtocolNextHeader.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8fb91d0511d30ed647d406904ee4938eae016ac1 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/ProtocolNextHeader.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum ProtocolNextHeader { + TCP = 6, + UDP = 17, + ESP = 50, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosCharacteristics.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosCharacteristics.aidl new file mode 100644 index 0000000000000000000000000000000000000000..dacac8c49a1acb7799c3dcd03144d1fd6b5f2a8c --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosCharacteristics.aidl @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosCharacteristics { + int minServiceIntervalUs; + int maxServiceIntervalUs; + int minDataRateKbps; + int delayBoundUs; + int optionalFieldMask; + char maxMsduSizeOctets; + int serviceStartTimeUs; + byte serviceStartTimeLinkId; + int meanDataRateKbps; + int burstSizeOctets; + char msduLifetimeMs; + android.hardware.wifi.supplicant.MsduDeliveryInfo msduDeliveryInfo; + @Backing(type="int") @VintfStability + enum QosCharacteristicsMask { + MAX_MSDU_SIZE = (1 << 0) /* 1 */, + SERVICE_START_TIME = (1 << 1) /* 2 */, + SERVICE_START_TIME_LINK_ID = (1 << 2) /* 4 */, + MEAN_DATA_RATE = (1 << 3) /* 8 */, + BURST_SIZE = (1 << 4) /* 16 */, + MSDU_LIFETIME = (1 << 5) /* 32 */, + MSDU_DELIVERY_INFO = (1 << 6) /* 64 */, + } +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..156d57ac0c2c029264c469071e763aadd720f9fc --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParams.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosPolicyClassifierParams { + android.hardware.wifi.supplicant.IpVersion ipVersion; + android.hardware.wifi.supplicant.QosPolicyClassifierParamsMask classifierParamMask; + byte[] srcIp; + byte[] dstIp; + int srcPort; + android.hardware.wifi.supplicant.PortRange dstPortRange; + android.hardware.wifi.supplicant.ProtocolNextHeader protocolNextHdr; + byte[] flowLabelIpv6; + String domainName; + byte dscp; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParamsMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParamsMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fda5e3ef673d035ac09a45537533871bbb7d30db --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyClassifierParamsMask.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum QosPolicyClassifierParamsMask { + SRC_IP = (1 << 0) /* 1 */, + DST_IP = (1 << 1) /* 2 */, + SRC_PORT = (1 << 2) /* 4 */, + DST_PORT_RANGE = (1 << 3) /* 8 */, + PROTOCOL_NEXT_HEADER = (1 << 4) /* 16 */, + FLOW_LABEL = (1 << 5) /* 32 */, + DOMAIN_NAME = (1 << 6) /* 64 */, + DSCP = (1 << 7) /* 128 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1719565a81e6d266e5d96b739bd288ff6239ae9c --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyData.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosPolicyData { + byte policyId; + android.hardware.wifi.supplicant.QosPolicyRequestType requestType; + byte dscp; + android.hardware.wifi.supplicant.QosPolicyClassifierParams classifierParams; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyRequestType.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyRequestType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..fd4e787d9e2e1b0508dcf50a70a0391f7b12f30b --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyRequestType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum QosPolicyRequestType { + QOS_POLICY_ADD, + QOS_POLICY_REMOVE, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..20be616fbb986327d6847fa5e82fe4c91e309074 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsData.aidl @@ -0,0 +1,32 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosPolicyScsData { + byte policyId; + byte userPriority; + android.hardware.wifi.supplicant.QosPolicyClassifierParams classifierParams; + android.hardware.wifi.supplicant.QosPolicyScsData.LinkDirection direction; + @nullable android.hardware.wifi.supplicant.QosCharacteristics QosCharacteristics; + @Backing(type="byte") @VintfStability + enum LinkDirection { + DOWNLINK, + UPLINK, + } +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatus.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d5573af5937d4673e07959a43820c1c2e14a4c89 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatus.aidl @@ -0,0 +1,24 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosPolicyScsRequestStatus { + byte policyId; + android.hardware.wifi.supplicant.QosPolicyScsRequestStatusCode qosPolicyScsRequestStatusCode; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatusCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..8e0467f75a004a19ce618829308a67b4667024b1 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsRequestStatusCode.aidl @@ -0,0 +1,26 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum QosPolicyScsRequestStatusCode { + SENT, + ALREADY_ACTIVE, + NOT_EXIST, + INVALID, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatus.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..2737f1a5a824b181ca4e339ef824892342c95f3e --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatus.aidl @@ -0,0 +1,24 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosPolicyScsResponseStatus { + byte policyId; + android.hardware.wifi.supplicant.QosPolicyScsResponseStatusCode qosPolicyScsResponseStatusCode; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatusCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..5d460c69c57cb54e8f60bde0fb33ad7309eb11aa --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyScsResponseStatusCode.aidl @@ -0,0 +1,31 @@ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum QosPolicyScsResponseStatusCode { + SUCCESS, + TCLAS_REQUEST_DECLINED, + TCLAS_NOT_SUPPORTED_BY_AP, + TCLAS_INSUFFICIENT_RESOURCES, + TCLAS_RESOURCES_EXHAUSTED, + TCLAS_PROCESSING_TERMINATED_INSUFFICIENT_QOS, + TCLAS_PROCESSING_TERMINATED_POLICY_CONFLICT, + TCLAS_PROCESSING_TERMINATED, + TIMEOUT, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatus.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatus.aidl new file mode 100644 index 0000000000000000000000000000000000000000..61278c5fe5a23e35cfa2336a5ae2eb7916296d46 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatus.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable QosPolicyStatus { + byte policyId; + android.hardware.wifi.supplicant.QosPolicyStatusCode status; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatusCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..92286325c8374b1a390c0d4aa06df4c40031262c --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/QosPolicyStatusCode.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum QosPolicyStatusCode { + QOS_POLICY_SUCCESS, + QOS_POLICY_REQUEST_DECLINED, + QOS_POLICY_CLASSIFIER_NOT_SUPPORTED, + QOS_POLICY_INSUFFICIENT_RESOURCES, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/RxFilterType.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/RxFilterType.aidl new file mode 100644 index 0000000000000000000000000000000000000000..63f5bf2c45bd07cbce387125f9615a0932ce8538 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/RxFilterType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum RxFilterType { + V4_MULTICAST = 0, + V6_MULTICAST = 1, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SaeH2eMode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SaeH2eMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4730d72c0437eb61b01f0515ff7ab16db32a5b11 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SaeH2eMode.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="byte") @VintfStability +enum SaeH2eMode { + DISABLED, + H2E_OPTIONAL, + H2E_MANDATORY, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SignalPollResult.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SignalPollResult.aidl new file mode 100644 index 0000000000000000000000000000000000000000..52d3f2447d0e98280261777c99e8f6c57ca8b909 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SignalPollResult.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable SignalPollResult { + int linkId; + int currentRssiDbm; + int txBitrateMbps; + int rxBitrateMbps; + int frequencyMhz; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceCallbackState.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceCallbackState.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d78cfa2f2812a1c4a45f5aee2373459a6bc73d71 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceCallbackState.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum StaIfaceCallbackState { + DISCONNECTED = 0, + IFACE_DISABLED = 1, + INACTIVE = 2, + SCANNING = 3, + AUTHENTICATING = 4, + ASSOCIATING = 5, + ASSOCIATED = 6, + FOURWAY_HANDSHAKE = 7, + GROUP_HANDSHAKE = 8, + COMPLETED = 9, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceReasonCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceReasonCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f26e7c53936a73495ebedf70d15bcd9e36e5bbc5 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceReasonCode.aidl @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum StaIfaceReasonCode { + UNSPECIFIED = 1, + PREV_AUTH_NOT_VALID = 2, + DEAUTH_LEAVING = 3, + DISASSOC_DUE_TO_INACTIVITY = 4, + DISASSOC_AP_BUSY = 5, + CLASS2_FRAME_FROM_NONAUTH_STA = 6, + CLASS3_FRAME_FROM_NONASSOC_STA = 7, + DISASSOC_STA_HAS_LEFT = 8, + STA_REQ_ASSOC_WITHOUT_AUTH = 9, + PWR_CAPABILITY_NOT_VALID = 10, + SUPPORTED_CHANNEL_NOT_VALID = 11, + BSS_TRANSITION_DISASSOC = 12, + INVALID_IE = 13, + MICHAEL_MIC_FAILURE = 14, + FOURWAY_HANDSHAKE_TIMEOUT = 15, + GROUP_KEY_UPDATE_TIMEOUT = 16, + IE_IN_4WAY_DIFFERS = 17, + GROUP_CIPHER_NOT_VALID = 18, + PAIRWISE_CIPHER_NOT_VALID = 19, + AKMP_NOT_VALID = 20, + UNSUPPORTED_RSN_IE_VERSION = 21, + INVALID_RSN_IE_CAPAB = 22, + IEEE_802_1X_AUTH_FAILED = 23, + CIPHER_SUITE_REJECTED = 24, + TDLS_TEARDOWN_UNREACHABLE = 25, + TDLS_TEARDOWN_UNSPECIFIED = 26, + SSP_REQUESTED_DISASSOC = 27, + NO_SSP_ROAMING_AGREEMENT = 28, + BAD_CIPHER_OR_AKM = 29, + NOT_AUTHORIZED_THIS_LOCATION = 30, + SERVICE_CHANGE_PRECLUDES_TS = 31, + UNSPECIFIED_QOS_REASON = 32, + NOT_ENOUGH_BANDWIDTH = 33, + DISASSOC_LOW_ACK = 34, + EXCEEDED_TXOP = 35, + STA_LEAVING = 36, + END_TS_BA_DLS = 37, + UNKNOWN_TS_BA = 38, + TIMEOUT = 39, + PEERKEY_MISMATCH = 45, + AUTHORIZED_ACCESS_LIMIT_REACHED = 46, + EXTERNAL_SERVICE_REQUIREMENTS = 47, + INVALID_FT_ACTION_FRAME_COUNT = 48, + INVALID_PMKID = 49, + INVALID_MDE = 50, + INVALID_FTE = 51, + MESH_PEERING_CANCELLED = 52, + MESH_MAX_PEERS = 53, + MESH_CONFIG_POLICY_VIOLATION = 54, + MESH_CLOSE_RCVD = 55, + MESH_MAX_RETRIES = 56, + MESH_CONFIRM_TIMEOUT = 57, + MESH_INVALID_GTK = 58, + MESH_INCONSISTENT_PARAMS = 59, + MESH_INVALID_SECURITY_CAP = 60, + MESH_PATH_ERROR_NO_PROXY_INFO = 61, + MESH_PATH_ERROR_NO_FORWARDING_INFO = 62, + MESH_PATH_ERROR_DEST_UNREACHABLE = 63, + MAC_ADDRESS_ALREADY_EXISTS_IN_MBSS = 64, + MESH_CHANNEL_SWITCH_REGULATORY_REQ = 65, + MESH_CHANNEL_SWITCH_UNSPECIFIED = 66, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceStatusCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..13529a5be182bdd27e11fa25b56e74e5b35e9a59 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/StaIfaceStatusCode.aidl @@ -0,0 +1,134 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum StaIfaceStatusCode { + SUCCESS = 0, + UNSPECIFIED_FAILURE = 1, + TDLS_WAKEUP_ALTERNATE = 2, + TDLS_WAKEUP_REJECT = 3, + SECURITY_DISABLED = 5, + UNACCEPTABLE_LIFETIME = 6, + NOT_IN_SAME_BSS = 7, + CAPS_UNSUPPORTED = 10, + REASSOC_NO_ASSOC = 11, + ASSOC_DENIED_UNSPEC = 12, + NOT_SUPPORTED_AUTH_ALG = 13, + UNKNOWN_AUTH_TRANSACTION = 14, + CHALLENGE_FAIL = 15, + AUTH_TIMEOUT = 16, + AP_UNABLE_TO_HANDLE_NEW_STA = 17, + ASSOC_DENIED_RATES = 18, + ASSOC_DENIED_NOSHORT = 19, + SPEC_MGMT_REQUIRED = 22, + PWR_CAPABILITY_NOT_VALID = 23, + SUPPORTED_CHANNEL_NOT_VALID = 24, + ASSOC_DENIED_NO_SHORT_SLOT_TIME = 25, + ASSOC_DENIED_NO_HT = 27, + R0KH_UNREACHABLE = 28, + ASSOC_DENIED_NO_PCO = 29, + ASSOC_REJECTED_TEMPORARILY = 30, + ROBUST_MGMT_FRAME_POLICY_VIOLATION = 31, + UNSPECIFIED_QOS_FAILURE = 32, + DENIED_INSUFFICIENT_BANDWIDTH = 33, + DENIED_POOR_CHANNEL_CONDITIONS = 34, + DENIED_QOS_NOT_SUPPORTED = 35, + REQUEST_DECLINED = 37, + INVALID_PARAMETERS = 38, + REJECTED_WITH_SUGGESTED_CHANGES = 39, + INVALID_IE = 40, + GROUP_CIPHER_NOT_VALID = 41, + PAIRWISE_CIPHER_NOT_VALID = 42, + AKMP_NOT_VALID = 43, + UNSUPPORTED_RSN_IE_VERSION = 44, + INVALID_RSN_IE_CAPAB = 45, + CIPHER_REJECTED_PER_POLICY = 46, + TS_NOT_CREATED = 47, + DIRECT_LINK_NOT_ALLOWED = 48, + DEST_STA_NOT_PRESENT = 49, + DEST_STA_NOT_QOS_STA = 50, + ASSOC_DENIED_LISTEN_INT_TOO_LARGE = 51, + INVALID_FT_ACTION_FRAME_COUNT = 52, + INVALID_PMKID = 53, + INVALID_MDIE = 54, + INVALID_FTIE = 55, + REQUESTED_TCLAS_NOT_SUPPORTED = 56, + INSUFFICIENT_TCLAS_PROCESSING_RESOURCES = 57, + TRY_ANOTHER_BSS = 58, + GAS_ADV_PROTO_NOT_SUPPORTED = 59, + NO_OUTSTANDING_GAS_REQ = 60, + GAS_RESP_NOT_RECEIVED = 61, + STA_TIMED_OUT_WAITING_FOR_GAS_RESP = 62, + GAS_RESP_LARGER_THAN_LIMIT = 63, + REQ_REFUSED_HOME = 64, + ADV_SRV_UNREACHABLE = 65, + REQ_REFUSED_SSPN = 67, + REQ_REFUSED_UNAUTH_ACCESS = 68, + INVALID_RSNIE = 72, + U_APSD_COEX_NOT_SUPPORTED = 73, + U_APSD_COEX_MODE_NOT_SUPPORTED = 74, + BAD_INTERVAL_WITH_U_APSD_COEX = 75, + ANTI_CLOGGING_TOKEN_REQ = 76, + FINITE_CYCLIC_GROUP_NOT_SUPPORTED = 77, + CANNOT_FIND_ALT_TBTT = 78, + TRANSMISSION_FAILURE = 79, + REQ_TCLAS_NOT_SUPPORTED = 80, + TCLAS_RESOURCES_EXCHAUSTED = 81, + REJECTED_WITH_SUGGESTED_BSS_TRANSITION = 82, + REJECT_WITH_SCHEDULE = 83, + REJECT_NO_WAKEUP_SPECIFIED = 84, + SUCCESS_POWER_SAVE_MODE = 85, + PENDING_ADMITTING_FST_SESSION = 86, + PERFORMING_FST_NOW = 87, + PENDING_GAP_IN_BA_WINDOW = 88, + REJECT_U_PID_SETTING = 89, + REFUSED_EXTERNAL_REASON = 92, + REFUSED_AP_OUT_OF_MEMORY = 93, + REJECTED_EMERGENCY_SERVICE_NOT_SUPPORTED = 94, + QUERY_RESP_OUTSTANDING = 95, + REJECT_DSE_BAND = 96, + TCLAS_PROCESSING_TERMINATED = 97, + TS_SCHEDULE_CONFLICT = 98, + DENIED_WITH_SUGGESTED_BAND_AND_CHANNEL = 99, + MCCAOP_RESERVATION_CONFLICT = 100, + MAF_LIMIT_EXCEEDED = 101, + MCCA_TRACK_LIMIT_EXCEEDED = 102, + DENIED_DUE_TO_SPECTRUM_MANAGEMENT = 103, + ASSOC_DENIED_NO_VHT = 104, + ENABLEMENT_DENIED = 105, + RESTRICTION_FROM_AUTHORIZED_GDB = 106, + AUTHORIZATION_DEENABLED = 107, + FILS_AUTHENTICATION_FAILURE = 112, + UNKNOWN_AUTHENTICATION_SERVER = 113, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1d37635a29a26cdb1c1505b0ba98a923eab85570 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable SupplicantStateChangeData { + android.hardware.wifi.supplicant.StaIfaceCallbackState newState; + int id; + byte[] ssid; + byte[6] bssid; + android.hardware.wifi.supplicant.KeyMgmtMask keyMgmtMask; + int frequencyMhz; + boolean filsHlpSent; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStatusCode.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStatusCode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..d7ff7982b54cb8d87dff3a8579004a1c9d8dd472 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/SupplicantStatusCode.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum SupplicantStatusCode { + SUCCESS, + FAILURE_UNKNOWN, + FAILURE_ARGS_INVALID, + FAILURE_IFACE_INVALID, + FAILURE_IFACE_UNKNOWN, + FAILURE_IFACE_EXISTS, + FAILURE_IFACE_DISABLED, + FAILURE_IFACE_NOT_DISCONNECTED, + FAILURE_NETWORK_INVALID, + FAILURE_NETWORK_UNKNOWN, + FAILURE_UNSUPPORTED, + FAILURE_ONGOING_REQUEST, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TlsVersion.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TlsVersion.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b31826a1989ed775a057002a746d7a3c964d255e --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TlsVersion.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum TlsVersion { + TLS_V1_0, + TLS_V1_1, + TLS_V1_2, + TLS_V1_3, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TransitionDisableIndication.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TransitionDisableIndication.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f1d7370c76eabf5a1f63e4446300843ae61842ec --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/TransitionDisableIndication.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum TransitionDisableIndication { + USE_WPA3_PERSONAL = (1 << 0) /* 1 */, + USE_SAE_PK = (1 << 1) /* 2 */, + USE_WPA3_ENTERPRISE = (1 << 2) /* 4 */, + USE_ENHANCED_OPEN = (1 << 3) /* 8 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WifiTechnology.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WifiTechnology.aidl new file mode 100644 index 0000000000000000000000000000000000000000..bf5081ea70fe04e10f8c4ffc75529027e649d30a --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WifiTechnology.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WifiTechnology { + UNKNOWN = 0, + LEGACY = 1, + HT = 2, + VHT = 3, + HE = 4, + EHT = 5, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpaDriverCapabilitiesMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpaDriverCapabilitiesMask.aidl new file mode 100644 index 0000000000000000000000000000000000000000..330f2aa267eede742c399c4bfea05702440b4d52 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpaDriverCapabilitiesMask.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WpaDriverCapabilitiesMask { + MBO = (1 << 0) /* 1 */, + OCE = (1 << 1) /* 2 */, + SAE_PK = (1 << 2) /* 4 */, + WFD_R2 = (1 << 3) /* 8 */, + TRUST_ON_FIRST_USE = (1 << 4) /* 16 */, + SET_TLS_MINIMUM_VERSION = (1 << 5) /* 32 */, + TLS_V1_3 = (1 << 6) /* 64 */, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigError.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigError.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c48b282e35e7fd97337765d433e1f3ad5d7e560e --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigError.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WpsConfigError { + NO_ERROR = 0, + OOB_IFACE_READ_ERROR = 1, + DECRYPTION_CRC_FAILURE = 2, + CHAN_24_NOT_SUPPORTED = 3, + CHAN_50_NOT_SUPPORTED = 4, + SIGNAL_TOO_WEAK = 5, + NETWORK_AUTH_FAILURE = 6, + NETWORK_ASSOC_FAILURE = 7, + NO_DHCP_RESPONSE = 8, + FAILED_DHCP_CONFIG = 9, + IP_ADDR_CONFLICT = 10, + NO_CONN_TO_REGISTRAR = 11, + MULTIPLE_PBC_DETECTED = 12, + ROGUE_SUSPECTED = 13, + DEVICE_BUSY = 14, + SETUP_LOCKED = 15, + MSG_TIMEOUT = 16, + REG_SESS_TIMEOUT = 17, + DEV_PASSWORD_AUTH_FAILURE = 18, + CHAN_60G_NOT_SUPPORTED = 19, + PUBLIC_KEY_HASH_MISMATCH = 20, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigMethods.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigMethods.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b9ea211bb4db735431abcc310735a0238765e19f --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsConfigMethods.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WpsConfigMethods { + USBA = 0x0001, + ETHERNET = 0x0002, + LABEL = 0x0004, + DISPLAY = 0x0008, + EXT_NFC_TOKEN = 0x0010, + INT_NFC_TOKEN = 0x0020, + NFC_INTERFACE = 0x0040, + PUSHBUTTON = 0x0080, + KEYPAD = 0x0100, + VIRT_PUSHBUTTON = 0x0280, + PHY_PUSHBUTTON = 0x0480, + P2PS = 0x1000, + VIRT_DISPLAY = 0x2008, + PHY_DISPLAY = 0x4008, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsDevPasswordId.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsDevPasswordId.aidl new file mode 100644 index 0000000000000000000000000000000000000000..9a20187b6e8c06293ffbe33d1ece471f9c2a9ae9 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsDevPasswordId.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WpsDevPasswordId { + DEFAULT = 0x0000, + USER_SPECIFIED = 0x0001, + MACHINE_SPECIFIED = 0x0002, + REKEY = 0x0003, + PUSHBUTTON = 0x0004, + REGISTRAR_SPECIFIED = 0x0005, + NFC_CONNECTION_HANDOVER = 0x0007, + P2PS_DEFAULT = 0x0008, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsErrorIndication.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsErrorIndication.aidl new file mode 100644 index 0000000000000000000000000000000000000000..50e69ff03b0007b940d446ec5673f3c9a6c692d0 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsErrorIndication.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WpsErrorIndication { + NO_ERROR = 0, + SECURITY_TKIP_ONLY_PROHIBITED = 1, + SECURITY_WEP_PROHIBITED = 2, + AUTH_FAILURE = 3, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsProvisionMethod.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsProvisionMethod.aidl new file mode 100644 index 0000000000000000000000000000000000000000..177d218db3801bfb71b4264dd522e03d3f1c7dd0 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/3/android/hardware/wifi/supplicant/WpsProvisionMethod.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@Backing(type="int") @VintfStability +enum WpsProvisionMethod { + PBC, + DISPLAY, + KEYPAD, +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl index 0729646c9a1e734bb80962e60389391f50c6488d..0b068e001f3d3ef75c76c538e29237ff1060ef3a 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl @@ -35,13 +35,22 @@ package android.hardware.wifi.supplicant; @VintfStability interface ISupplicantP2pIface { void addBonjourService(in byte[] query, in byte[] response); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use createGroupOwner. + */ void addGroup(in boolean persistent, in int persistentNetworkId); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use addGroupWithConfigurationParams. + */ void addGroupWithConfig(in byte[] ssid, in String pskPassphrase, in boolean persistent, in int freq, in byte[] peerAddress, in boolean joinExistingGroup); @PropagateAllowBlocking android.hardware.wifi.supplicant.ISupplicantP2pNetwork addNetwork(); void addUpnpService(in int version, in String serviceName); void cancelConnect(); void cancelServiceDiscovery(in long identifier); void cancelWps(in String groupIfName); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use configureExtListenWithParams. + */ void configureExtListen(in int periodInMillis, in int intervalInMillis); /** * @deprecated This method is deprecated from AIDL v3, newer HALs should use connectWithParams. @@ -111,4 +120,7 @@ interface ISupplicantP2pIface { void configureEapolIpAddressAllocationParams(in int ipAddressGo, in int ipAddressMask, in int ipAddressStart, in int ipAddressEnd); String connectWithParams(in android.hardware.wifi.supplicant.P2pConnectInfo connectInfo); void findWithParams(in android.hardware.wifi.supplicant.P2pDiscoveryInfo discoveryInfo); + void configureExtListenWithParams(in android.hardware.wifi.supplicant.P2pExtListenInfo extListenInfo); + void addGroupWithConfigurationParams(in android.hardware.wifi.supplicant.P2pAddGroupConfigurationParams groupConfigurationParams); + void createGroupOwner(in android.hardware.wifi.supplicant.P2pCreateGroupOwnerInfo groupOwnerInfo); } diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl index 851e85107b6f2edeb060802f953624166dc34dfb..65ad4c1407bb63ea7e2fe1fbaf230a247b3b1586 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl @@ -35,17 +35,23 @@ package android.hardware.wifi.supplicant; @VintfStability interface ISupplicantP2pIfaceCallback { /** - * @deprecated This callback is deprecated from AIDL v2, newer HAL should call onDeviceFoundWithParams. + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onDeviceFoundWithParams. */ oneway void onDeviceFound(in byte[] srcAddress, in byte[] p2pDeviceAddress, in byte[] primaryDeviceType, in String deviceName, in android.hardware.wifi.supplicant.WpsConfigMethods configMethods, in byte deviceCapabilities, in android.hardware.wifi.supplicant.P2pGroupCapabilityMask groupCapabilities, in byte[] wfdDeviceInfo); oneway void onDeviceLost(in byte[] p2pDeviceAddress); oneway void onFindStopped(); oneway void onGoNegotiationCompleted(in android.hardware.wifi.supplicant.P2pStatusCode status); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use onGoNegotiationRequestWithParams. + */ oneway void onGoNegotiationRequest(in byte[] srcAddress, in android.hardware.wifi.supplicant.WpsDevPasswordId passwordId); oneway void onGroupFormationFailure(in String failureReason); oneway void onGroupFormationSuccess(); oneway void onGroupRemoved(in String groupIfname, in boolean isGroupOwner); oneway void onGroupStarted(in String groupIfname, in boolean isGroupOwner, in byte[] ssid, in int frequency, in byte[] psk, in String passphrase, in byte[] goDeviceAddress, in boolean isPersistent); + /** + * @deprecated This method is deprecated from AIDL v3, newer HALs should use onInvitationReceivedWithParams. + */ oneway void onInvitationReceived(in byte[] srcAddress, in byte[] goDeviceAddress, in byte[] bssid, in int persistentNetworkId, in int operatingFrequency); oneway void onInvitationResult(in byte[] bssid, in android.hardware.wifi.supplicant.P2pStatusCode status); /** @@ -72,4 +78,6 @@ interface ISupplicantP2pIfaceCallback { oneway void onPeerClientDisconnected(in android.hardware.wifi.supplicant.P2pPeerClientDisconnectedEventParams clientDisconnectedEventParams); oneway void onProvisionDiscoveryCompletedEvent(in android.hardware.wifi.supplicant.P2pProvisionDiscoveryCompletedEventParams provisionDiscoveryCompletedEventParams); oneway void onDeviceFoundWithParams(in android.hardware.wifi.supplicant.P2pDeviceFoundEventParams deviceFoundEventParams); + oneway void onGoNegotiationRequestWithParams(in android.hardware.wifi.supplicant.P2pGoNegotiationReqEventParams params); + oneway void onInvitationReceivedWithParams(in android.hardware.wifi.supplicant.P2pInvitationEventParams params); } diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl index 898c2d4dd72dfccd0d392bded0facf336b77073d..9fa8f56cd58c0d0b4f1aef3047a919df70a3f22b 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl @@ -54,7 +54,7 @@ interface ISupplicantStaIfaceCallback { oneway void onExtRadioWorkTimeout(in int id); oneway void onHs20DeauthImminentNotice(in byte[] bssid, in int reasonCode, in int reAuthDelayInSec, in String url); /** - * @deprecated No longer in use. + * @deprecated This callback is deprecated from AIDL v3. */ oneway void onHs20IconQueryDone(in byte[] bssid, in String fileName, in byte[] data); oneway void onHs20SubscriptionRemediation(in byte[] bssid, in android.hardware.wifi.supplicant.OsuMethod osuMethod, in String url); diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/KeyMgmtMask.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/KeyMgmtMask.aidl index 35d51bc5660d7de461432c8202cf2eb8a749adde..06c22cbde81eec48462e4390e2b968440beb1dd7 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/KeyMgmtMask.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/KeyMgmtMask.aidl @@ -51,4 +51,5 @@ enum KeyMgmtMask { WAPI_CERT = (1 << 13) /* 8192 */, FILS_SHA256 = (1 << 18) /* 262144 */, FILS_SHA384 = (1 << 19) /* 524288 */, + PASN = (1 << 25) /* 33554432 */, } diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ff73f84f24c79b39f686e1868c0bb5913304a80f --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pAddGroupConfigurationParams { + byte[] ssid; + String passphrase; + boolean isPersistent; + int frequencyMHzOrBand; + byte[6] goInterfaceAddress; + boolean joinExistingGroup; + int keyMgmtMask; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4451fb55effa47a04c3a2fcf2edc76aaed6d099a --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pCreateGroupOwnerInfo { + boolean persistent; + int persistentNetworkId; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..b4d8e9d92e81aa0f6d51f4b60632bd42b4ac2dd6 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl @@ -0,0 +1,40 @@ +/** + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pExtListenInfo { + int periodMs; + int intervalMs; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..ba10b3ee647e8d641a42fcf0caac056b68afaa87 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pGoNegotiationReqEventParams { + byte[6] srcAddress; + android.hardware.wifi.supplicant.WpsDevPasswordId passwordId; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..541ee4f93d70300dfe2b83bc2abbc82b0589a7a7 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pInvitationEventParams { + byte[6] srcAddress; + byte[6] goDeviceAddress; + byte[6] bssid; + int persistentNetworkId; + int operatingFrequencyMHz; + @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl index 0ff06536b3469b9b8fc80669824f33163f389bfc..46366cc8d3a1ed3552992209c60e27234921c9d8 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl @@ -37,7 +37,7 @@ parcelable P2pProvisionDiscoveryCompletedEventParams { byte[6] p2pDeviceAddress; boolean isRequest; android.hardware.wifi.supplicant.P2pProvDiscStatusCode status; - android.hardware.wifi.supplicant.WpsConfigMethods configMethods; + int configMethods; String generatedPin; String groupInterfaceName; @nullable android.hardware.wifi.common.OuiKeyedData[] vendorData; diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl index 983ed154a4df83fc71c43ae988eba3f232dcf1e7..12307935ac488b43c1852faf330425f72678241a 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIface.aidl @@ -22,8 +22,11 @@ import android.hardware.wifi.supplicant.ISupplicantP2pIfaceCallback; import android.hardware.wifi.supplicant.ISupplicantP2pNetwork; import android.hardware.wifi.supplicant.IfaceType; import android.hardware.wifi.supplicant.MiracastMode; +import android.hardware.wifi.supplicant.P2pAddGroupConfigurationParams; import android.hardware.wifi.supplicant.P2pConnectInfo; +import android.hardware.wifi.supplicant.P2pCreateGroupOwnerInfo; import android.hardware.wifi.supplicant.P2pDiscoveryInfo; +import android.hardware.wifi.supplicant.P2pExtListenInfo; import android.hardware.wifi.supplicant.P2pFrameTypeMask; import android.hardware.wifi.supplicant.P2pGroupCapabilityMask; import android.hardware.wifi.supplicant.WpsConfigMethods; @@ -51,6 +54,9 @@ interface ISupplicantP2pIface { * negotiation with a specific peer). This is also known as autonomous * group owner. Optional |persistentNetworkId| may be used to specify * restart of a persistent group. + *

+ * @deprecated This method is deprecated from AIDL v3, newer HALs should use + * createGroupOwner. * * @param persistent Used to request a persistent group to be formed. * @param persistentNetworkId Used to specify the restart of a persistent @@ -73,6 +79,9 @@ interface ISupplicantP2pIface { * whose network name and group owner's MAC address matches the specified SSID * and peer address without WPS process. If peerAddress is 00:00:00:00:00:00, the first found * group whose network name matches the specified SSID is joined. + *

+ * @deprecated This method is deprecated from AIDL v3, newer HALs should use + * addGroupWithConfigurationParams. * * @param ssid The SSID of this group. * @param pskPassphrase The passphrase of this group. @@ -165,6 +174,9 @@ interface ISupplicantP2pIface { * (with interval obviously having to be larger than or equal to duration). * If the P2P module is not idle at the time the Extended Listen Timing * timeout occurs, the Listen State operation must be skipped. + *

+ * @deprecated This method is deprecated from AIDL v3, newer HALs should use + * configureExtListenWithParams. * * @param periodInMillis Period in milliseconds. * @param intervalInMillis Interval in milliseconds. @@ -882,4 +894,48 @@ interface ISupplicantP2pIface { * |SupplicantStatusCode.FAILURE_IFACE_DISABLED| */ void findWithParams(in P2pDiscoveryInfo discoveryInfo); + + /** + * Configure Extended Listen Timing. + * + * If enabled, listen state must be entered every |intervalMs| for at + * least |periodMs|. Both values have acceptable range of 1-65535 + * (note that the interval must be larger than or equal to the duration). + * If the P2P module is not idle at the time the Extended Listen Timing + * timeout occurs, the Listen State operation must be skipped. + * + * @param extListenInfo Parameters to configure extended listening timing. + * @throws ServiceSpecificException with one of the following values: + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + void configureExtListenWithParams(in P2pExtListenInfo extListenInfo); + + /** + * Set up a P2P group owner or join a group as a group client with the + * specified configuration. The group configurations required to establish + * a connection(SSID, password, channel, etc) are shared out of band. + * So the connection process doesn't require a P2P provision discovery or + * invitation message exchange. + * + * @param groupConfigurationParams Parameters associated with this add group operation. + * @throws ServiceSpecificException with one of the following values: + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + void addGroupWithConfigurationParams( + in P2pAddGroupConfigurationParams groupConfigurationParams); + + /** + * Set up a P2P group owner on this device. This is also known as autonomous + * group owner. The connection process requires P2P provision discovery + * message or invitation message exchange. + * + * @param groupOwnerInfo Parameters associated with this create group owner operation. + * @throws ServiceSpecificException with one of the following values: + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + void createGroupOwner(in P2pCreateGroupOwnerInfo groupOwnerInfo); } diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl index 11cd86793393cecb8a5bbf70d03ef4cc7279d15e..44a54652b202656fb20228eff8e6c47c21b61249 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl @@ -17,8 +17,10 @@ package android.hardware.wifi.supplicant; import android.hardware.wifi.supplicant.P2pDeviceFoundEventParams; +import android.hardware.wifi.supplicant.P2pGoNegotiationReqEventParams; import android.hardware.wifi.supplicant.P2pGroupCapabilityMask; import android.hardware.wifi.supplicant.P2pGroupStartedEventParams; +import android.hardware.wifi.supplicant.P2pInvitationEventParams; import android.hardware.wifi.supplicant.P2pPeerClientDisconnectedEventParams; import android.hardware.wifi.supplicant.P2pPeerClientJoinedEventParams; import android.hardware.wifi.supplicant.P2pProvDiscStatusCode; @@ -40,7 +42,7 @@ oneway interface ISupplicantP2pIfaceCallback { /** * Used to indicate that a P2P device has been found. *

- * @deprecated This callback is deprecated from AIDL v2, newer HAL should call + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call * onDeviceFoundWithParams. * * @param srcAddress MAC address of the device found. This must either @@ -88,6 +90,10 @@ oneway interface ISupplicantP2pIfaceCallback { * @param srcAddress MAC address of the device that initiated the GO * negotiation request. * @param passwordId Type of password. + * + *

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

+ * @deprecated This method is deprecated from AIDL v3, newer HALs should use + * onInvitationReceivedWithParams. */ void onInvitationReceived(in byte[] srcAddress, in byte[] goDeviceAddress, in byte[] bssid, in int persistentNetworkId, in int operatingFrequency); @@ -302,4 +311,18 @@ oneway interface ISupplicantP2pIfaceCallback { * @param deviceFoundEventParams Parameters associated with the device found event. */ void onDeviceFoundWithParams(in P2pDeviceFoundEventParams deviceFoundEventParams); + + /** + * Used to indicate the reception of a P2P Group Owner negotiation request. + * + * @param params Parameters associated with the GO negotiation request event. + */ + void onGoNegotiationRequestWithParams(in P2pGoNegotiationReqEventParams params); + + /** + * Used to indicate the reception of a P2P invitation. + * + * @param params Parameters associated with the invitation request event. + */ + void onInvitationReceivedWithParams(in P2pInvitationEventParams params); } diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl index 58893ebf669f1d75c1550347dd29d2bcd40ca60f..172fcda26f507d42c66e2dd0b09a91ae6bcdfd3f 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl @@ -198,7 +198,7 @@ oneway interface ISupplicantStaIfaceCallback { /** * Used to indicate the result of Hotspot 2.0 Icon query. * - * @deprecated No longer in use. + * @deprecated This callback is deprecated from AIDL v3. * * @param bssid BSSID of the access point. * @param fileName Name of the file that was requested. diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/KeyMgmtMask.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/KeyMgmtMask.aidl index f0c3345b93094c97750eb885837f10f7c4d6596d..8758645f1a8de6affdffe75b1464315cf72247a1 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/KeyMgmtMask.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/KeyMgmtMask.aidl @@ -71,4 +71,8 @@ enum KeyMgmtMask { * FILS shared key authentication with sha-384 */ FILS_SHA384 = 1 << 19, + /** + * Pre-Association Security Negotiation (PASN) Key management + */ + PASN = 1 << 25, } diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..15f2733b32aa60e1fde9b8a0b415ea17011f5c0a --- /dev/null +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pAddGroupConfigurationParams.aidl @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.wifi.supplicant; + +import android.hardware.wifi.common.OuiKeyedData; +import android.hardware.wifi.supplicant.KeyMgmtMask; + +/** + * Request parameters used for |ISupplicantP2pIface.addGroupWithConfigurationParams| + */ +@VintfStability +parcelable P2pAddGroupConfigurationParams { + /** The SSID of the group. */ + byte[] ssid; + + /** The passphrase used to secure the group. */ + String passphrase; + + /** Whether this group is persisted. Only applied on the group owner side */ + boolean isPersistent; + + /** + * The required frequency or band of the group. + * Only applied on the group owner side. + * The following values are supported: + * 0: automatic channel selection, + * 2: for 2.4GHz channels + * 5: for 5GHz channels + * 6: for 6GHz channels + * specific frequency in MHz, i.e., 2412, 5500, etc. + * If an invalid band or unsupported frequency are specified, + * |ISupplicantP2pIface.addGroupWithConfigurationParams| fails + */ + int frequencyMHzOrBand; + + /** + * The MAC Address of the P2P interface of the Peer GO device. + * This field is valid only for the group client side. + * If the MAC is "00:00:00:00:00:00", the device must try to find a peer GO device + * whose network name matches the specified SSID. + */ + byte[6] goInterfaceAddress; + + /* + * True if join a group as a group client; false to create a group as a group owner + */ + boolean joinExistingGroup; + + /** + * The authentication Key management mask for the connection. Combination of |KeyMgmtMask| + * values. The supported authentication key management types are WPA_PSK, SAE and PASN. + * + */ + int keyMgmtMask; + + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. + */ + @nullable OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..51e6ed9c5c3df99500b547c0fcb3443b860c9f3d --- /dev/null +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pCreateGroupOwnerInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.wifi.supplicant; + +import android.hardware.wifi.common.OuiKeyedData; + +/** + * Parameters used for |ISupplicantP2pIface.createGroupOwner| + */ +@VintfStability +parcelable P2pCreateGroupOwnerInfo { + /** + * Used to request a persistent group to be formed. + */ + boolean persistent; + + /** + * Optional parameter. Used to specify the restart of a persistent + * group. Set to UINT32_MAX for a non-persistent group. + */ + int persistentNetworkId; + + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. + */ + @nullable OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl new file mode 100644 index 0000000000000000000000000000000000000000..1086c94c084784e35b9f08a48207af6ccd6b56d1 --- /dev/null +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pExtListenInfo.aidl @@ -0,0 +1,39 @@ +/** + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.wifi.supplicant; + +import android.hardware.wifi.common.OuiKeyedData; + +/** + * Parameters used to configure the P2P Extended Listen Interval. + */ +@VintfStability +parcelable P2pExtListenInfo { + /** + * Period in milliseconds. + */ + int periodMs; + /** + * Interval in milliseconds. + */ + int intervalMs; + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. + */ + @nullable OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..3480734c58f2f7693335862abe08a25382d125a3 --- /dev/null +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pGoNegotiationReqEventParams.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.wifi.supplicant; + +import android.hardware.wifi.common.OuiKeyedData; +import android.hardware.wifi.supplicant.WpsDevPasswordId; + +/** + * Parameters used for |ISupplicantP2pIfaceCallback.onGoNegotiationRequestWithParams| + */ +@VintfStability +parcelable P2pGoNegotiationReqEventParams { + /** + * MAC address of the device that sent the Go negotiation request. + */ + byte[6] srcAddress; + + /** + * Type of password. + */ + WpsDevPasswordId passwordId; + + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. + */ + @nullable OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl new file mode 100644 index 0000000000000000000000000000000000000000..4295c40f3eddb6ab93a81810a44839c5ff7dbabb --- /dev/null +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pInvitationEventParams.aidl @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.wifi.supplicant; + +import android.hardware.wifi.common.OuiKeyedData; + +/** + * Parameters used for |ISupplicantP2pIfaceCallback.onInvitationReceivedWithParams| + */ +@VintfStability +parcelable P2pInvitationEventParams { + /** + * MAC address of the device that sent the invitation. + */ + byte[6] srcAddress; + + /** + * P2P device MAC Address of the group owner. + */ + byte[6] goDeviceAddress; + + /** + * BSSID of the group. + */ + byte[6] bssid; + + /** + * Persistent network ID of the group. + */ + int persistentNetworkId; + + /** + * Frequency on which the invitation was received. + */ + int operatingFrequencyMHz; + + /** + * Optional vendor-specific parameters. Null value indicates + * that no vendor data is provided. + */ + @nullable OuiKeyedData[] vendorData; +} diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl index b559216611a3c51147469f4b7754e109f5e6a06d..05152a9454b515f12e7333c10691ecea42426380 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pProvisionDiscoveryCompletedEventParams.aidl @@ -18,7 +18,6 @@ package android.hardware.wifi.supplicant; import android.hardware.wifi.common.OuiKeyedData; import android.hardware.wifi.supplicant.P2pProvDiscStatusCode; -import android.hardware.wifi.supplicant.WpsConfigMethods; /** * Parameters passed as a part of P2P provision discovery frame notification. @@ -34,8 +33,8 @@ parcelable P2pProvisionDiscoveryCompletedEventParams { boolean isRequest; /** Status of the provision discovery */ P2pProvDiscStatusCode status; - /** Mask of WPS configuration methods supported */ - WpsConfigMethods configMethods; + /** Mask of |WpsConfigMethods| indicating the supported methods */ + int configMethods; /** 8-digit pin generated */ String generatedPin; /** diff --git a/wifi/supplicant/aidl/vts/functional/Android.bp b/wifi/supplicant/aidl/vts/functional/Android.bp index 96c13e701fc79e17e3e6ce0ddd3defe4e1f1373f..4166850e33186c8e6dc09c8642437539edfefe3f 100644 --- a/wifi/supplicant/aidl/vts/functional/Android.bp +++ b/wifi/supplicant/aidl/vts/functional/Android.bp @@ -15,6 +15,7 @@ // package { + default_team: "trendy_team_fwk_wifi_hal", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_interfaces_license" diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp index 3f96414a0e11c2754282d41fd6a761fa494e44d7..8f1c4bdee52bb8be3cc0ecb9c3f6ab31602938d0 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp @@ -27,6 +27,7 @@ #include #include "supplicant_test_utils.h" +#include "wifi_aidl_test_utils.h" using aidl::android::hardware::wifi::supplicant::BnSupplicantP2pIfaceCallback; using aidl::android::hardware::wifi::supplicant::DebugLevel; @@ -35,14 +36,22 @@ using aidl::android::hardware::wifi::supplicant::IfaceType; using aidl::android::hardware::wifi::supplicant::ISupplicant; using aidl::android::hardware::wifi::supplicant::ISupplicantP2pIface; using aidl::android::hardware::wifi::supplicant::MiracastMode; +using aidl::android::hardware::wifi::supplicant::P2pAddGroupConfigurationParams; +using aidl::android::hardware::wifi::supplicant::P2pConnectInfo; +using aidl::android::hardware::wifi::supplicant::P2pCreateGroupOwnerInfo; using aidl::android::hardware::wifi::supplicant::P2pDeviceFoundEventParams; +using aidl::android::hardware::wifi::supplicant::P2pDiscoveryInfo; +using aidl::android::hardware::wifi::supplicant::P2pExtListenInfo; using aidl::android::hardware::wifi::supplicant::P2pFrameTypeMask; +using aidl::android::hardware::wifi::supplicant::P2pGoNegotiationReqEventParams; using aidl::android::hardware::wifi::supplicant::P2pGroupCapabilityMask; using aidl::android::hardware::wifi::supplicant::P2pGroupStartedEventParams; +using aidl::android::hardware::wifi::supplicant::P2pInvitationEventParams; using aidl::android::hardware::wifi::supplicant::P2pPeerClientDisconnectedEventParams; using aidl::android::hardware::wifi::supplicant::P2pPeerClientJoinedEventParams; using aidl::android::hardware::wifi::supplicant::P2pProvDiscStatusCode; using aidl::android::hardware::wifi::supplicant::P2pProvisionDiscoveryCompletedEventParams; +using aidl::android::hardware::wifi::supplicant::P2pScanType; using aidl::android::hardware::wifi::supplicant::P2pStatusCode; using aidl::android::hardware::wifi::supplicant::SupplicantStatusCode; using aidl::android::hardware::wifi::supplicant::WpsConfigMethods; @@ -67,6 +76,7 @@ const uint32_t kTestNetworkId = 7; const uint32_t kTestGroupFreq = 0; const bool kTestGroupPersistent = false; const bool kTestGroupIsJoin = false; +const auto& kTestVendorDataOptional = generateOuiKeyedDataListOptional(5); } // namespace @@ -204,6 +214,14 @@ class SupplicantP2pIfaceCallback : public BnSupplicantP2pIfaceCallback { const P2pDeviceFoundEventParams& /* deviceFoundEventParams */) override { return ndk::ScopedAStatus::ok(); } + ::ndk::ScopedAStatus onGoNegotiationRequestWithParams( + const P2pGoNegotiationReqEventParams& /* goNegotiationReqEventParams */) override { + return ndk::ScopedAStatus::ok(); + } + ::ndk::ScopedAStatus onInvitationReceivedWithParams( + const P2pInvitationEventParams& /* invitationEventParams */) override { + return ndk::ScopedAStatus::ok(); + } }; class SupplicantP2pIfaceAidlTest : public testing::TestWithParam { @@ -212,6 +230,7 @@ class SupplicantP2pIfaceAidlTest : public testing::TestWithParam { initializeService(); supplicant_ = getSupplicant(GetParam().c_str()); ASSERT_NE(supplicant_, nullptr); + ASSERT_TRUE(supplicant_->getInterfaceVersion(&interface_version_).isOk()); ASSERT_TRUE(supplicant_ ->setDebugParams(DebugLevel::EXCESSIVE, true, // show timestamps @@ -237,6 +256,7 @@ class SupplicantP2pIfaceAidlTest : public testing::TestWithParam { protected: std::shared_ptr supplicant_; std::shared_ptr p2p_iface_; + int interface_version_; }; /* @@ -518,6 +538,43 @@ TEST_P(SupplicantP2pIfaceAidlTest, AddGroupWithConfig_FailureInvalidFrequency) { .isOk()); } +/* + * CreateGroupOwner + */ +TEST_P(SupplicantP2pIfaceAidlTest, CreateGroupOwner) { + if (interface_version_ < 3) { + GTEST_SKIP() << "createGroupOwner is available as of Supplicant V3"; + } + + P2pCreateGroupOwnerInfo info; + info.persistent = false; + info.persistentNetworkId = kTestNetworkId; + info.vendorData = kTestVendorDataOptional; + + EXPECT_TRUE(p2p_iface_->createGroupOwner(info).isOk()); +} + +/* + * AddGroupWithConfigurationParams + */ +TEST_P(SupplicantP2pIfaceAidlTest, AddGroupWithConfigurationParams) { + if (interface_version_ < 3) { + GTEST_SKIP() << "addGroupWithConfigurationParams is available as of Supplicant V3"; + } + + P2pAddGroupConfigurationParams params; + params.ssid = kTestSsid; + params.passphrase = kTestPassphrase; + params.isPersistent = kTestGroupPersistent; + params.frequencyMHzOrBand = kTestGroupFreq; + params.goInterfaceAddress = vecToArrayMacAddr(kTestZeroMacAddr); + params.joinExistingGroup = kTestGroupIsJoin; + params.keyMgmtMask = 0; + params.vendorData = kTestVendorDataOptional; + + EXPECT_TRUE(p2p_iface_->addGroupWithConfigurationParams(params).isOk()); +} + /* * Find */ @@ -539,6 +596,34 @@ TEST_P(SupplicantP2pIfaceAidlTest, FindSpecificFrequency) { EXPECT_TRUE(p2p_iface_->findOnSpecificFrequency(2412, kTestFindTimeout).isOk()); } +/* + * FindWithParams + */ +TEST_P(SupplicantP2pIfaceAidlTest, FindWithParams) { + if (interface_version_ < 3) { + GTEST_SKIP() << "findWithParams is available as of Supplicant V3"; + } + + P2pDiscoveryInfo discoveryParams; + discoveryParams.timeoutInSec = kTestFindTimeout; + discoveryParams.vendorData = kTestVendorDataOptional; + + discoveryParams.scanType = P2pScanType::FULL; + EXPECT_TRUE(p2p_iface_->findWithParams(discoveryParams).isOk()); + EXPECT_TRUE(p2p_iface_->stopFind().isOk()); + sleep(1); + + discoveryParams.scanType = P2pScanType::SOCIAL; + EXPECT_TRUE(p2p_iface_->findWithParams(discoveryParams).isOk()); + EXPECT_TRUE(p2p_iface_->stopFind().isOk()); + sleep(1); + + discoveryParams.scanType = P2pScanType::SPECIFIC_FREQ; + discoveryParams.frequencyMhz = 2412; + EXPECT_TRUE(p2p_iface_->findWithParams(discoveryParams).isOk()); + EXPECT_TRUE(p2p_iface_->stopFind().isOk()); +} + /* * StopFind */ @@ -565,6 +650,27 @@ TEST_P(SupplicantP2pIfaceAidlTest, Connect) { .isOk()); } +/* + * ConnectWithParams + */ +TEST_P(SupplicantP2pIfaceAidlTest, ConnectWithParams) { + if (interface_version_ < 3) { + GTEST_SKIP() << "connectWithParams is available as of Supplicant V3"; + } + + P2pConnectInfo connectInfo; + connectInfo.peerAddress = vecToArrayMacAddr(kTestMacAddr); + connectInfo.provisionMethod = WpsProvisionMethod::PBC; + connectInfo.preSelectedPin = kTestConnectPin; + connectInfo.joinExistingGroup = true; + connectInfo.persistent = false; + connectInfo.goIntent = kTestConnectGoIntent; + connectInfo.vendorData = kTestVendorDataOptional; + + std::string pin; + EXPECT_TRUE(p2p_iface_->connectWithParams(connectInfo, &pin).isOk()); +} + /* * CancelConnect */ @@ -624,6 +730,22 @@ TEST_P(SupplicantP2pIfaceAidlTest, ConfigureExtListen) { .isOk()); } +/* + * ConfigureExtListenWithParams + */ +TEST_P(SupplicantP2pIfaceAidlTest, ConfigureExtListenWithParams) { + if (interface_version_ < 3) { + GTEST_SKIP() << "configureExtListenWithParams is available as of Supplicant V3"; + } + + P2pExtListenInfo info; + info.periodMs = 400; + info.intervalMs = 400; + info.vendorData = kTestVendorDataOptional; + + EXPECT_TRUE(p2p_iface_->configureExtListenWithParams(info).isOk()); +} + /* * FlushServices */ diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_sta_iface_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_sta_iface_aidl_test.cpp index 5d00485d574a9bb296b51600a428ff3db9bfddea..58f9be8dedbcb7b850feb9d3999db588c4b6e8da 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_sta_iface_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_sta_iface_aidl_test.cpp @@ -43,6 +43,10 @@ using aidl::android::hardware::wifi::supplicant::ISupplicant; using aidl::android::hardware::wifi::supplicant::ISupplicantStaIface; using aidl::android::hardware::wifi::supplicant::ISupplicantStaNetwork; using aidl::android::hardware::wifi::supplicant::KeyMgmtMask; +using aidl::android::hardware::wifi::supplicant::MscsParams; +using aidl::android::hardware::wifi::supplicant::QosCharacteristics; +using aidl::android::hardware::wifi::supplicant::QosPolicyScsData; +using aidl::android::hardware::wifi::supplicant::QosPolicyScsRequestStatus; using aidl::android::hardware::wifi::supplicant::WpaDriverCapabilitiesMask; using aidl::android::hardware::wifi::supplicant::WpsConfigMethods; using android::ProcessState; @@ -252,6 +256,7 @@ class SupplicantStaIfaceAidlTest : public testing::TestWithParam { true, // show timestamps true) .isOk()); + ASSERT_TRUE(supplicant_->getInterfaceVersion(&interface_version_).isOk()); EXPECT_TRUE(supplicant_->getStaInterface(getStaIfaceName(), &sta_iface_) .isOk()); ASSERT_NE(sta_iface_, nullptr); @@ -293,6 +298,7 @@ class SupplicantStaIfaceAidlTest : public testing::TestWithParam { protected: std::shared_ptr supplicant_; std::shared_ptr sta_iface_; + int interface_version_; private: // synchronization objects @@ -788,6 +794,55 @@ TEST_P(SupplicantStaIfaceAidlTest, StartDppConfiguratorInitiator) { EXPECT_TRUE(sta_iface_->removeDppUri(peer_id).isOk()); } +/* + * Configure and Disable MSCS + */ +TEST_P(SupplicantStaIfaceAidlTest, ConfigureAndDisableMscs) { + if (interface_version_ < 3) { + GTEST_SKIP() << "MSCS configure/disable is available as of Supplicant V3"; + } + MscsParams params; + params.upBitmap = 0; + params.upLimit = 7; + params.streamTimeoutUs = 1000; // 1 ms + params.frameClassifierMask = 0; + EXPECT_TRUE(sta_iface_->configureMscs(params).isOk()); + EXPECT_TRUE(sta_iface_->disableMscs().isOk()); +} + +/* + * Add and remove QoS policy with traffic characteristics + */ +TEST_P(SupplicantStaIfaceAidlTest, AddAndRemoveQosWithTrafficChars) { + if (interface_version_ < 3) { + GTEST_SKIP() << "QosCharacteristics is available as of Supplicant V3"; + } + + QosCharacteristics qosChars; + qosChars.minServiceIntervalUs = 2000; + qosChars.maxServiceIntervalUs = 5000; + qosChars.minDataRateKbps = 500; + qosChars.delayBoundUs = 200; + qosChars.optionalFieldMask = 0; // no optional fields + + uint8_t policyId = 5; + QosPolicyScsData qosPolicy; + qosPolicy.policyId = policyId; + qosPolicy.direction = QosPolicyScsData::LinkDirection::UPLINK; + qosPolicy.QosCharacteristics = qosChars; + + std::vector policyIdList{policyId}; + std::vector policyList{qosPolicy}; + std::vector responseList; + + // Check that we receive some reply for this request. + // Policy may not be accepted (ex. policy with this id already exists). + EXPECT_TRUE(sta_iface_->addQosPolicyRequestForScs(policyList, &responseList).isOk()); + EXPECT_EQ(1, responseList.size()); + EXPECT_TRUE(sta_iface_->removeQosPolicyForScs(policyIdList, &responseList).isOk()); + EXPECT_EQ(1, responseList.size()); +} + GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(SupplicantStaIfaceAidlTest); INSTANTIATE_TEST_SUITE_P(Supplicant, SupplicantStaIfaceAidlTest, testing::ValuesIn(android::getAidlHalInstanceNames( diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp index 757414195ea7e0c79dcd660b9cfcdb2ccb2db60b..9bdd2f57222d55979123ee487409271fcf1d6e65 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_sta_network_aidl_test.cpp @@ -27,6 +27,7 @@ #include #include "supplicant_test_utils.h" +#include "wifi_aidl_test_utils.h" using aidl::android::hardware::wifi::supplicant::AuthAlgMask; using aidl::android::hardware::wifi::supplicant::BnSupplicantStaNetworkCallback; @@ -72,6 +73,7 @@ const std::string kTestEapMatch = "match"; const KeyMgmtMask kTestKeyMgmt = static_cast(static_cast(KeyMgmtMask::WPA_PSK) | static_cast(KeyMgmtMask::WPA_EAP)); +const auto& kTestVendorData = generateOuiKeyedDataList(5); } // namespace @@ -110,6 +112,7 @@ class SupplicantStaNetworkAidlTest initializeService(); supplicant_ = getSupplicant(GetParam().c_str()); ASSERT_NE(supplicant_, nullptr); + ASSERT_TRUE(supplicant_->getInterfaceVersion(&interface_version_).isOk()); ASSERT_TRUE(supplicant_ ->setDebugParams(DebugLevel::EXCESSIVE, true, // show timestamps @@ -131,6 +134,7 @@ class SupplicantStaNetworkAidlTest std::shared_ptr supplicant_; std::shared_ptr sta_iface_; std::shared_ptr sta_network_; + int interface_version_; void removeNetwork() { ASSERT_NE(sta_iface_, nullptr); @@ -826,9 +830,22 @@ TEST_P(SupplicantStaNetworkAidlTest, SetMinimumTlsVersionEapPhase1Param) { * disableEht */ TEST_P(SupplicantStaNetworkAidlTest, DisableEht) { + if (interface_version_ < 3) { + GTEST_SKIP() << "disableEht is available as of Supplicant V3"; + } EXPECT_TRUE(sta_network_->disableEht().isOk()); } +/* + * SetVendorData + */ +TEST_P(SupplicantStaNetworkAidlTest, SetVendorData) { + if (interface_version_ < 3) { + GTEST_SKIP() << "setVendorData is available as of Supplicant V3"; + } + EXPECT_TRUE(sta_network_->setVendorData(kTestVendorData).isOk()); +} + GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(SupplicantStaNetworkAidlTest); INSTANTIATE_TEST_SUITE_P(Supplicant, SupplicantStaNetworkAidlTest, testing::ValuesIn(android::getAidlHalInstanceNames( diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h b/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h index f2cb3f665c8b1434ffdd962a5cc7a9bdafe11d06..e39e2f44c2fc97f3281f214105297569d1926bea 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h +++ b/wifi/supplicant/aidl/vts/functional/supplicant_test_utils.h @@ -91,3 +91,9 @@ std::shared_ptr getSupplicant(const char* supplicant_name) { } return supplicant; } + +std::array vecToArrayMacAddr(std::vector vectorAddr) { + std::array arrayAddr; + std::copy(vectorAddr.begin(), vectorAddr.begin() + 6, arrayAddr.begin()); + return arrayAddr; +}