summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-12-07 00:17:32 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-12-07 00:17:32 +0000
commit75bc41b815086256d5b8578ab074f4da0fa2d847 (patch)
tree694a50151081ef3b9dd289cfd41241ae47b92261
parent6b404602132d5dc758c676fec1593ad807318127 (diff)
parent9ced8f50cd4ea79e5ef126af4e88a5f2f1dc547e (diff)
downloadpixel-75bc41b815086256d5b8578ab074f4da0fa2d847.tar.gz
Snap for 11186783 from 9ced8f50cd4ea79e5ef126af4e88a5f2f1dc547e to 24Q1-release
Change-Id: I67863568ee1701cafc039642f47d61aa1a4571d1
-rw-r--r--thermal/Android.bp35
-rw-r--r--thermal/virtualtemp_estimator/virtualtemp_estimator_test.cpp411
-rw-r--r--vibrator/cs40l26/apex/Android.bp63
-rw-r--r--vibrator/cs40l26/apex/apex_manifest.json4
-rw-r--r--vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.avbpubkeybin1032 -> 0 bytes
-rw-r--r--vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.pem52
-rw-r--r--vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.pk8bin2373 -> 0 bytes
-rw-r--r--vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.x509.pem34
-rw-r--r--vibrator/cs40l26/apex/file_contexts3
-rw-r--r--vibrator/cs40l26/device.mk4
-rw-r--r--vibrator/drv2624/apex/Android.bp59
-rw-r--r--vibrator/drv2624/apex/apex_manifest.json4
-rw-r--r--vibrator/drv2624/apex/com.android.vibrator.drv2624.enable.rc29
-rw-r--r--vibrator/drv2624/apex/com.android.vibrator.drv2624.pem51
-rw-r--r--vibrator/drv2624/apex/com.android.vibrator.drv2624.pk8bin2374 -> 0 bytes
-rw-r--r--vibrator/drv2624/apex/com.android.vibrator.drv2624.pubkeybin1032 -> 0 bytes
-rw-r--r--vibrator/drv2624/apex/com.android.vibrator.drv2624.rc18
-rw-r--r--vibrator/drv2624/apex/com.android.vibrator.drv2624.x509.pem34
-rw-r--r--vibrator/drv2624/apex/com.android.vibrator.drv2624.xml7
-rw-r--r--vibrator/drv2624/apex/file_contexts2
-rw-r--r--vibrator/drv2624/apex/key.pem52
21 files changed, 446 insertions, 416 deletions
diff --git a/thermal/Android.bp b/thermal/Android.bp
index 51f98d66..a7ad5d87 100644
--- a/thermal/Android.bp
+++ b/thermal/Android.bp
@@ -121,3 +121,38 @@ sh_binary {
"pixel-thermal-symlinks.rc",
],
}
+
+
+cc_binary {
+ name: "virtualtemp_estimator_test",
+ srcs: [
+ "virtualtemp_estimator/virtualtemp_estimator.cpp",
+ "virtualtemp_estimator/virtualtemp_estimator_test.cpp"
+ ],
+ shared_libs: [
+ "libc",
+ "liblog",
+ "libcutils",
+ "libbinder",
+ "libhidlbase",
+ "libutils",
+ "libjsoncpp",],
+ vendor: true,
+ cflags: [
+ "-Wall",
+ "-Werror",
+ "-Wextra",
+ "-Wunused",
+ ],
+ tidy: true,
+ tidy_checks: [
+ "android-*",
+ "cert-*",
+ "clang-analyzer-security*",
+ ],
+ tidy_checks_as_errors: [
+ "android-*",
+ "clang-analyzer-security*",
+ "cert-*",
+ ],
+}
diff --git a/thermal/virtualtemp_estimator/virtualtemp_estimator_test.cpp b/thermal/virtualtemp_estimator/virtualtemp_estimator_test.cpp
new file mode 100644
index 00000000..73dacde0
--- /dev/null
+++ b/thermal/virtualtemp_estimator/virtualtemp_estimator_test.cpp
@@ -0,0 +1,411 @@
+// 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.
+
+/**
+ *@file virtualtemp_estimator_test.cc
+ * Test application to verify virtualtemp estimator
+ *
+ */
+// Test application to run and verify virtualtemp estimator interface unit tests
+
+#include "virtualtemp_estimator.h"
+
+#include <android-base/file.h>
+#include <android-base/logging.h>
+#include <android-base/parsedouble.h>
+#include <android-base/properties.h>
+#include <android-base/strings.h>
+#include <cutils/properties.h>
+#include <cutils/trace.h>
+#include <json/reader.h>
+#include <json/value.h>
+#include <json/writer.h>
+#include <log/log.h>
+#include <malloc.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+
+#include <climits>
+#include <fstream>
+#include <iostream>
+
+static char default_model[] = "/vendor/etc/vt_estimation_model.tflite";
+static char default_thermal_config[] = "/vendor/etc/thermal_info_config.json";
+constexpr int kmillion = 1000000;
+constexpr int klog_interval_usec = 10 * kmillion;
+
+static inline unsigned long get_elapsed_time_usec(struct timeval start, struct timeval end) {
+ unsigned long elapsed_time = (end.tv_sec - start.tv_sec) * kmillion;
+ elapsed_time += (end.tv_usec - start.tv_usec);
+
+ return elapsed_time;
+}
+
+static std::vector<std::string> get_input_combination(const char *thermal_config_path) {
+ std::vector<std::string> result;
+ std::string json_doc;
+ if (!android::base::ReadFileToString(thermal_config_path, &json_doc)) {
+ std::cout << "Failed to read JSON config from " << thermal_config_path;
+ return result;
+ }
+
+ Json::Value root;
+ Json::CharReaderBuilder reader_builder;
+ std::unique_ptr<Json::CharReader> reader(reader_builder.newCharReader());
+ std::string errorMessage;
+
+ if (!reader->parse(&*json_doc.begin(), &*json_doc.end(), &root, &errorMessage)) {
+ std::cout << "Failed to parse JSON config: " << errorMessage;
+ return result;
+ }
+
+ Json::Value sensors = root["Sensors"];
+ std::cout << "Sensors size: " << sensors.size() << std::endl;
+
+ for (Json::Value::ArrayIndex i = 0; i < sensors.size(); ++i) {
+ const std::string &name = sensors[i]["Name"].asString();
+ if (name == "VIRTUAL-SKIN-MODEL") {
+ Json::Value values = sensors[i]["Combination"];
+ if (values.size() == 0) {
+ return result;
+ }
+
+ std::cout << "Combination : [";
+ for (Json::Value::ArrayIndex j = 0; j < values.size(); ++j) {
+ result.push_back(values[j].asString());
+ std::cout << result.back() << ", ";
+ }
+ std::cout << "]" << std::endl;
+ }
+ }
+
+ return result;
+}
+
+static int run_random_input_inference(char *model_path, const char *thermal_config_path,
+ int min_inference_count, int inference_delay_sec) {
+ float output;
+ unsigned long prev_log_time = 0;
+ thermal::vtestimator::VtEstimatorStatus ret;
+ std::vector<std::string> input_combination = get_input_combination(thermal_config_path);
+ int input_size = input_combination.size();
+ thermal::vtestimator::VirtualTempEstimator vt_estimator_(input_size);
+
+ std::cout << "Initialize estimator\n";
+ ret = vt_estimator_.Initialize(model_path);
+ if (ret != thermal::vtestimator::kVtEstimatorOk) {
+ std::cout << "Failed to Initialize estimator (ret: " << ret << ")\n";
+ return -1;
+ }
+
+ struct timeval start_loop_time;
+ int inference_count = 0;
+ unsigned long max_inference_time = 0, min_inference_time = ULONG_MAX;
+ unsigned long sum_inference_time = 0;
+ float avg_inference_time = 0;
+ std::vector<unsigned long> inference_times;
+
+ gettimeofday(&start_loop_time, nullptr);
+ do {
+ struct timeval begin, end;
+ std::vector<float> thermistors;
+
+ // preparing random inputs with starting temperature between 20C to 40C
+ int r = 20 + std::rand() % 20;
+ for (int i = 0; i < input_size; ++i) {
+ thermistors.push_back(r + i);
+ }
+
+ gettimeofday(&begin, nullptr);
+ ret = vt_estimator_.Estimate(thermistors, &output);
+ gettimeofday(&end, nullptr);
+ if (ret != thermal::vtestimator::kVtEstimatorOk) {
+ std::cout << "Failed to run estimator (ret: " << ret << ")\n";
+ return -1;
+ }
+
+ unsigned long inference_time_usec = get_elapsed_time_usec(begin, end);
+
+ inference_count++;
+ max_inference_time = std::max(max_inference_time, inference_time_usec);
+ min_inference_time = std::min(min_inference_time, inference_time_usec);
+ sum_inference_time += inference_time_usec;
+ avg_inference_time = sum_inference_time / inference_count;
+ inference_times.push_back(inference_time_usec);
+
+ unsigned long elapsed_time = get_elapsed_time_usec(start_loop_time, end);
+ if (elapsed_time - prev_log_time >= klog_interval_usec) {
+ std::cout << "elapsed_time_sec: " << elapsed_time / kmillion
+ << " inference_count: " << inference_count
+ << " min_inference_time: " << min_inference_time
+ << " max_inference_time: " << max_inference_time
+ << " avg_inference_time: " << avg_inference_time << std::endl;
+ prev_log_time = elapsed_time;
+ }
+
+ if (inference_delay_sec)
+ sleep(inference_delay_sec);
+ } while (inference_count < min_inference_count);
+
+ std::cout << "\n\ntotal inference count: " << inference_count << std::endl;
+ std::cout << "total inference time: " << sum_inference_time << std::endl;
+ std::cout << "avg_inference_time: " << avg_inference_time << std::endl;
+ std::cout << "min_inference_time: " << min_inference_time << std::endl;
+ std::cout << "max_inference_time: " << max_inference_time << std::endl;
+
+ std::sort(inference_times.begin(), inference_times.end());
+ std::cout << "\n\n";
+ std::cout << "p50: " << inference_times[inference_count * 0.5] << std::endl;
+ std::cout << "p90: " << inference_times[inference_count * 0.9] << std::endl;
+
+ return 0;
+}
+
+static int run_single_inference(char *model_path, char *input) {
+ if (!input) {
+ std::cout << "input is nullptr" << std::endl;
+ return -1;
+ }
+
+ std::vector<float> thermistors;
+ char *ip = input;
+ char *saveptr;
+
+ std::cout << "Parsing thermistors from input string: ";
+ ip = strtok_r(ip, " ", &saveptr);
+ while (ip) {
+ float thermistor_value;
+
+ if (sscanf(ip, "%f", &thermistor_value) != 1) {
+ std::cout << "inputs parsing failed";
+ }
+
+ std::cout << thermistor_value << " ";
+ thermistors.push_back(thermistor_value);
+
+ ip = strtok_r(NULL, " ", &saveptr);
+ }
+ std::cout << std::endl;
+ std::cout << "thermistors.size(): " << thermistors.size() << std::endl;
+
+ float output;
+ thermal::vtestimator::VtEstimatorStatus ret;
+ thermal::vtestimator::VirtualTempEstimator vt_estimator_(thermistors.size());
+
+ std::cout << "Initialize estimator\n";
+ ret = vt_estimator_.Initialize(model_path);
+ if (ret != thermal::vtestimator::kVtEstimatorOk) {
+ std::cout << "Failed to Initialize estimator (ret: " << ret << ")\n";
+ return -1;
+ }
+
+ std::cout << "run estimator\n";
+ ret = vt_estimator_.Estimate(thermistors, &output);
+ if (ret != thermal::vtestimator::kVtEstimatorOk) {
+ std::cout << "Failed to run estimator (ret: " << ret << ")\n";
+ return -1;
+ }
+
+ std::cout << "output: " << output << std::endl;
+ return 0;
+}
+
+static int run_batch_process(const char *model_path, const char *thermal_config_path,
+ const char *input_file, const char *output_file) {
+ if (!input_file || !output_file) {
+ std::cout << "input and output files required for batch process\n";
+ return -1;
+ }
+
+ std::cout << "get_input_combination(): ";
+ std::vector<std::string> input_combination = get_input_combination(thermal_config_path);
+ if (input_combination.size() == 0) {
+ LOG(ERROR) << "Invalid input_combination";
+ return -1;
+ }
+
+ thermal::vtestimator::VtEstimatorStatus ret;
+ thermal::vtestimator::VirtualTempEstimator vt_estimator_(input_combination.size());
+
+ std::cout << "Initialize estimator\n";
+ ret = vt_estimator_.Initialize(model_path);
+ if (ret != thermal::vtestimator::kVtEstimatorOk) {
+ std::cout << "Failed to Initialize estimator (ret: " << ret << ")\n";
+ return -1;
+ }
+
+ std::string json_doc;
+ if (!android::base::ReadFileToString(input_file, &json_doc)) {
+ LOG(ERROR) << "Failed to read JSON config from " << input_file;
+ return -1;
+ }
+ Json::Value root;
+ Json::CharReaderBuilder reader_builder;
+ std::unique_ptr<Json::CharReader> reader(reader_builder.newCharReader());
+ std::string errorMessage;
+
+ if (!reader->parse(&*json_doc.begin(), &*json_doc.end(), &root, &errorMessage)) {
+ LOG(ERROR) << "Failed to parse JSON config: " << errorMessage;
+ return -1;
+ }
+
+ std::cout << "Number of testcases " << root.size() << std::endl;
+
+ for (auto const &testcase_name : root.getMemberNames()) {
+ if (testcase_name == "Metadata") {
+ continue;
+ }
+
+ Json::Value testcase = root[testcase_name];
+ Json::Value model_vt_outputs;
+ int loop_count = testcase[input_combination[0]].size();
+
+ std::cout << "tc: " << testcase_name << " count: " << loop_count << std::endl;
+ for (int i = 0; i < loop_count; ++i) {
+ std::vector<float> model_inputs;
+ float model_output;
+ int num_inputs = input_combination.size();
+
+ for (int j = 0; j < num_inputs; ++j) {
+ std::string input_name = input_combination[j];
+ std::string value_str = testcase[input_name][std::to_string(i)].asString();
+
+ std::cout << "tc[" << testcase_name << "] entry[" << i << "] input[" << input_name
+ << "] value_str[" << value_str << "]\n";
+
+ float value;
+ if (android::base::ParseFloat(value_str, &value) == false) {
+ std::cout << "Failed to parse value_str : " << value_str << " to float\n";
+ }
+
+ model_inputs.push_back(value);
+ }
+
+ ret = vt_estimator_.Estimate(model_inputs, &model_output);
+ if (ret != thermal::vtestimator::kVtEstimatorOk) {
+ std::cout << "Failed to run estimator (ret: " << ret << ")\n";
+ return -1;
+ }
+
+ model_vt_outputs[std::to_string(i)] = std::to_string(model_output);
+ }
+
+ testcase["model_vt"] = model_vt_outputs;
+ root[testcase_name] = testcase;
+ std::cout << "completed testcase_name: " << testcase_name << std::endl;
+ }
+
+ Json::StreamWriterBuilder writer_builder;
+ writer_builder["indentation"] = "";
+ std::unique_ptr<Json::StreamWriter> writer(writer_builder.newStreamWriter());
+ std::ofstream output_stream(output_file, std::ofstream::out);
+ writer->write(root, &output_stream);
+
+ return 0;
+}
+
+void print_usage() {
+ std::string message = "usage: \n";
+ message += "-m : input mode (";
+ message += "0: single inference ";
+ message += "1: json input file ";
+ message += "2: generate random inputs) \n";
+ message += "-p : path to model file \n";
+ message += "-t : path to thermal config file \n";
+ message += "-i : input samples (mode 0), path to input file (mode 1) \n";
+ message += "-o : output file (mode 1) \n";
+ message += "-d : delay between inferences in seconds (mode 2) \n";
+ message += "-c : inference count (mode 2)";
+
+ std::cout << message << std::endl;
+}
+
+int main(int argc, char *argv[]) {
+ int c, mode = -1;
+ char *input = nullptr, *output = nullptr;
+ char *model_path = nullptr, *thermal_config_path = nullptr;
+ int min_inference_count = -1;
+ int inference_delay_sec = 0;
+
+ while ((c = getopt(argc, argv, "hm:p:i:c:o:d:t:")) != -1) switch (c) {
+ case 'm':
+ mode = atoi(optarg);
+ std::cout << "mode: " << mode << std::endl;
+ break;
+ case 'p':
+ model_path = optarg;
+ std::cout << "model_path: " << model_path << std::endl;
+ break;
+ case 't':
+ thermal_config_path = optarg;
+ std::cout << "thermal_config_path: " << thermal_config_path << std::endl;
+ break;
+ case 'i':
+ input = optarg;
+ std::cout << "input: " << input << std::endl;
+ break;
+ case 'o':
+ output = optarg;
+ std::cout << "output: " << output << std::endl;
+ break;
+ case 'c':
+ min_inference_count = atoi(optarg);
+ std::cout << "min_inference_count: " << min_inference_count << std::endl;
+ break;
+ case 'd':
+ inference_delay_sec = atoi(optarg);
+ std::cout << "inference_delay_sec : " << inference_delay_sec << std::endl;
+ break;
+ case 'h':
+ print_usage();
+ return 0;
+ default:
+ std::cout << "unsupported option " << c << std::endl;
+ abort();
+ }
+
+ if (!model_path) {
+ model_path = default_model;
+ std::cout << "Using default model_path: " << model_path << std::endl;
+ }
+
+ if (!thermal_config_path) {
+ thermal_config_path = default_thermal_config;
+ std::cout << "Using default thermal config: " << thermal_config_path << std::endl;
+ }
+
+ int ret = -1;
+ switch (mode) {
+ case 0:
+ ret = run_single_inference(model_path, input);
+ break;
+ case 1:
+ ret = run_batch_process(model_path, thermal_config_path, input, output);
+ break;
+ case 2:
+ ret = run_random_input_inference(model_path, thermal_config_path, min_inference_count,
+ inference_delay_sec);
+ break;
+ default:
+ std::cout << "unsupported mode" << std::endl;
+ print_usage();
+ break;
+ }
+
+ std::cout << "Exiting" << std::endl;
+ fflush(stdout);
+ return ret;
+}
diff --git a/vibrator/cs40l26/apex/Android.bp b/vibrator/cs40l26/apex/Android.bp
deleted file mode 100644
index dea90ed6..00000000
--- a/vibrator/cs40l26/apex/Android.bp
+++ /dev/null
@@ -1,63 +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.
-
-package {
- default_applicable_licenses: ["Android-Apache-2.0"],
-}
-
-apex_key {
- name: "com.google.pixel.vibrator.hal.key",
- public_key: "com.google.pixel.vibrator.hal.avbpubkey",
- private_key: "com.google.pixel.vibrator.hal.pem",
-}
-
-android_app_certificate {
- name: "com.google.pixel.vibrator.hal.certificate",
- certificate: "com.google.pixel.vibrator.hal",
-}
-
-genrule {
- name: "gen-android.hardware.vibrator-service.cs40l26.rc",
- srcs: [":android.hardware.vibrator-service.cs40l26.rc"],
- out: ["android.hardware.vibrator-service.cs40l26.rc"],
- cmd: "sed -E 's/\\/vendor\\/bin/\\/apex\\/com.google.pixel.vibrator.hal\\/bin/' $(in) > $(out)",
-}
-
-prebuilt_etc {
- name: "apex-android.hardware.vibrator-service.cs40l26.rc",
- src: ":gen-android.hardware.vibrator-service.cs40l26.rc",
- installable: false,
-}
-
-apex {
- name: "com.google.pixel.vibrator.hal",
- manifest: "apex_manifest.json",
- file_contexts: "file_contexts", // Default, please edit, see go/android-apex-howto
- key: "com.google.pixel.vibrator.hal.key",
- certificate: ":com.google.pixel.vibrator.hal.certificate",
- vintf_fragments: [
- ":android.hardware.vibrator-service.cs40l26.xml",
- ],
- use_vndk_as_stable: true,
- // Install the apex in /vendor/apex
- soc_specific: true,
- updatable: false,
- binaries: [
- "android.hardware.vibrator-service.cs40l26",
- ],
- prebuilts: [
- "apex-android.hardware.vibrator-service.cs40l26.rc",
- ],
- overrides: ["android.hardware.vibrator-service.cs40l26"],
-}
diff --git a/vibrator/cs40l26/apex/apex_manifest.json b/vibrator/cs40l26/apex/apex_manifest.json
deleted file mode 100644
index cbdc876c..00000000
--- a/vibrator/cs40l26/apex/apex_manifest.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "com.google.pixel.vibrator.hal",
- "version": 1
-}
diff --git a/vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.avbpubkey b/vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.avbpubkey
deleted file mode 100644
index 46b6769f..00000000
--- a/vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.avbpubkey
+++ /dev/null
Binary files differ
diff --git a/vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.pem b/vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.pem
deleted file mode 100644
index 595322ac..00000000
--- a/vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.pem
+++ /dev/null
@@ -1,52 +0,0 @@
------BEGIN PRIVATE KEY-----
-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
-vgJDLYQ0TdEWpv6trpA3s3hgFOx16g==
------END PRIVATE KEY-----
diff --git a/vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.pk8 b/vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.pk8
deleted file mode 100644
index 8a5c5de2..00000000
--- a/vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.pk8
+++ /dev/null
Binary files differ
diff --git a/vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.x509.pem b/vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.x509.pem
deleted file mode 100644
index f1c4b481..00000000
--- a/vibrator/cs40l26/apex/com.google.pixel.vibrator.hal.x509.pem
+++ /dev/null
@@ -1,34 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIF3zCCA8cCFG61gvRZ1Gc1PG7iECvnY7zKSCaEMA0GCSqGSIb3DQEBCwUAMIGq
-MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91
-bnRhaW4gVmlldzEQMA4GA1UECgwHQW5kcm9pZDEQMA4GA1UECwwHQW5kcm9pZDEi
-MCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTEmMCQGA1UEAwwdY29t
-Lmdvb2dsZS5waXhlbC52aWJyYXRvci5oYWwwIBcNMjIwODA1MTc1NTU4WhgPNDc2
-MDA3MDExNzU1NThaMIGqMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5p
-YTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UECgwHQW5kcm9pZDEQMA4G
-A1UECwwHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNv
-bTEmMCQGA1UEAwwdY29tLmdvb2dsZS5waXhlbC52aWJyYXRvci5oYWwwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCVoc9F0h6gf3M/Sm5K9rt8W1ZmB/Lu
-fMlkMAZXqMWRbCYVPDg0hQkICLNEOEM76oFvMBCSS2HsZwdXgAguwy3IBhpuMC+t
-mNkA9+6gAXXE3nBwQ/PjphS9vPPIQ+cvbEBiwaAFpAWCx9nb5VLBrkNBIFDuzE+t
-He6sj8kD8vVWKqSEwHHwFdzvXLkSQvYKhrWFltcuUmkpxnHtfVJAH/iO7Vb/jR+s
-H1YVqJcS35OjnjYzjDfQTr7aqV09K/3X9Srai5o0BiWRpcpytmK5MEIqEPJvewRz
-e76Uw7kMO68f5OS6NV1iXqCI4l/k5v+Q0jlxecqJdWANWSegR5cli3eUS/zEDmZb
-2OlrNACsr4hpGu5M2EuVwxg89SbKlUU2ughE6+c/56c45WRalyailaWltN5SF9zK
-RaW1iGS3GDBXeVFqavydJLs9NDdEd0x9wAEdvN8rhrChkhjq18L9ls4d6JIC629V
-n/GT63AHfulpklt5ueGOT1vQZdg6Z8LipcwAzIpTUZJEyVGbGp/o3jf80yYdfftU
-AT51+i89xiJwKDBnCS0FDT54NFpp9yCKTZtLIGa+GweW4kVya2AG6iFdf0/GXPGz
-khOPxhIyC8IfvK+Ozryn2X1ied44gHy6dKA8QXa5nRRxVPnOjJTzQp+vRty+dvzz
-imdJENRezYdKXQIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQA/0IUBeq+xyG7Q8Alb
-4x6cNgLhyxqyn1JQ856YsrGZrdRXLz3pVv21hKOW5g4ol7kXMnGcpnympgk8bgux
-4YFUNxGtM+2SR2ev3bmh+I0UTEom85k6FIYI22cje7cPJUq2E1V/IUWOSPGZ5A8O
-HaW0CKOO9aspyYFXZyWqf9pdzygaqSB1BH2yxr8Hqwdhi7YDRE81RYZHC7KMsq7E
-f2KkI/Lw+Q4vKGCcXNXiJrkUNkRWiuS8mbUtrNf4ub2i07zkB+pJ6Z5NhqnPV8v8
-nNVqdPmRnDcW1eRedV2Zx8/kUF8xqDjAYAv6i+D4Qmz2wjh63/EkUXqoyn/yrDBL
-DGzQWfZvLsXKYPFcEIvGTIkZnKSaLbI5ReO+hZ4i4BgCs/dYvVX27mfTGkwsj11j
-w4SmQuMxqMA26HQDhL7TPkBmfzvD53YC57wbioLhAUgQM5pwi3utx8oj+zcoqNxl
-x6PiaWCWR0pVjGyI4UTMn2wyf8NlqEa7fJI74S035ZK6eqfP2wfZlzV5zpIOnmR1
-GK7oIjbG2NNVINiOSEhPD9CMYxX6UXh+C3vD37QMdRbcLahvjlFVkPCVi1lPf/Js
-Rjj9ZCh2BT/ks2KMIHzR7oFQZzMOiz8MP9HrsS1QLyKMxco2jyI2jL8y/j3VOsZz
-3ZkM2dl0vADvHBwHZH3/v/InMA==
------END CERTIFICATE-----
diff --git a/vibrator/cs40l26/apex/file_contexts b/vibrator/cs40l26/apex/file_contexts
deleted file mode 100644
index 5795d2b5..00000000
--- a/vibrator/cs40l26/apex/file_contexts
+++ /dev/null
@@ -1,3 +0,0 @@
-(/.*)? u:object_r:vendor_file:s0
-/bin/hw/android\.hardware\.vibrator-service\.cs40l26 u:object_r:hal_vibrator_default_exec:s0
-
diff --git a/vibrator/cs40l26/device.mk b/vibrator/cs40l26/device.mk
index 24d68d2c..b83f3bb7 100644
--- a/vibrator/cs40l26/device.mk
+++ b/vibrator/cs40l26/device.mk
@@ -1,8 +1,4 @@
-ifeq ($(LOCAL_PREFER_VENDOR_APEX),true)
-PRODUCT_PACKAGES += com.google.pixel.vibrator.hal
-else
PRODUCT_PACKAGES += android.hardware.vibrator-service.cs40l26
-endif
BOARD_SEPOLICY_DIRS += \
hardware/google/pixel-sepolicy/vibrator/common \
diff --git a/vibrator/drv2624/apex/Android.bp b/vibrator/drv2624/apex/Android.bp
deleted file mode 100644
index 016a7935..00000000
--- a/vibrator/drv2624/apex/Android.bp
+++ /dev/null
@@ -1,59 +0,0 @@
-package {
- default_applicable_licenses: ["Android-Apache-2.0"],
-}
-
-apex {
- name: "com.android.vibrator.drv2624",
- manifest: "apex_manifest.json",
- key: "com.android.vibrator.drv2624.key",
- certificate: ":com.android.vibrator.drv2624.certificate",
- file_contexts: "file_contexts",
- use_vndk_as_stable: true,
- updatable: false,
-
- // install the apex in /vendor/apex
- proprietary: true,
-
- // BEGIN of apex payloads
- // /bin
- binaries: [
- "android.hardware.vibrator-service.drv2624",
- ],
- // /etc
- prebuilts: [
- "com.android.vibrator.drv2624.rc",
- ],
- // END of apex payloads
-
- // BEGIN of companion files to be installed if this module is installed
- // init script, which is installed in /vendor/etc.
- // Note that init scripts in an apex can contain only "service" sections.
- // The following init script contains "on" section to enable the service.
- init_rc: [
- "com.android.vibrator.drv2624.enable.rc",
- ],
-
- // vintf manifest fragments, which is installed in /vendor/etc/vintf.
- // TODO(b/130058564): should we put vintf framgments within the apex?
- vintf_fragments: [
- "com.android.vibrator.drv2624.xml",
- ],
- // END of companion filse
-}
-
-apex_key {
- name: "com.android.vibrator.drv2624.key",
- public_key: "com.android.vibrator.drv2624.pubkey",
- private_key: "com.android.vibrator.drv2624.pem",
-}
-
-android_app_certificate {
- name: "com.android.vibrator.drv2624.certificate",
- certificate: "com.android.vibrator.drv2624",
-}
-
-prebuilt_etc {
- name: "com.android.vibrator.drv2624.rc",
- src: "com.android.vibrator.drv2624.rc",
- installable: false,
-}
diff --git a/vibrator/drv2624/apex/apex_manifest.json b/vibrator/drv2624/apex/apex_manifest.json
deleted file mode 100644
index ac8af3a4..00000000
--- a/vibrator/drv2624/apex/apex_manifest.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "com.android.vibrator.drv2624",
- "version": 1
-}
diff --git a/vibrator/drv2624/apex/com.android.vibrator.drv2624.enable.rc b/vibrator/drv2624/apex/com.android.vibrator.drv2624.enable.rc
deleted file mode 100644
index d9b79f08..00000000
--- a/vibrator/drv2624/apex/com.android.vibrator.drv2624.enable.rc
+++ /dev/null
@@ -1,29 +0,0 @@
-on boot
- wait /sys/class/leds/vibrator/device
-
- mkdir /mnt/vendor/persist/haptics 0770 system system
- chmod 770 /mnt/vendor/persist/haptics
- chmod 440 /mnt/vendor/persist/haptics/drv2624.cal
- chown system system /mnt/vendor/persist/haptics
- chown system system /mnt/vendor/persist/haptics/drv2624.cal
-
- write /sys/class/leds/vibrator/trigger transient
- chown system system /sys/class/leds/vibrator/activate
- chown system system /sys/class/leds/vibrator/brightness
- chown system system /sys/class/leds/vibrator/duration
- chown system system /sys/class/leds/vibrator/state
-
- chown system system /sys/class/leds/vibrator/device/autocal
- chown system system /sys/class/leds/vibrator/device/autocal_result
- chown system system /sys/class/leds/vibrator/device/ctrl_loop
- chown system system /sys/class/leds/vibrator/device/lp_trigger_effect
- chown system system /sys/class/leds/vibrator/device/lp_trigger_scale
- chown system system /sys/class/leds/vibrator/device/lra_wave_shape
- chown system system /sys/class/leds/vibrator/device/mode
- chown system system /sys/class/leds/vibrator/device/od_clamp
- chown system system /sys/class/leds/vibrator/device/ol_lra_period
- chown system system /sys/class/leds/vibrator/device/rtp_input
- chown system system /sys/class/leds/vibrator/device/scale
- chown system system /sys/class/leds/vibrator/device/set_sequencer
-
- enable vendor.vibrator.drv2624
diff --git a/vibrator/drv2624/apex/com.android.vibrator.drv2624.pem b/vibrator/drv2624/apex/com.android.vibrator.drv2624.pem
deleted file mode 100644
index 012ed8fc..00000000
--- a/vibrator/drv2624/apex/com.android.vibrator.drv2624.pem
+++ /dev/null
@@ -1,51 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-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
------END RSA PRIVATE KEY-----
diff --git a/vibrator/drv2624/apex/com.android.vibrator.drv2624.pk8 b/vibrator/drv2624/apex/com.android.vibrator.drv2624.pk8
deleted file mode 100644
index 1e941879..00000000
--- a/vibrator/drv2624/apex/com.android.vibrator.drv2624.pk8
+++ /dev/null
Binary files differ
diff --git a/vibrator/drv2624/apex/com.android.vibrator.drv2624.pubkey b/vibrator/drv2624/apex/com.android.vibrator.drv2624.pubkey
deleted file mode 100644
index 479a8686..00000000
--- a/vibrator/drv2624/apex/com.android.vibrator.drv2624.pubkey
+++ /dev/null
Binary files differ
diff --git a/vibrator/drv2624/apex/com.android.vibrator.drv2624.rc b/vibrator/drv2624/apex/com.android.vibrator.drv2624.rc
deleted file mode 100644
index df4e3e95..00000000
--- a/vibrator/drv2624/apex/com.android.vibrator.drv2624.rc
+++ /dev/null
@@ -1,18 +0,0 @@
-service vendor.vibrator.drv2624 /apex/com.android.vibrator.drv2624/bin/hw/android.hardware.vibrator-service.drv2624
- class hal
- user system
- group system
-
- setenv PROPERTY_PREFIX ro.vendor.vibrator.hal.
- setenv CALIBRATION_FILEPATH /persist/haptics/drv2624.cal
-
- setenv HWAPI_PATH_PREFIX /sys/class/leds/vibrator/
- setenv HWAPI_DEBUG_PATHS "
- device/autocal
- device/lp_trigger_effect
- device/lp_trigger_scale
- device/ol_lra_period
- state
- "
-
- disabled
diff --git a/vibrator/drv2624/apex/com.android.vibrator.drv2624.x509.pem b/vibrator/drv2624/apex/com.android.vibrator.drv2624.x509.pem
deleted file mode 100644
index e1d9cac2..00000000
--- a/vibrator/drv2624/apex/com.android.vibrator.drv2624.x509.pem
+++ /dev/null
@@ -1,34 +0,0 @@
------BEGIN CERTIFICATE-----
-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
-8rWXShiHxat5sB1c3ON8X4ZukajREniUSOXhzic=
------END CERTIFICATE-----
diff --git a/vibrator/drv2624/apex/com.android.vibrator.drv2624.xml b/vibrator/drv2624/apex/com.android.vibrator.drv2624.xml
deleted file mode 100644
index 4db8f8c5..00000000
--- a/vibrator/drv2624/apex/com.android.vibrator.drv2624.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<manifest version="1.0" type="device">
- <hal format="aidl">
- <name>android.hardware.vibrator</name>
- <version>2</version>
- <fqname>IVibrator/default</fqname>
- </hal>
-</manifest>
diff --git a/vibrator/drv2624/apex/file_contexts b/vibrator/drv2624/apex/file_contexts
deleted file mode 100644
index 5be98ec7..00000000
--- a/vibrator/drv2624/apex/file_contexts
+++ /dev/null
@@ -1,2 +0,0 @@
-(/.*)? u:object_r:vendor_file:s0
-/bin/hw/android\.hardware\.vibrator-service\.drv2624 u:object_r:hal_vibrator_default_exec:s0 \ No newline at end of file
diff --git a/vibrator/drv2624/apex/key.pem b/vibrator/drv2624/apex/key.pem
deleted file mode 100644
index b582099c..00000000
--- a/vibrator/drv2624/apex/key.pem
+++ /dev/null
@@ -1,52 +0,0 @@
------BEGIN PRIVATE KEY-----
-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
-zCK8JO9WGOwvH9n0F+pgYXEo4OtjMA==
------END PRIVATE KEY-----