Control audio HAL services in start/stop

Some system services (e.g. SoundTriggerMiddleware) assume that
whenever they start, the audio HAL is in its default (reset) state.
init.rc scripts tie the lifetimes of the audio HAL and system
processes, but when using stop/start this is not the case, and this
may cause spurious crashes in this case.

stop/start is apparently being relied on in some test infrastructure,
so this change is needed to avoid causing problems for those systems
or false detection of problems, which are not actually present in
production.

Bug: 154029444
Test: Manually verify that the audio HAL is stopped on
      'adb shell stop', restarted on 'adb shell start' and that the
      system boots correctly after.
Change-Id: I39878b978b47a169c4fe446c43d7347809d15e06
Merged-In: I39878b978b47a169c4fe446c43d7347809d15e06
This commit is contained in:
Ytai Ben-Tsvi 2020-04-22 10:42:44 -07:00
parent efe9defc65
commit 7d6af00aca

View file

@ -36,7 +36,12 @@ static void ControlService(bool start, const std::string& service) {
}
static void ControlDefaultServices(bool start) {
std::vector<std::string> services = {"netd", "surfaceflinger", "zygote"};
std::vector<std::string> services = {
"netd",
"surfaceflinger",
"audioserver",
"zygote",
};
// Only start zygote_secondary if not single arch.
std::string zygote_configuration = GetProperty("ro.zygote", "");
@ -86,4 +91,4 @@ extern "C" int start_main(int argc, char** argv) {
extern "C" int stop_main(int argc, char** argv) {
return StartStop(argc, argv, false);
}
}