• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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