Merge "audio VTS: Consider only attached devices for stream tests"
diff --git a/health/aidl/README.md b/health/aidl/README.md
index 3ee5232..0d7c4c9 100644
--- a/health/aidl/README.md
+++ b/health/aidl/README.md
@@ -80,7 +80,9 @@
for your device, install it with
```mk
-PRODUCT_PACKAGES += android.hardware.health-service.example
+PRODUCT_PACKAGES += \
+ android.hardware.health-service.example \
+ android.hardware.health-service.example_recovery \
```
Then, delete any existing `service` with `class charger` in your device-specific
@@ -156,6 +158,16 @@
for charger (`ro.charger.no_ui=true`), skip the invocation of
`ChargerModeMain()` in `main()`.
+### Build system changes
+
+Install both the platform and recovery variant of the service. For example:
+
+```mk
+PRODUCT_PACKAGES += \
+ android.hardware.health-service.cuttlefish \
+ android.hardware.health-service.cuttlefish_recovery \
+```
+
### SELinux rules
Add device specific permissions to the domain where the health HAL
@@ -306,5 +318,3 @@
type hal_health_tuna, charger_type, domain;
hal_server_domain(hal_health_default, hal_health)
```
-
-[comment: TODO(b/170338625): explain recovery]: #
diff --git a/health/aidl/default/Android.bp b/health/aidl/default/Android.bp
index a13c677..8aa7638 100644
--- a/health/aidl/default/Android.bp
+++ b/health/aidl/default/Android.bp
@@ -23,8 +23,6 @@
cc_defaults {
name: "libhealth_aidl_common_defaults",
- recovery_available: true,
- vendor: true,
shared_libs: [
"libbase",
"libbinder_ndk",
@@ -100,6 +98,8 @@
"libhealth_aidl_common_defaults",
"libhealth_aidl_charger_defaults",
],
+ vendor: true,
+ recovery_available: true,
export_include_dirs: ["include"],
export_static_lib_headers: [
"libbatterymonitor",
@@ -122,10 +122,9 @@
// AIDL version of android.hardware.health@2.1-service.
// Default binder service of the health HAL.
-cc_binary {
- name: "android.hardware.health-service.example",
+cc_defaults {
+ name: "android.hardware.health-service.example-defaults",
relative_install_path: "hw",
- init_rc: ["android.hardware.health-service.example.rc"],
vintf_fragments: ["android.hardware.health-service.example.xml"],
defaults: [
"libhealth_aidl_common_defaults",
@@ -135,7 +134,20 @@
"libhealth_aidl_impl",
],
srcs: ["main.cpp"],
- overrides: [
- "charger",
- ],
+}
+
+cc_binary {
+ name: "android.hardware.health-service.example",
+ vendor: true,
+ defaults: ["android.hardware.health-service.example-defaults"],
+ init_rc: ["android.hardware.health-service.example.rc"],
+ overrides: ["charger"],
+}
+
+cc_binary {
+ name: "android.hardware.health-service.example_recovery",
+ recovery: true,
+ defaults: ["android.hardware.health-service.example-defaults"],
+ init_rc: ["android.hardware.health-service.example_recovery.rc"],
+ overrides: ["charger.recovery"],
}
diff --git a/health/aidl/default/android.hardware.health-service.example_recovery.rc b/health/aidl/default/android.hardware.health-service.example_recovery.rc
new file mode 100644
index 0000000..0001170
--- /dev/null
+++ b/health/aidl/default/android.hardware.health-service.example_recovery.rc
@@ -0,0 +1,7 @@
+service vendor.health-default /system/bin/hw/android.hardware.health-service.example_recovery
+ class hal
+ seclabel u:r:hal_health_default:s0
+ user system
+ group system
+ capabilities WAKE_ALARM BLOCK_SUSPEND
+ file /dev/kmsg w
diff --git a/health/aidl/default/main.cpp b/health/aidl/default/main.cpp
index 76c6ba0..03b2ecb 100644
--- a/health/aidl/default/main.cpp
+++ b/health/aidl/default/main.cpp
@@ -39,14 +39,16 @@
static constexpr std::string_view gChargerArg{"--charger"};
int main(int argc, char** argv) {
+#ifdef __ANDROID_RECOVERY__
+ android::base::InitLogging(argv, android::base::KernelLogger);
+#endif
+
// make a default health service
auto config = std::make_unique<healthd_config>();
::android::hardware::health::InitHealthdConfig(config.get());
auto binder = ndk::SharedRefBase::make<Health>(gInstanceName, std::move(config));
if (argc >= 2 && argv[1] == gChargerArg) {
- android::base::InitLogging(argv, &android::base::KernelLogger);
-
#if !CHARGER_FORCE_NO_UI
// If charger shouldn't have UI for your device, simply drop the line below
// for your service implementation. This corresponds to
diff --git a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/SimSlotStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/SimSlotStatus.aidl
index 60eabc7..bc7f63c 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/SimSlotStatus.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.config/current/android/hardware/radio/config/SimSlotStatus.aidl
@@ -34,7 +34,6 @@
package android.hardware.radio.config;
@VintfStability
parcelable SimSlotStatus {
- boolean cardActive;
int cardState;
String atr;
String eid;
diff --git a/radio/aidl/android/hardware/radio/config/SimSlotStatus.aidl b/radio/aidl/android/hardware/radio/config/SimSlotStatus.aidl
index 4ab955a..a1c3c27 100644
--- a/radio/aidl/android/hardware/radio/config/SimSlotStatus.aidl
+++ b/radio/aidl/android/hardware/radio/config/SimSlotStatus.aidl
@@ -20,7 +20,6 @@
@VintfStability
parcelable SimSlotStatus {
- boolean cardActive;
/**
* Card state in the physical slot. Values are CardStatus.[STATE_ABSENT, STATE_PRESENT,
* STATE_ERROR, STATE_RESTRICTED].