1// Copyright (C) 2019 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14// 15// 16 17// Build the Car service. 18 19package { 20 default_applicable_licenses: ["Android-Apache-2.0"], 21} 22 23genrule { 24 name: "statslog-Car-java-gen", 25 tools: ["stats-log-api-gen"], 26 cmd: "$(location stats-log-api-gen) --java $(out) --module car --javaPackage com.android.car" 27 + " --javaClass CarStatsLog", 28 out: ["com/android/car/CarStatsLog.java"], 29} 30 31java_defaults { 32 name: "carservice-updatable-min-java-defaults", 33 34 srcs: [ 35 // add full source for all codes under p/s/Car to reduce unnecessary library allow listing. 36 ":IVehicleGeneratedJavaFiles", 37 ":android.car.cluster.navigation-src", 38 ":android.car.watchdoglib-src", 39 ":cartelemetry-cardata-proto-srcs", 40 ":cartelemetryservice-proto-srcs", 41 ":com.android.car.procfsinspector-client-src", 42 ":statslog-Car-java-gen", 43 ":iscriptexecutor_aidl", 44 "proto/**/*.proto", 45 "src/**/*.java", 46 ], 47 48 aidl: { 49 include_dirs: [ 50 "packages/services/Car/procfs-inspector/client/src", 51 ], 52 }, 53 54 resource_dirs: ["res"], 55 56 // Resource is still com.android.car.R 57 aaptflags: [ 58 "--custom-package com.android.car", 59 ], 60 61 libs: [ 62 "android.car-module.impl", 63 "android.car.builtin", 64 "framework-annotations-lib", 65 "framework-bluetooth", 66 "framework-connectivity", 67 "framework-connectivity-t.stubs.module_lib", 68 "framework-statsd", 69 "framework-tethering", 70 "framework-wifi", 71 "modules-utils-os", 72 "modules-utils-preconditions", 73 "modules-utils-shell-command-handler", 74 ], 75 76 static_libs: [ 77 "android.automotive.telemetry.internal-V2-java", // ICarTelemetryInternal 78 "android.automotive.watchdog.internal-V3-java", 79 "android.frameworks.automotive.powerpolicy.internal-V1-java", 80 "android.frameworks.automotive.powerpolicy-V2-java", 81 "android.hidl.base-V1.0-java", 82 "android.hardware.automotive.audiocontrol-V1.0-java", 83 "android.hardware.automotive.audiocontrol-V2.0-java", 84 "android.hardware.automotive.audiocontrol-V3-java", 85 "android.hardware.automotive.remoteaccess-V1-java", 86 "android.hardware.automotive.vehicle-V2-java", 87 "android.hardware.automotive.vehicle.property-V2-java", 88 "android.hardware.automotive.vehicle-V2.0-java", 89 "android.hardware.health-V1.0-java", 90 "android.hardware.health-V2.0-java", 91 "android.hardware.automotive.occupant_awareness-V1-java", 92 ], 93 94 proto: { 95 type: "lite", 96 }, 97 98 optimize: { 99 proguard_flags_files: ["proguard.flags"], 100 enabled: false, 101 }, 102 103 // Disable build in PDK, missing aidl import breaks build 104 product_variables: { 105 pdk: { 106 enabled: false, 107 }, 108 }, 109 110 sdk_version: "module_current", 111 112 java_resources: [ 113 ":VehicleHalDefaultProperties_JSON", 114 ], 115} 116 117java_defaults { 118 name: "carservice-updatable-java-defaults", 119 120 visibility: [ 121 "//packages/services/Car:__subpackages__", 122 ], 123 124 defaults: [ "carservice-updatable-min-java-defaults" ], 125 126 // TODO(b/288271411): enable it when car mainline module is supported 127 // min_sdk_version: "33", 128} 129 130// Non-module build 131android_app { 132 name: "CarServiceUpdatableNonModule", 133 134 defaults: ["carservice-updatable-java-defaults"], 135 privileged: true, 136 137 required: ["allowed_privapp_com.android.car"], 138} 139 140// Added to car.framework module 141android_app { 142 name: "CarServiceUpdatable", 143 144 defaults: ["carservice-updatable-java-defaults"], 145 privileged: true, 146 147 apex_available: ["com.android.car.framework"], 148} 149 150java_library { 151 152 name: "car-service-common-util-static-lib", 153 154 srcs: [ 155 "src/com/android/car/CarServiceBase.java", 156 "src/com/android/car/CarServiceUtils.java", 157 "src/com/android/car/CarLog.java", 158 "src/com/android/car/CarSystemService.java", 159 "src/com/android/car/util/TransitionLog.java", 160 ], 161 162 libs: [ 163 "android.car.builtin", 164 "android.car", 165 ], 166 167 static_libs: [ 168 "android.hardware.automotive.vehicle-V2-java", 169 "android.hardware.automotive.vehicle-V2.0-java", 170 ], 171 172 product_variables: { 173 pdk: { 174 enabled: false, 175 }, 176 }, 177} 178 179// Minimum code shared with carservice builtin. 180// Be careful with what is added here as it takes double space. 181// Also static instance sharing will not work. 182java_library { 183 name: "car-service-lib-for-builtin", 184 185 srcs: [ 186 "src/com/android/car/CarLog.java", 187 ], 188 189 libs: [ 190 "android.car", 191 ], 192} 193 194//#################################################################################### 195// Build a static library to help mocking various car services in testing. This is meant to be used 196// for internal unit tests around the car service. 197//#################################################################################### 198android_library { 199 name: "car-service-test-static-lib", 200 201 defaults: ["carservice-updatable-min-java-defaults"], 202 203 manifest: "EmptyAndroidManifest.xml" 204} 205 206filegroup { 207 name: "iscriptexecutor_aidl", 208 srcs: [ 209 "src/com/android/car/telemetry/scriptexecutorinterface/BundleList.aidl", 210 "src/com/android/car/telemetry/scriptexecutorinterface/IScriptExecutor.aidl", 211 "src/com/android/car/telemetry/scriptexecutorinterface/IScriptExecutorListener.aidl", 212 ], 213 path: "src", 214} 215