blob: 19a5fa2c83f58107a1fed14bd456db4b9e59922d [file] [log] [blame]
Dan Harms25fbf1b2019-07-25 16:09:17 -07001// 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
Bob Badour4da7d222021-02-22 16:14:07 -080019package {
20 default_applicable_licenses: ["Android-Apache-2.0"],
21}
22
Muhammad Qureshi94524cd2020-01-25 23:47:38 -080023genrule {
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
31car_service_sources = [
Max Dashouk9912ac32021-08-13 17:54:51 +000032 ":iscriptexecutor_aidl",
Muhammad Qureshi94524cd2020-01-25 23:47:38 -080033 "src/**/*.java",
34 ":statslog-Car-java-gen",
35]
Dan Harms25fbf1b2019-07-25 16:09:17 -070036
tadvanaf7746cd2019-10-04 16:02:56 -070037common_lib_deps = [
Zhomart Mukhamejanovfcfe4942021-07-08 09:28:55 -070038 "android.automotive.telemetry.internal-java", // ICarTelemetryInternal
Yuncheol Heo3e094c52021-05-03 11:15:17 -070039 "android.car.cluster.navigation",
tadvanaf7746cd2019-10-04 16:02:56 -070040 "android.car.userlib",
Eric Jeong6df075f2020-03-11 16:12:23 -070041 "android.car.watchdoglib",
Eric Jeong0d3bb4f2020-11-06 11:31:45 -080042 "android.frameworks.automotive.powerpolicy.internal-java",
tadvanaf7746cd2019-10-04 16:02:56 -070043 "android.hidl.base-V1.0-java",
44 "android.hardware.automotive.audiocontrol-V1.0-java",
Hayden Gomesd29c8db2020-03-09 13:47:28 -070045 "android.hardware.automotive.audiocontrol-V2.0-java",
Jeongik Chad589dc02021-01-28 00:49:50 +090046 "android.hardware.automotive.audiocontrol-V1-java",
tadvanaf7746cd2019-10-04 16:02:56 -070047 "android.hardware.automotive.vehicle-V2.0-java",
48 "android.hardware.health-V1.0-java",
49 "android.hardware.health-V2.0-java",
Jeongik Chad589dc02021-01-28 00:49:50 +090050 "android.hardware.automotive.occupant_awareness-V1-java",
tadvanaf7746cd2019-10-04 16:02:56 -070051 "vehicle-hal-support-lib",
52 "car-systemtest",
53 "com.android.car.procfsinspector-client",
54 "blestream-protos",
55 "SettingsLib",
56 "androidx.preference_preference",
Yan Zhufb764ac2021-02-19 22:20:52 -080057 // TODO(b/171603586): remove this after moving NewUserDisclaimerActivity
58 // to CarSettings
Felipe Leme8725a2f2020-12-09 16:04:51 -080059 "car-admin-ui-lib",
Felipe Leme701b0432021-03-24 16:25:31 -070060 "Slogf",
Max Dashoukff9ffbc2021-02-16 11:36:39 -080061 "cartelemetry-protos",
tadvanaf7746cd2019-10-04 16:02:56 -070062]
63
Dan Harms25fbf1b2019-07-25 16:09:17 -070064android_app {
65 name: "CarService",
66
67 srcs: car_service_sources,
68
69 resource_dirs: ["res"],
70
71 platform_apis: true,
72
73 // Each update should be signed by OEMs
74 certificate: "platform",
75 privileged: true,
76
77 optimize: {
78 proguard_flags_files: ["proguard.flags"],
79 enabled: false,
80 },
81
82 libs: ["android.car"],
83
tadvanaf7746cd2019-10-04 16:02:56 -070084 static_libs: common_lib_deps + [
Mayank Garg94f3eb92020-08-12 12:38:58 -070085 "com.android.car.internal.system",
Dan Harms25fbf1b2019-07-25 16:09:17 -070086 ],
87
Max Dashouk2c013db2021-06-30 17:43:54 +000088 jni_libs: [
89 "libcarservicejni",
Max Dashouk2c013db2021-06-30 17:43:54 +000090 ],
Changyeon Joc882f7a2021-03-09 08:41:41 -080091
Yan Zhuca7c4592020-08-14 10:05:23 -070092 required: ["allowed_privapp_com.android.car"],
Dan Harms25fbf1b2019-07-25 16:09:17 -070093
94 // Disable build in PDK, missing aidl import breaks build
95 product_variables: {
96 pdk: {
97 enabled: false,
98 },
99 },
100}
101
Keun young Park9a91efb2019-11-15 18:10:47 -0800102java_library {
103
104 name: "car-service-common-util-static-lib",
105
106 srcs: [
107 "src/com/android/car/CarServiceBase.java",
108 "src/com/android/car/CarServiceUtils.java",
109 "src/com/android/car/CarLog.java",
Jordan Jozwiak9789ac52019-12-06 16:52:26 -0800110 "src/com/android/car/Utils.java",
Keun young Park9a91efb2019-11-15 18:10:47 -0800111 ],
112
bkchoi51076532021-06-14 14:35:01 -0700113 static_libs: [
114 "com.android.car.internal.common",
115 ],
116
Keun young Park9a91efb2019-11-15 18:10:47 -0800117 product_variables: {
118 pdk: {
119 enabled: false,
120 },
121 },
122}
123
Dan Harms25fbf1b2019-07-25 16:09:17 -0700124//####################################################################################
tadvanaf7746cd2019-10-04 16:02:56 -0700125// Build a static library to help mocking various car services in testing. This is meant to be used
126// for internal unit tests around the car service.
Dan Harms25fbf1b2019-07-25 16:09:17 -0700127//####################################################################################
128android_library {
tadvanaf7746cd2019-10-04 16:02:56 -0700129 name: "car-service-test-static-lib",
Dan Harms25fbf1b2019-07-25 16:09:17 -0700130
131 srcs: car_service_sources,
132
133 resource_dirs: ["res"],
134
135 libs: [
136 "android.car",
137 "car-frameworks-service",
138 ],
139
tadvanaf7746cd2019-10-04 16:02:56 -0700140 static_libs: common_lib_deps,
141
tadvanaf7746cd2019-10-04 16:02:56 -0700142 product_variables: {
143 pdk: {
144 enabled: false,
145 },
146 },
147}
148
149//####################################################################################
150// Build a library to help generate a testing library for external apps.
151// We do not want to use statically linked libraries, as this will bloat the output jar with classes
152// that can conflict with the user's environment.
153//####################################################################################
154android_library {
155 name: "car-service-test-lib",
156
157 srcs: car_service_sources,
158
159 resource_dirs: ["res"],
160
161 libs: common_lib_deps + [
162 "android.car",
163 "car-frameworks-service",
Dan Harms25fbf1b2019-07-25 16:09:17 -0700164 ],
165
Dan Harms25fbf1b2019-07-25 16:09:17 -0700166 product_variables: {
167 pdk: {
168 enabled: false,
169 },
170 },
171}
Max Dashouk9912ac32021-08-13 17:54:51 +0000172
173filegroup {
174 name: "iscriptexecutor_aidl",
175 srcs: [
176 "src/com/android/car/telemetry/scriptexecutorinterface/IScriptExecutor.aidl",
177 "src/com/android/car/telemetry/scriptexecutorinterface/IScriptExecutorListener.aidl",
178 ],
179 path: "src",
180}
181
182filegroup {
183 name: "iscriptexecutorconstants_aidl",
184 srcs: [
185 "src/com/android/car/telemetry/scriptexecutorinterface/IScriptExecutorConstants.aidl",
186 ],
187 path: "src",
188}