Merge "Introduce a property for multiclient HAL" into main
diff --git a/aoc/aoc.mk b/aoc/aoc.mk
index 2eadb08..136bb42 100644
--- a/aoc/aoc.mk
+++ b/aoc/aoc.mk
@@ -1,7 +1,8 @@
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/aoc/sepolicy
PRODUCT_PACKAGES += dump_aoc \
- aocd
+ aocd \
+ aocxd
ifeq (,$(filter aosp_%,$(TARGET_PRODUCT)))
# IAudioMetricExt HIDL
@@ -23,4 +24,5 @@
aocdump \
aocutil \
aoc_audio_cfg \
- vp_util
+ vp_util \
+ aocx_tool
diff --git a/aoc/sepolicy/aocxd.te b/aoc/sepolicy/aocxd.te
new file mode 100644
index 0000000..bd9396f
--- /dev/null
+++ b/aoc/sepolicy/aocxd.te
@@ -0,0 +1,25 @@
+# aocxd server domain
+type aocxd, domain;
+type aocxd_exec, vendor_file_type, exec_type, file_type;
+init_daemon_domain(aocxd)
+
+# sysfs operations
+allow aocxd sysfs_aoc:dir search;
+
+# dev operations
+allow aocxd aoc_device:chr_file rw_file_perms;
+
+# allow inotify to watch for additions/removals from /dev
+allow aocxd device:dir r_dir_perms;
+
+# set properties
+set_prop(aocxd, vendor_aoc_prop);
+
+# allow binder access
+vndbinder_use(aocxd);
+
+# allow managing wakelocks
+wakelock_use(aocxd);
+
+# add aocx service to the domain
+add_service(aocxd, aocx);
diff --git a/aoc/sepolicy/file_contexts b/aoc/sepolicy/file_contexts
index 58edf2f..617b7b9 100644
--- a/aoc/sepolicy/file_contexts
+++ b/aoc/sepolicy/file_contexts
@@ -27,11 +27,13 @@
/dev/acd-audio_ap_offload_rx u:object_r:aoc_device:s0
/dev/acd-audio_ap_offload_tx u:object_r:aoc_device:s0
/dev/acd-mel_processor u:object_r:aoc_device:s0
+/dev/acd-aocx_control u:object_r:aoc_device:s0
# AoC vendor binaries
/vendor/bin/aocd u:object_r:aocd_exec:s0
/vendor/bin/aocdump u:object_r:aocdump_exec:s0
/vendor/bin/dump/dump_aoc u:object_r:dump_aoc_exec:s0
+/vendor/bin/aocxd u:object_r:aocxd_exec:s0
# AoC audio files
/vendor/etc/aoc(/.*)? u:object_r:aoc_audio_file:s0
diff --git a/aoc/sepolicy/vndservice.te b/aoc/sepolicy/vndservice.te
new file mode 100644
index 0000000..01c2436
--- /dev/null
+++ b/aoc/sepolicy/vndservice.te
@@ -0,0 +1 @@
+type aocx, vndservice_manager_type;
diff --git a/aoc/sepolicy/vndservice_contexts b/aoc/sepolicy/vndservice_contexts
new file mode 100644
index 0000000..de31e51
--- /dev/null
+++ b/aoc/sepolicy/vndservice_contexts
@@ -0,0 +1 @@
+aocx.IAocx u:object_r:aocx:s0
diff --git a/audio/sepolicy/aidl/service.te b/audio/sepolicy/aidl/service.te
index cbdc404..d931f16 100644
--- a/audio/sepolicy/aidl/service.te
+++ b/audio/sepolicy/aidl/service.te
@@ -1,3 +1,3 @@
# Audio
type hal_audio_ext_service, hal_service_type, service_manager_type;
-type hal_audio_parameter_parser_service, service_manager_type;
+type hal_audio_parameter_parser_service, service_manager_type;
\ No newline at end of file
diff --git a/audio/sepolicy/aidl/service_contexts b/audio/sepolicy/aidl/service_contexts
index c2b7716..7a7d61d 100644
--- a/audio/sepolicy/aidl/service_contexts
+++ b/audio/sepolicy/aidl/service_contexts
@@ -1,4 +1,3 @@
# Audio
vendor.google.whitechapel.audio.extension.IAudioExtension/default u:object_r:hal_audio_ext_service:s0
-android.media.audio.IHalAdapterVendorExtension/default u:object_r:hal_audio_parameter_parser_service:s0
-
+android.media.audio.IHalAdapterVendorExtension/default u:object_r:hal_audio_parameter_parser_service:s0
\ No newline at end of file
diff --git a/audio/sepolicy/common/hal_audio_default.te b/audio/sepolicy/common/hal_audio_default.te
index c69e339..bfe72b1 100644
--- a/audio/sepolicy/common/hal_audio_default.te
+++ b/audio/sepolicy/common/hal_audio_default.te
@@ -34,3 +34,7 @@
')
wakelock_use(hal_audio_default);
+
+vndbinder_use(hal_audio_default);
+allow hal_audio_default aocx:service_manager find;
+binder_call(hal_audio_default, aocxd);
diff --git a/battery_mitigation/Android.bp b/battery_mitigation/Android.bp
deleted file mode 100644
index c919de5..0000000
--- a/battery_mitigation/Android.bp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-soong_namespace {
- imports: [
- "hardware/google/pixel",
- ],
-}
-
-package {
- default_applicable_licenses: ["Android-Apache-2.0"],
-}
-
-cc_binary {
- vendor: true,
- name: "battery_mitigation",
- relative_install_path: "hw",
- proprietary: true,
- init_rc: ["battery_mitigation.rc"],
- shared_libs: [
- "libpixelmitigation",
- "libbase",
- "libbinder_ndk",
- "libcutils",
- "libhardware",
- "liblog",
- "libutils",
- "android.hardware.thermal@2.0",
- "android.hardware.thermal-V1-ndk"
- ],
- srcs: [
- "battery_mitigation.cpp",
- ],
- cflags: [
- "-Wall",
- "-Werror",
- ],
-}
diff --git a/battery_mitigation/battery_mitigation.cpp b/battery_mitigation/battery_mitigation.cpp
deleted file mode 100644
index a4e28b9..0000000
--- a/battery_mitigation/battery_mitigation.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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 "battery-mitigation"
-
-#include <android/binder_process.h>
-#include <battery_mitigation/BatteryMitigation.h>
-#include <battery_mitigation/BatteryMitigationService.h>
-#include <sys/resource.h>
-#include <system/thread_defs.h>
-
-#define COUNT_LIMIT 10
-
-using android::hardware::google::pixel::BatteryMitigation;
-using android::hardware::google::pixel::BatteryMitigationService;
-using android::hardware::google::pixel::MitigationConfig;
-
-android::sp<BatteryMitigation> bmSp;
-android::sp<BatteryMitigationService> batteryMitigationService;
-
-const struct MitigationConfig::Config cfg = {
- .SystemPath = {
- "/dev/thermal/tz-by-name/batoilo/temp",
- "/dev/thermal/tz-by-name/smpl_gm/temp",
- "/dev/thermal/tz-by-name/soc/temp",
- "/dev/thermal/tz-by-name/vdroop1/temp",
- "/dev/thermal/tz-by-name/vdroop2/temp",
- "/dev/thermal/tz-by-name/ocp_gpu/temp",
- "/dev/thermal/tz-by-name/ocp_tpu/temp",
- "/dev/thermal/tz-by-name/soft_ocp_cpu2/temp",
- "/dev/thermal/tz-by-name/soft_ocp_cpu1/temp",
- "/dev/thermal/tz-by-name/battery/temp",
- "/dev/thermal/tz-by-name/battery_cycle/temp",
- "/sys/bus/iio/devices/iio:device0/lpf_power",
- "/sys/bus/iio/devices/iio:device1/lpf_power",
- "/dev/thermal/cdev-by-name/thermal-cpufreq-2/cur_state",
- "/dev/thermal/cdev-by-name/thermal-cpufreq-1/cur_state",
- "/dev/thermal/cdev-by-name/thermal-gpufreq-0/cur_state",
- "/dev/thermal/cdev-by-name/tpu_cooling/cur_state",
- "/dev/thermal/cdev-by-name/CAM/cur_state",
- "/dev/thermal/cdev-by-name/DISP/cur_state",
- "/dev/thermal/cdev-by-name/gxp-cooling/cur_state",
- "/sys/class/power_supply/battery/voltage_now",
- "/sys/class/power_supply/battery/current_now",
- },
- .FilteredZones = {
- "batoilo",
- "vdroop1",
- "vdroop2",
- "smpl_gm",
- },
- .SystemName = {
- "batoilo", "smpl_gm", "soc", "vdroop1", "vdroop2", "ocp_gpu",
- "ocp_tpu", "soft_ocp_cpu2", "soft_ocp_cpu1", "battery", "battery_cycle",
- "main", "sub", "CPU2", "CPU1", "GPU", "TPU", "CAM", "DISP", "NPU",
- "voltage_now", "current_now",
- },
- .LogFilePath = "/data/vendor/mitigation/thismeal.txt",
- .TimestampFormat = "%Y-%m-%d %H:%M:%S",
-};
-
-const struct MitigationConfig::EventThreadConfig eventThreadCfg = {
- .BrownoutStatsEnablePath = "/sys/devices/virtual/pmic/mitigation/br_stats/enable_br_stats",
- .NumericSysfsStatPaths = {
- {"cpu0_freq", "/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq"},
- {"cpu1_freq", "/sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq"},
- {"cpu2_freq", "/sys/devices/system/cpu/cpu2/cpufreq/scaling_cur_freq"},
- {"battery_temp", "/dev/thermal/tz-by-name/battery/temp"},
- {"battery_cycle", "/dev/thermal/tz-by-name/battery_cycle/temp"},
- {"voltage_now", "/sys/class/power_supply/battery/voltage_now"},
- {"current_now", "/sys/class/power_supply/battery/current_now"},
- },
- .TriggeredIdxPath = "/sys/devices/virtual/pmic/mitigation/br_stats/triggered_idx",
- .triggeredStatePath[android::hardware::google::pixel::UVLO1] =
- "/sys/devices/virtual/pmic/mitigation/triggered_state/uvlo1_triggered",
- .triggeredStatePath[android::hardware::google::pixel::UVLO2] =
- "/sys/devices/virtual/pmic/mitigation/triggered_state/uvlo2_triggered",
- .triggeredStatePath[android::hardware::google::pixel::OILO1] =
- "/sys/devices/virtual/pmic/mitigation/triggered_state/oilo1_triggered",
- .triggeredStatePath[android::hardware::google::pixel::OILO2] =
- "/sys/devices/virtual/pmic/mitigation/triggered_state/oilo2_triggered",
- .triggeredStatePath[android::hardware::google::pixel::SMPL] =
- "/sys/devices/virtual/pmic/mitigation/triggered_state/smpl_triggered",
- .BrownoutStatsPath = "/sys/devices/virtual/pmic/mitigation/br_stats/stats",
- .StoringPath = "/data/vendor/mitigation/thismeal.bin",
- .ParsedThismealPath = "/data/vendor/mitigation/thismeal.txt",
- .ParsedLastmealPath = "/data/vendor/mitigation/lastmeal.txt",
- .ParsedLastmealCSVPath = "/data/vendor/mitigation/lastmeal.csv",
- .FvpStatsPath = "/sys/devices/platform/acpm_stats/fvp_stats",
- .PmicCommon = {
- /* Main Pmic */
- {
- .OdpmDir = "/sys/bus/iio/devices/iio:device0",
- .OdpmEnabledRailsPath = "/sys/bus/iio/devices/iio:device0/enabled_rails",
- .PmicNamePath = "/sys/bus/iio/devices/iio:device0/name",
- },
- /* Sub Pmic */
- {
- .OdpmDir = "/sys/bus/iio/devices/iio:device1",
- .OdpmEnabledRailsPath = "/sys/bus/iio/devices/iio:device1/enabled_rails",
- .PmicNamePath = "/sys/bus/iio/devices/iio:device1/name",
- },
- },
- .PlatformSpecific = {
- .NumericSysfsStatPaths = {
- {
- .name = "battery_soc",
- .paths = {
- "/sys/class/power_supply/max77759fg/capacity",
- "/sys/class/power_supply/max77779fg/capacity",
- },
- },
- {
- .name = "gpu_freq",
- .paths = {
- "/sys/devices/platform/1c500000.mali/cur_freq",
- "/sys/devices/platform/28000000.mali/cur_freq",
- "/sys/devices/platform/1f000000.mali/cur_freq",
- },
- },
-
- },
- },
-};
-
-const char kReadyFilePath[] = "/sys/devices/virtual/pmic/mitigation/instruction/ready";
-const char kReadyProperty[] = "vendor.brownout.mitigation.ready";
-const char kLastMealPath[] = "/data/vendor/mitigation/lastmeal.txt";
-const char kBRRequestedProperty[] = "vendor.brownout_reason";
-const char kLastMealProperty[] = "vendor.brownout.br.feasible";
-const std::regex kTimestampRegex("^\\S+\\s[0-9]+:[0-9]+:[0-9]+\\S+$");
-
-int main(int argc, char **argv) {
- batteryMitigationService = new BatteryMitigationService(eventThreadCfg);
- if (!batteryMitigationService) {
- return 0;
- }
- bool brownoutStatsBinarySupported = batteryMitigationService->isBrownoutStatsBinarySupported();
- if (argc == 2) {
- if(strcmp(argv[1], "-d") == 0 &&
- brownoutStatsBinarySupported) {
- /* Create thismeal.txt from thismeal.bin */
- batteryMitigationService->genParsedMeal(eventThreadCfg.ParsedThismealPath);
- }
- return 0;
- }
-
- setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_AUDIO);
- auto batteryMitigationStartTime = std::chrono::system_clock::now();
- ABinderProcess_setThreadPoolMaxThreadCount(1);
- ABinderProcess_startThreadPool();
-
- bool mitigationLogTimeValid;
- std::string reason = android::base::GetProperty(kBRRequestedProperty, "");
- if (brownoutStatsBinarySupported) {
- /* Create lastmeal.txt if the dump time in thismeal.bin are valid */
- mitigationLogTimeValid = batteryMitigationService->isTimeValid(eventThreadCfg.StoringPath,
- batteryMitigationStartTime);
- if (!reason.empty() && mitigationLogTimeValid &&
- batteryMitigationService->genParsedMeal(eventThreadCfg.ParsedLastmealPath) &&
- batteryMitigationService->genLastmealCSV(eventThreadCfg.ParsedLastmealCSVPath)) {
- android::base::SetProperty(kLastMealProperty, "1");
- }
- } else{
- bmSp = new BatteryMitigation(cfg);
- if (!bmSp) {
- return 0;
- }
- mitigationLogTimeValid = bmSp->isMitigationLogTimeValid(batteryMitigationStartTime,
- cfg.LogFilePath,
- cfg.TimestampFormat,
- kTimestampRegex);
- if (!reason.empty() && mitigationLogTimeValid) {
- std::ifstream src(cfg.LogFilePath, std::ios::in);
- std::ofstream dst(kLastMealPath, std::ios::out);
- dst << src.rdbuf();
- android::base::SetProperty(kLastMealProperty, "1");
- }
- }
-
- bool isBatteryMitigationReady = false;
- std::string ready_str;
- int val = 0;
- for (int i = 0; i < COUNT_LIMIT; i++) {
- if (!android::base::ReadFileToString(kReadyFilePath, &ready_str)) {
- continue;
- }
- ready_str = android::base::Trim(ready_str);
- if (!android::base::ParseInt(ready_str, &val)) {
- continue;
- }
- if (val == 1) {
- isBatteryMitigationReady = true;
- break;
- }
- }
- if (isBatteryMitigationReady) {
- android::base::SetProperty(kReadyProperty, "1");
- }
- if (isBatteryMitigationReady && brownoutStatsBinarySupported) {
- /* Start BrownoutEventThread to poll brownout event from kernel */
- batteryMitigationService->startBrownoutEventThread();
- }
- while (true) {
- pause();
- }
- return 0;
-}
diff --git a/battery_mitigation/battery_mitigation.rc b/battery_mitigation/battery_mitigation.rc
deleted file mode 100644
index 2719541..0000000
--- a/battery_mitigation/battery_mitigation.rc
+++ /dev/null
@@ -1,97 +0,0 @@
-on property:vendor.all.modules.ready=1
- mkdir /data/vendor/mitigation 0755 system system
- chown system system /data/vendor/mitigation
- chown system system /sys/devices/virtual/pmic/mitigation/br_stats/enable_br_stats
- start vendor.battery_mitigation
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,uvlo,pmic,if && property:sys.boot.reason=reboot,uvlo,pmic,if
- setprop vendor.brownout_reason "uvlo,pmic,if"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,pmic,if && property:sys.boot.reason=reboot,ocp,pmic,if
- setprop vendor.brownout_reason "ocp,pmic,if"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,uvlo,pmic,main && property:sys.boot.reason=reboot,uvlo,pmic,main
- setprop vendor.brownout_reason "uvlo,pmic,main"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,uvlo,pmic,sub && property:sys.boot.reason=reboot,uvlo,pmic,sub
- setprop vendor.brownout_reason "uvlo,pmic,sub"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK1M && property:sys.boot.reason=reboot,ocp,buck1m
- setprop vendor.brownout_reason "ocp,buck1m"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK2M && property:sys.boot.reason=reboot,ocp,buck2m
- setprop vendor.brownout_reason "ocp,buck2m"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK3M && property:sys.boot.reason=reboot,ocp,buck3m
- setprop vendor.brownout_reason "ocp,buck3m"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK4M && property:sys.boot.reason=reboot,ocp,buck4m
- setprop vendor.brownout_reason "ocp,buck4m"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK5M && property:sys.boot.reason=reboot,ocp,buck5m
- setprop vendor.brownout_reason "ocp,buck5m"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK6M && property:sys.boot.reason=reboot,ocp,buck6m
- setprop vendor.brownout_reason "ocp,buck6m"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK7M && property:sys.boot.reason=reboot,ocp,buck7m
- setprop vendor.brownout_reason "ocp,buck7m"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK8M && property:sys.boot.reason=reboot,ocp,buck8m
- setprop vendor.brownout_reason "ocp,buck8m"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK9M && property:sys.boot.reason=reboot,ocp,buck9m
- setprop vendor.brownout_reason "ocp,buck9m"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK10M && property:sys.boot.reason=reboot,ocp,buck10m
- setprop vendor.brownout_reason "ocp,buck10m"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK1S && property:sys.boot.reason=reboot,ocp,buck1s
- setprop vendor.brownout_reason "ocp,buck1s"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK2S && property:sys.boot.reason=reboot,ocp,buck2s
- setprop vendor.brownout_reason "ocp,buck2s"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK3S && property:sys.boot.reason=reboot,ocp,buck3s
- setprop vendor.brownout_reason "ocp,buck3s"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK4S && property:sys.boot.reason=reboot,ocp,buck4s
- setprop vendor.brownout_reason "ocp,buck4s"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK5S && property:sys.boot.reason=reboot,ocp,buck5s
- setprop vendor.brownout_reason "ocp,buck5s"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK6S && property:sys.boot.reason=reboot,ocp,buck6s
- setprop vendor.brownout_reason "ocp,buck6s"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK7S && property:sys.boot.reason=reboot,ocp,buck7s
- setprop vendor.brownout_reason "ocp,buck7s"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK8S && property:sys.boot.reason=reboot,ocp,buck8s
- setprop vendor.brownout_reason "ocp,buck8s"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK9S && property:sys.boot.reason=reboot,ocp,buck9s
- setprop vendor.brownout_reason "ocp,buck9s"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCK10S && property:sys.boot.reason=reboot,ocp,buck10s
- setprop vendor.brownout_reason "ocp,buck10s"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCKDS && property:sys.boot.reason=reboot,ocp,buckds
- setprop vendor.brownout_reason "ocp,buckds"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCKAS && property:sys.boot.reason=reboot,ocp,buckas
- setprop vendor.brownout_reason "ocp,buckas"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCKCS && property:sys.boot.reason=reboot,ocp,buckcs
- setprop vendor.brownout_reason "ocp,buckcs"
-
-on property:vendor.all.modules.ready=1 && property:ro.boot.bootreason=reboot,ocp,BUCKBS && property:sys.boot.reason=reboot,ocp,buckbs
- setprop vendor.brownout_reason "ocp,buckbs"
-
-on property:vendor.brownout.br.feasible=1
- chown system system data/vendor/mitigation/lastmeal.txt
-
-service vendor.battery_mitigation /vendor/bin/hw/battery_mitigation
- user system
- group system
- capabilities WAKE_ALARM BLOCK_SUSPEND
diff --git a/battery_mitigation/bcl-aidl.mk b/battery_mitigation/bcl-aidl.mk
deleted file mode 100644
index 83b4749..0000000
--- a/battery_mitigation/bcl-aidl.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-ifeq ($(RELEASE_PIXEL_AIDL_BATTERY_MITIGATION_HAL), true)
-
-ifeq (,$(filter factory_%,$(TARGET_PRODUCT)))
-PRODUCT_PACKAGES += battery_mitigation
-endif
-ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
-ifeq (,$(filter factory_%,$(TARGET_PRODUCT)))
-PRODUCT_PACKAGES += BrownoutDetection
-endif
-endif
-
-PRODUCT_SOONG_NAMESPACES += device/google/gs-common/battery_mitigation
-endif
-
-BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/battery_mitigation/sepolicy/vendor
-SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += device/google/gs-common/battery_mitigation/sepolicy/system_ext/private
-SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += device/google/gs-common/battery_mitigation/sepolicy/system_ext/public
diff --git a/battery_mitigation/bcl.mk b/battery_mitigation/bcl.mk
index 13e5788..5bf1a25 100644
--- a/battery_mitigation/bcl.mk
+++ b/battery_mitigation/bcl.mk
@@ -7,7 +7,17 @@
endif
endif
+ifeq ($(RELEASE_PIXEL_AIDL_BATTERY_MITIGATION_HAL), true)
+PRODUCT_PROPERTY_OVERRIDES += \
+ vendor.battery_mitigation.aidl.enable=true
+endif
+
+PRODUCT_SOONG_NAMESPACES += device/google/gs-common/battery_mitigation \
+ vendor/google/battery_mitigation
+PRODUCT_PACKAGES += vendor.google.battery_mitigation-default
+PRODUCT_PACKAGES += vendor.google.battery_mitigation.service_static
+DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/battery_mitigation/compatibility_matrix.xml
+
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/battery_mitigation/sepolicy/vendor
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += device/google/gs-common/battery_mitigation/sepolicy/system_ext/private
SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += device/google/gs-common/battery_mitigation/sepolicy/system_ext/public
-PRODUCT_SOONG_NAMESPACES += device/google/gs-common/battery_mitigation
diff --git a/battery_mitigation/compatibility_matrix.xml b/battery_mitigation/compatibility_matrix.xml
new file mode 100644
index 0000000..7e3d88e
--- /dev/null
+++ b/battery_mitigation/compatibility_matrix.xml
@@ -0,0 +1,10 @@
+<compatibility-matrix version="1.0" type="framework">
+ <hal format="aidl" optional="true">
+ <name>vendor.google.battery_mitigation</name>
+ <version>1</version>
+ <interface>
+ <name>IBatteryMitigation</name>
+ <instance>default</instance>
+ </interface>
+ </hal>
+</compatibility-matrix>
diff --git a/battery_mitigation/sepolicy/vendor/battery_mitigation.te b/battery_mitigation/sepolicy/vendor/battery_mitigation.te
index ee0780a..7552bd2 100644
--- a/battery_mitigation/sepolicy/vendor/battery_mitigation.te
+++ b/battery_mitigation/sepolicy/vendor/battery_mitigation.te
@@ -29,3 +29,5 @@
binder_use(battery_mitigation)
# Allow battery_mitigation to listen brownout event by epoll_wait
wakelock_use(battery_mitigation)
+# Allow battery_mitigation to run aidl service
+add_service(battery_mitigation, hal_battery_mitigation_service)
diff --git a/battery_mitigation/sepolicy/vendor/service.te b/battery_mitigation/sepolicy/vendor/service.te
new file mode 100644
index 0000000..3ffe254
--- /dev/null
+++ b/battery_mitigation/sepolicy/vendor/service.te
@@ -0,0 +1 @@
+type hal_battery_mitigation_service, protected_service, hal_service_type, service_manager_type;
diff --git a/battery_mitigation/sepolicy/vendor/service_contexts b/battery_mitigation/sepolicy/vendor/service_contexts
new file mode 100644
index 0000000..472259e
--- /dev/null
+++ b/battery_mitigation/sepolicy/vendor/service_contexts
@@ -0,0 +1 @@
+vendor.google.battery_mitigation.IBatteryMitigation/default u:object_r:hal_battery_mitigation_service:s0
diff --git a/bcmbt/dump/dump_bcmbt.cpp b/bcmbt/dump/dump_bcmbt.cpp
index 0135198..8e653ed 100644
--- a/bcmbt/dump/dump_bcmbt.cpp
+++ b/bcmbt/dump/dump_bcmbt.cpp
@@ -21,6 +21,7 @@
#define BCMBT_SNOOP_LOG_DIRECTORY "/data/vendor/bluetooth"
#define BCMBT_FW_LOG_DIRECTORY "/data/vendor/ssrdump/coredump"
#define BCMBT_SNOOP_LOG_PREFIX "btsnoop_hci_vnd"
+#define BCMBT_HAL_DUMP_LOG_PREFIX "coredump_bt_"
#define BCMBT_FW_DUMP_LOG_PREFIX "coredump_bt_socdump_"
#define BCMBT_CHRE_DUMP_LOG_PREFIX "coredump_bt_chredump_"
#define BCMBT_ACTIVITY_LOG_PREFIX "bt_activity_"
@@ -32,9 +33,10 @@
return 0;
}
- dumpLogs(BCMBT_SNOOP_LOG_DIRECTORY, outputDir.c_str(), 2, BCMBT_SNOOP_LOG_PREFIX);
+ dumpLogs(BCMBT_SNOOP_LOG_DIRECTORY, outputDir.c_str(), 10, BCMBT_SNOOP_LOG_PREFIX);
+ dumpLogs(BCMBT_FW_LOG_DIRECTORY, outputDir.c_str(), 10, BCMBT_HAL_DUMP_LOG_PREFIX);
dumpLogs(BCMBT_FW_LOG_DIRECTORY, outputDir.c_str(), 10, BCMBT_FW_DUMP_LOG_PREFIX);
dumpLogs(BCMBT_FW_LOG_DIRECTORY, outputDir.c_str(), 10, BCMBT_CHRE_DUMP_LOG_PREFIX);
- dumpLogs(BCMBT_ACTIVITY_LOG_DIRECTORY, outputDir.c_str(), 10, BCMBT_ACTIVITY_LOG_PREFIX);
+ dumpLogs(BCMBT_ACTIVITY_LOG_DIRECTORY, outputDir.c_str(), 12, BCMBT_ACTIVITY_LOG_PREFIX);
return 0;
}
diff --git a/diagnosticstool/diagnosticstool.mk b/diagnosticstool/diagnosticstool.mk
deleted file mode 100644
index 67fbd88..0000000
--- a/diagnosticstool/diagnosticstool.mk
+++ /dev/null
@@ -1 +0,0 @@
-PRODUCT_PRIVATE_SEPOLICY_DIRS += device/google/gs-common/diagnosticstool/sepolicy
diff --git a/diagnosticstool/sepolicy/diagnosticstool_app.te b/diagnosticstool/sepolicy/diagnosticstool_app.te
deleted file mode 100644
index d1874e6..0000000
--- a/diagnosticstool/sepolicy/diagnosticstool_app.te
+++ /dev/null
@@ -1,4 +0,0 @@
-type diagnosticstool_app, domain;
-app_domain(diagnosticstool_app)
-
-allow diagnosticstool_app app_api_service:service_manager find;
diff --git a/diagnosticstool/sepolicy/seapp_contexts b/diagnosticstool/sepolicy/seapp_contexts
deleted file mode 100644
index 3c601cd..0000000
--- a/diagnosticstool/sepolicy/seapp_contexts
+++ /dev/null
@@ -1,2 +0,0 @@
-# Diagnostics Tool
-user=_app seinfo=platform name=com.google.android.apps.diagnosticstool domain=diagnosticstool_app isPrivApp=true levelFrom=user
diff --git a/touch/syna/Android.bp b/touch/syna/Android.bp
index 769c76b..46475d8 100644
--- a/touch/syna/Android.bp
+++ b/touch/syna/Android.bp
@@ -5,7 +5,8 @@
sh_binary {
name: "dump_syna.sh",
src: "dump_syna.sh",
- init_rc: ["init.touch.syna20.rc"],
+ init_rc: ["init.touch.syna.rc"],
vendor: true,
sub_dir: "dump",
}
+
diff --git a/touch/syna/init.touch.syna.rc b/touch/syna/init.touch.syna.rc
new file mode 100644
index 0000000..d52ed3b
--- /dev/null
+++ b/touch/syna/init.touch.syna.rc
@@ -0,0 +1,5 @@
+on property:sys.boot_completed=1
+ chown system system /sys/class/spi_master/spi19/spi19.0/synaptics_tcm.0/sysfs/get_raw_data
+ chown system system /sys/class/spi_master/spi19/spi19.0/synaptics_tcm.0/sysfs/force_active
+ chown system system /sys/class/spi_master/spi20/spi20.0/synaptics_tcm.0/sysfs/get_raw_data
+ chown system system /sys/class/spi_master/spi20/spi20.0/synaptics_tcm.0/sysfs/force_active
diff --git a/touch/syna/init.touch.syna20.rc b/touch/syna/init.touch.syna20.rc
deleted file mode 100644
index 7c83a6c..0000000
--- a/touch/syna/init.touch.syna20.rc
+++ /dev/null
@@ -1,3 +0,0 @@
-on property:vendor.device.modules.ready=1
- chown system system /sys/class/spi_master/spi20/spi20.0/synaptics_tcm.0/sysfs/get_raw_data
- chown system system /sys/class/spi_master/spi20/spi20.0/synaptics_tcm.0/sysfs/force_active
diff --git a/touch/syna/sepolicy/genfs_contexts b/touch/syna/sepolicy/genfs_contexts
index c34d93c..f2e675f 100644
--- a/touch/syna/sepolicy/genfs_contexts
+++ b/touch/syna/sepolicy/genfs_contexts
@@ -1,3 +1,3 @@
genfscon sysfs /devices/platform/10d10000.spi/spi_master/spi0/spi0.0/synaptics_tcm.0/sysfs u:object_r:sysfs_touch:s0
+genfscon sysfs /devices/platform/111c0000.spi/spi_master/spi19/spi19.0/synaptics_tcm.0/sysfs u:object_r:sysfs_touch:s0
genfscon sysfs /devices/platform/111d0000.spi/spi_master/spi20/spi20.0/synaptics_tcm.0/sysfs u:object_r:sysfs_touch:s0
-genfscon sysfs /devices/platform/111d0000.spi/spi_master/spi20/spi20.0/synaptics_tcm.0/wakeup u:object_r:sysfs_wakeup:s0
diff --git a/touch/syna/syna0.mk b/touch/syna/syna0.mk
index fe2b0c5..9e10d2a 100644
--- a/touch/syna/syna0.mk
+++ b/touch/syna/syna0.mk
@@ -1,4 +1,4 @@
-PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.sys=/sys/devices/platform/10d10000.spi/spi_master/spi0/spi0.0/synaptics_tcm.0/sysfs
+PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.sys=/sys/class/spi_master/spi0/spi0.0/synaptics_tcm.0/sysfs
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/syna/sepolicy
diff --git a/touch/syna/syna19.mk b/touch/syna/syna19.mk
new file mode 100644
index 0000000..45b053b
--- /dev/null
+++ b/touch/syna/syna19.mk
@@ -0,0 +1,5 @@
+PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.sys=/sys/class/spi_master/spi19/spi19.0/synaptics_tcm.0/sysfs
+
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/syna/sepolicy
+
+PRODUCT_PACKAGES += dump_syna.sh
diff --git a/touch/syna/syna20.mk b/touch/syna/syna20.mk
index 600f1ff..f8c0251 100644
--- a/touch/syna/syna20.mk
+++ b/touch/syna/syna20.mk
@@ -1,4 +1,4 @@
-PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.sys=/sys/devices/platform/111d0000.spi/spi_master/spi20/spi20.0/synaptics_tcm.0/sysfs
+PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.sys=/sys/class/spi_master/spi20/spi20.0/synaptics_tcm.0/sysfs
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/syna/sepolicy