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 ":android.car.cluster.navigation-src", 37 ":android.car.watchdoglib-src", 38 ":cartelemetry-cardata-proto-srcs", 39 ":cartelemetryservice-proto-srcs", 40 ":com.android.car.procfsinspector-client-src", 41 ":statslog-Car-java-gen", 42 ":iscriptexecutor_aidl", 43 "proto/**/*.proto", 44 "src/**/*.java", 45 ], 46 47 aidl: { 48 include_dirs: [ 49 "packages/services/Car/procfs-inspector/client/src", 50 ], 51 }, 52 53 resource_dirs: ["res"], 54 55 // Resource is still com.android.car.R 56 aaptflags: [ 57 "--custom-package com.android.car", 58 ], 59 60 libs: [ 61 "android.car-module.impl", 62 "android.car.builtin", 63 "framework-annotations-lib", 64 "framework-bluetooth", 65 "framework-connectivity", 66 "framework-connectivity-t.stubs.module_lib", 67 "framework-statsd", 68 "framework-tethering", 69 "framework-wifi", 70 "modules-utils-os", 71 "modules-utils-preconditions", 72 "modules-utils-shell-command-handler", 73 ], 74 75 static_libs: [ 76 "android.automotive.telemetry.internal-V2-java", // ICarTelemetryInternal 77 "android.automotive.watchdog.internal-V2-java", 78 "android.frameworks.automotive.powerpolicy.internal-V1-java", 79 "android.hidl.base-V1.0-java", 80 "android.hardware.automotive.audiocontrol-V1.0-java", 81 "android.hardware.automotive.audiocontrol-V2.0-java", 82 "android.hardware.automotive.audiocontrol-V2-java", 83 "android.hardware.automotive.vehicle-V1-java", 84 "android.hardware.automotive.vehicle-V2.0-java", 85 "android.hardware.health-V1.0-java", 86 "android.hardware.health-V2.0-java", 87 "android.hardware.automotive.occupant_awareness-V1-java", 88 ], 89 90 proto: { 91 type: "lite", 92 }, 93 94 optimize: { 95 proguard_flags_files: ["proguard.flags"], 96 enabled: false, 97 }, 98 99 // Disable build in PDK, missing aidl import breaks build 100 product_variables: { 101 pdk: { 102 enabled: false, 103 }, 104 }, 105 106 sdk_version: "module_current", 107 platform_apis: false, 108} 109 110java_defaults { 111 name: "carservice-updatable-java-defaults", 112 113 visibility: [ 114 "//packages/services/Car:__subpackages__", 115 ], 116 117 defaults: [ "carservice-updatable-min-java-defaults" ], 118 119 min_sdk_version: "33", 120} 121 122// Non-module build 123android_app { 124 name: "CarServiceUpdatableNonModule", 125 126 defaults: ["carservice-updatable-java-defaults"], 127 privileged: true, 128 129 required: ["allowed_privapp_com.android.car"], 130} 131 132// Added to car.framework module 133android_app { 134 name: "CarServiceUpdatable", 135 136 defaults: ["carservice-updatable-java-defaults"], 137 privileged: true, 138 139 apex_available: ["com.android.car.framework"], 140} 141 142java_library { 143 144 name: "car-service-common-util-static-lib", 145 146 srcs: [ 147 "src/com/android/car/CarServiceBase.java", 148 "src/com/android/car/CarServiceUtils.java", 149 "src/com/android/car/CarLog.java", 150 "src/com/android/car/util/TransitionLog.java", 151 ], 152 153 libs: [ 154 "android.car.builtin", 155 "android.car", 156 ], 157 158 static_libs: [ 159 "android.hardware.automotive.vehicle-V1-java", 160 "android.hardware.automotive.vehicle-V2.0-java", 161 ], 162 163 product_variables: { 164 pdk: { 165 enabled: false, 166 }, 167 }, 168} 169 170// Minimum code shared with carservice builtin. 171// Be careful with what is added here as it takes double space. 172// Also static instance sharing will not work. 173java_library { 174 name: "car-service-lib-for-builtin", 175 176 srcs: [ 177 "src/com/android/car/CarLog.java", 178 ], 179 180 libs: [ 181 "android.car", 182 ], 183} 184 185//#################################################################################### 186// Build a static library to help mocking various car services in testing. This is meant to be used 187// for internal unit tests around the car service. 188//#################################################################################### 189android_library { 190 name: "car-service-test-static-lib", 191 192 defaults: ["carservice-updatable-min-java-defaults"], 193 194 manifest: "EmptyAndroidManifest.xml" 195} 196 197filegroup { 198 name: "iscriptexecutor_aidl", 199 srcs: [ 200 "src/com/android/car/telemetry/scriptexecutorinterface/BundleList.aidl", 201 "src/com/android/car/telemetry/scriptexecutorinterface/IScriptExecutor.aidl", 202 "src/com/android/car/telemetry/scriptexecutorinterface/IScriptExecutorListener.aidl", 203 ], 204 path: "src", 205} 206