Merge "Adding yaoshunkai@ to hardware/interface/audio owner" into main
diff --git a/bluetooth/audio/aidl/default/LeAudioOffloadAudioProvider.cpp b/bluetooth/audio/aidl/default/LeAudioOffloadAudioProvider.cpp
index 9b89055..61c29d3 100644
--- a/bluetooth/audio/aidl/default/LeAudioOffloadAudioProvider.cpp
+++ b/bluetooth/audio/aidl/default/LeAudioOffloadAudioProvider.cpp
@@ -818,7 +818,7 @@
auto matched_setting = matchWithRequirement(
matched_ase_configuration_settings, requirement, false);
if (matched_setting.has_value()) {
- result.push_back(matched_setting_with_context.value());
+ result.push_back(matched_setting.value());
} else {
// Cannot find a match for this requirement
// Immediately return
diff --git a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp
index 110a628..4481238 100644
--- a/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp
+++ b/bluetooth/audio/aidl/vts/VtsHalBluetoothAudioTargetTest.cpp
@@ -142,6 +142,7 @@
VERSION_AIDL_V2,
VERSION_AIDL_V3,
VERSION_AIDL_V4,
+ VERSION_AIDL_V5,
};
// Some valid configs for HFP PCM configuration (software sessions)
@@ -683,6 +684,8 @@
return BluetoothAudioHalVersion::VERSION_AIDL_V3;
case 4:
return BluetoothAudioHalVersion::VERSION_AIDL_V4;
+ case 5:
+ return BluetoothAudioHalVersion::VERSION_AIDL_V5;
default:
return BluetoothAudioHalVersion::VERSION_UNAVAILABLE;
}
diff --git a/health/2.1/default/Android.bp b/health/2.1/default/Android.bp
index b7bcea5..00d89e2 100644
--- a/health/2.1/default/Android.bp
+++ b/health/2.1/default/Android.bp
@@ -81,7 +81,7 @@
],
vintf_fragments: [
- "android.hardware.health@2.1.xml"
+ "android.hardware.health@2.1.xml",
],
overrides: [
diff --git a/health/utils/libhealthloop/Android.bp b/health/utils/libhealthloop/Android.bp
index 7aaf905..b266f67 100644
--- a/health/utils/libhealthloop/Android.bp
+++ b/health/utils/libhealthloop/Android.bp
@@ -30,8 +30,8 @@
"utils.cpp",
],
shared_libs: [
- "libcutils",
"libbase",
+ "libcutils",
],
header_libs: [
"libbatteryservice_headers",
diff --git a/health/utils/libhealthloop/HealthLoop.cpp b/health/utils/libhealthloop/HealthLoop.cpp
index 4190769..f8c3490 100644
--- a/health/utils/libhealthloop/HealthLoop.cpp
+++ b/health/utils/libhealthloop/HealthLoop.cpp
@@ -20,20 +20,15 @@
#include <health/HealthLoop.h>
#include <errno.h>
-#include <libgen.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/epoll.h>
+#include <sys/epoll.h> // epoll_create1(), epoll_ctl(), epoll_wait()
#include <sys/timerfd.h>
-#include <unistd.h>
+#include <unistd.h> // read()
#include <android-base/logging.h>
#include <batteryservice/BatteryService.h>
-#include <cutils/klog.h>
+#include <cutils/klog.h> // KLOG_*()
#include <cutils/uevent.h>
#include <healthd/healthd.h>
-#include <utils/Errors.h>
#include <health/utils.h>
@@ -57,19 +52,18 @@
int HealthLoop::RegisterEvent(int fd, BoundFunction func, EventWakeup wakeup) {
CHECK(!reject_event_register_);
- auto* event_handler =
- event_handlers_
- .emplace_back(std::make_unique<EventHandler>(EventHandler{this, fd, func}))
- .get();
+ auto* event_handler = event_handlers_
+ .emplace_back(std::make_unique<EventHandler>(
+ EventHandler{this, fd, std::move(func)}))
+ .get();
- struct epoll_event ev;
-
- ev.events = EPOLLIN;
+ struct epoll_event ev = {
+ .events = EPOLLIN | EPOLLERR,
+ .data.ptr = reinterpret_cast<void*>(event_handler),
+ };
if (wakeup == EVENT_WAKEUP_FD) ev.events |= EPOLLWAKEUP;
- ev.data.ptr = reinterpret_cast<void*>(event_handler);
-
if (epoll_ctl(epollfd_, EPOLL_CTL_ADD, fd, &ev) == -1) {
KLOG_ERROR(LOG_TAG, "epoll_ctl failed; errno=%d\n", errno);
return -1;
@@ -124,9 +118,15 @@
// TODO(b/140330870): Use BPF instead.
#define UEVENT_MSG_LEN 2048
-void HealthLoop::UeventEvent(uint32_t /*epevents*/) {
+void HealthLoop::UeventEvent(uint32_t epevents) {
// No need to lock because uevent_fd_ is guaranteed to be initialized.
+ if (epevents & EPOLLERR) {
+ // The netlink receive buffer overflowed.
+ ScheduleBatteryUpdate();
+ return;
+ }
+
char msg[UEVENT_MSG_LEN + 2];
char* cp;
int n;
diff --git a/radio/aidl/vts/radio_config_test.cpp b/radio/aidl/vts/radio_config_test.cpp
index 6f18d18..e7214e5 100644
--- a/radio/aidl/vts/radio_config_test.cpp
+++ b/radio/aidl/vts/radio_config_test.cpp
@@ -278,7 +278,14 @@
EXPECT_LT(logicalSlotId, slotPortMappingList.size());
if (logicalSlotId >= 0 && logicalSlotId < slotPortMappingList.size()) {
slotPortMappingList[logicalSlotId].physicalSlotId = i;
- slotPortMappingList[logicalSlotId].portId = j;
+ if (radioRsp_config->simSlotStatus[i].supportedMepMode ==
+ MultipleEnabledProfilesMode::MEP_A1 ||
+ radioRsp_config->simSlotStatus[i].supportedMepMode ==
+ MultipleEnabledProfilesMode::MEP_A2) {
+ slotPortMappingList[logicalSlotId].portId = j + 1;
+ } else {
+ slotPortMappingList[logicalSlotId].portId = j;
+ }
}
}
}
diff --git a/threadnetwork/aidl/default/Android.bp b/threadnetwork/aidl/default/Android.bp
index 82a76e0..51e5c25 100644
--- a/threadnetwork/aidl/default/Android.bp
+++ b/threadnetwork/aidl/default/Android.bp
@@ -90,10 +90,20 @@
installable: false,
}
+filegroup {
+ name: "com.android.hardware.threadnetwork_manifest",
+ srcs: ["manifest.json"],
+}
+
+filegroup {
+ name: "com.android.hardware.threadnetwork_file_contexts",
+ srcs: ["file_contexts"],
+}
+
apex {
name: "com.android.hardware.threadnetwork",
- manifest: "manifest.json",
- file_contexts: "file_contexts",
+ manifest: ":com.android.hardware.threadnetwork_manifest",
+ file_contexts: ":com.android.hardware.threadnetwork_file_contexts",
key: "com.android.hardware.key",
certificate: ":com.android.hardware.certificate",
updatable: false,
@@ -110,3 +120,21 @@
"android.hardware.thread_network.prebuilt.xml", // permission
],
}
+
+prebuilt_etc {
+ name: "threadnetwork-service-simulation-rcp.rc",
+ src: "threadnetwork-service-simulation-rcp.rc",
+ installable: false,
+}
+
+// Thread HAL service which uses a simulation RCP (i.e. ot-rcp),
+// typically used in emulator devices.
+override_apex {
+ name: "com.android.hardware.threadnetwork-simulation-rcp",
+ base: "com.android.hardware.threadnetwork",
+ prebuilts: [
+ "threadnetwork-service-simulation-rcp.rc",
+ "threadnetwork-default.xml",
+ "android.hardware.thread_network.prebuilt.xml",
+ ],
+}
diff --git a/threadnetwork/aidl/default/threadnetwork-service-simulation-rcp.rc b/threadnetwork/aidl/default/threadnetwork-service-simulation-rcp.rc
new file mode 100644
index 0000000..3b889eb
--- /dev/null
+++ b/threadnetwork/aidl/default/threadnetwork-service-simulation-rcp.rc
@@ -0,0 +1,3 @@
+service vendor.threadnetwork_hal /apex/com.android.hardware.threadnetwork/bin/hw/android.hardware.threadnetwork-service spinel+hdlc+forkpty:///apex/com.android.hardware.threadnetwork/bin/ot-rcp?forkpty-arg=1
+ class hal
+ user thread_network