xref: /aosp_15_r20/system/update_engine/Android.bp (revision 5a9231315b4521097b8dc3750bc806fcafe0c72f)
1*5a923131SAndroid Build Coastguard Worker//
2*5a923131SAndroid Build Coastguard Worker// Copyright (C) 2015 The Android Open Source Project
3*5a923131SAndroid Build Coastguard Worker//
4*5a923131SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*5a923131SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*5a923131SAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*5a923131SAndroid Build Coastguard Worker//
8*5a923131SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*5a923131SAndroid Build Coastguard Worker//
10*5a923131SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*5a923131SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*5a923131SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*5a923131SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*5a923131SAndroid Build Coastguard Worker// limitations under the License.
15*5a923131SAndroid Build Coastguard Worker//
16*5a923131SAndroid Build Coastguard Worker
17*5a923131SAndroid Build Coastguard Worker// AIDL interface between libupdate_engine and framework.jar
18*5a923131SAndroid Build Coastguard Workerpackage {
19*5a923131SAndroid Build Coastguard Worker    default_applicable_licenses: ["system_update_engine_license"],
20*5a923131SAndroid Build Coastguard Worker}
21*5a923131SAndroid Build Coastguard Worker
22*5a923131SAndroid Build Coastguard Worker// Added automatically by a large-scale-change
23*5a923131SAndroid Build Coastguard Worker// See: http://go/android-license-faq
24*5a923131SAndroid Build Coastguard Workerlicense {
25*5a923131SAndroid Build Coastguard Worker    name: "system_update_engine_license",
26*5a923131SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
27*5a923131SAndroid Build Coastguard Worker    license_kinds: [
28*5a923131SAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
29*5a923131SAndroid Build Coastguard Worker    ],
30*5a923131SAndroid Build Coastguard Worker    license_text: [
31*5a923131SAndroid Build Coastguard Worker        "NOTICE",
32*5a923131SAndroid Build Coastguard Worker    ],
33*5a923131SAndroid Build Coastguard Worker}
34*5a923131SAndroid Build Coastguard Worker
35*5a923131SAndroid Build Coastguard Workerfilegroup {
36*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_aidl",
37*5a923131SAndroid Build Coastguard Worker    srcs: [
38*5a923131SAndroid Build Coastguard Worker        "binder_bindings/android/os/IUpdateEngine.aidl",
39*5a923131SAndroid Build Coastguard Worker        "binder_bindings/android/os/IUpdateEngineCallback.aidl",
40*5a923131SAndroid Build Coastguard Worker    ],
41*5a923131SAndroid Build Coastguard Worker    path: "binder_bindings",
42*5a923131SAndroid Build Coastguard Worker}
43*5a923131SAndroid Build Coastguard Worker
44*5a923131SAndroid Build Coastguard Workercc_defaults {
45*5a923131SAndroid Build Coastguard Worker    name: "ue_defaults",
46*5a923131SAndroid Build Coastguard Worker
47*5a923131SAndroid Build Coastguard Worker    cflags: [
48*5a923131SAndroid Build Coastguard Worker        "-DBASE_VER=576279",
49*5a923131SAndroid Build Coastguard Worker        "-DUSE_HWID_OVERRIDE=0",
50*5a923131SAndroid Build Coastguard Worker        "-D_FILE_OFFSET_BITS=64",
51*5a923131SAndroid Build Coastguard Worker        "-D_POSIX_C_SOURCE=199309L",
52*5a923131SAndroid Build Coastguard Worker        "-Wa,--noexecstack",
53*5a923131SAndroid Build Coastguard Worker        "-Wall",
54*5a923131SAndroid Build Coastguard Worker        "-Werror",
55*5a923131SAndroid Build Coastguard Worker        "-Wextra",
56*5a923131SAndroid Build Coastguard Worker        "-Wformat=2",
57*5a923131SAndroid Build Coastguard Worker        "-Wno-psabi",
58*5a923131SAndroid Build Coastguard Worker        "-Wno-unused-parameter",
59*5a923131SAndroid Build Coastguard Worker        "-ffunction-sections",
60*5a923131SAndroid Build Coastguard Worker        "-fstack-protector-strong",
61*5a923131SAndroid Build Coastguard Worker        "-fvisibility=hidden",
62*5a923131SAndroid Build Coastguard Worker        "-g3",
63*5a923131SAndroid Build Coastguard Worker    ],
64*5a923131SAndroid Build Coastguard Worker    cppflags: [
65*5a923131SAndroid Build Coastguard Worker        "-Wnon-virtual-dtor",
66*5a923131SAndroid Build Coastguard Worker        "-fno-strict-aliasing",
67*5a923131SAndroid Build Coastguard Worker    ],
68*5a923131SAndroid Build Coastguard Worker    include_dirs: ["system"],
69*5a923131SAndroid Build Coastguard Worker    local_include_dirs: ["client_library/include"],
70*5a923131SAndroid Build Coastguard Worker    header_libs: ["libgtest_prod_headers"],
71*5a923131SAndroid Build Coastguard Worker    shared_libs: [
72*5a923131SAndroid Build Coastguard Worker        "libbrillo-stream",
73*5a923131SAndroid Build Coastguard Worker        "libbrillo",
74*5a923131SAndroid Build Coastguard Worker        "libchrome",
75*5a923131SAndroid Build Coastguard Worker    ],
76*5a923131SAndroid Build Coastguard Worker    ldflags: ["-Wl,--gc-sections"],
77*5a923131SAndroid Build Coastguard Worker
78*5a923131SAndroid Build Coastguard Worker    target: {
79*5a923131SAndroid Build Coastguard Worker        android: {
80*5a923131SAndroid Build Coastguard Worker            cflags: [
81*5a923131SAndroid Build Coastguard Worker                "-DUSE_FEC=1",
82*5a923131SAndroid Build Coastguard Worker            ],
83*5a923131SAndroid Build Coastguard Worker            shared_libs: [
84*5a923131SAndroid Build Coastguard Worker                "libbase",
85*5a923131SAndroid Build Coastguard Worker            ],
86*5a923131SAndroid Build Coastguard Worker        },
87*5a923131SAndroid Build Coastguard Worker        host: {
88*5a923131SAndroid Build Coastguard Worker            cflags: [
89*5a923131SAndroid Build Coastguard Worker                "-DUSE_FEC=0",
90*5a923131SAndroid Build Coastguard Worker            ],
91*5a923131SAndroid Build Coastguard Worker        },
92*5a923131SAndroid Build Coastguard Worker        darwin: {
93*5a923131SAndroid Build Coastguard Worker            enabled: false,
94*5a923131SAndroid Build Coastguard Worker        },
95*5a923131SAndroid Build Coastguard Worker    },
96*5a923131SAndroid Build Coastguard Worker}
97*5a923131SAndroid Build Coastguard Worker
98*5a923131SAndroid Build Coastguard Worker// libcow_operation_convert (type: library)
99*5a923131SAndroid Build Coastguard Worker// ========================================================
100*5a923131SAndroid Build Coastguard Workercc_library_static {
101*5a923131SAndroid Build Coastguard Worker    name: "libpayload_extent_utils",
102*5a923131SAndroid Build Coastguard Worker    defaults: [
103*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
104*5a923131SAndroid Build Coastguard Worker    ],
105*5a923131SAndroid Build Coastguard Worker    host_supported: true,
106*5a923131SAndroid Build Coastguard Worker    recovery_available: true,
107*5a923131SAndroid Build Coastguard Worker    srcs: [
108*5a923131SAndroid Build Coastguard Worker        "payload_generator/extent_utils.cc",
109*5a923131SAndroid Build Coastguard Worker    ],
110*5a923131SAndroid Build Coastguard Worker    static_libs: [
111*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos",
112*5a923131SAndroid Build Coastguard Worker    ],
113*5a923131SAndroid Build Coastguard Worker}
114*5a923131SAndroid Build Coastguard Worker
115*5a923131SAndroid Build Coastguard Workercc_library {
116*5a923131SAndroid Build Coastguard Worker    name: "libcow_operation_convert",
117*5a923131SAndroid Build Coastguard Worker    host_supported: true,
118*5a923131SAndroid Build Coastguard Worker    recovery_available: true,
119*5a923131SAndroid Build Coastguard Worker    defaults: [
120*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
121*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos_exports",
122*5a923131SAndroid Build Coastguard Worker    ],
123*5a923131SAndroid Build Coastguard Worker    srcs: [
124*5a923131SAndroid Build Coastguard Worker        "common/cow_operation_convert.cc",
125*5a923131SAndroid Build Coastguard Worker    ],
126*5a923131SAndroid Build Coastguard Worker    static_libs: [
127*5a923131SAndroid Build Coastguard Worker        "libsnapshot_cow",
128*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos",
129*5a923131SAndroid Build Coastguard Worker        "libpayload_extent_ranges",
130*5a923131SAndroid Build Coastguard Worker        "libpayload_extent_utils",
131*5a923131SAndroid Build Coastguard Worker        "libbrotli",
132*5a923131SAndroid Build Coastguard Worker        "libz",
133*5a923131SAndroid Build Coastguard Worker    ],
134*5a923131SAndroid Build Coastguard Worker}
135*5a923131SAndroid Build Coastguard Worker
136*5a923131SAndroid Build Coastguard Worker// update_metadata-protos (type: static_library)
137*5a923131SAndroid Build Coastguard Worker// ========================================================
138*5a923131SAndroid Build Coastguard Worker// Protobufs.
139*5a923131SAndroid Build Coastguard Workercc_defaults {
140*5a923131SAndroid Build Coastguard Worker    name: "update_metadata-protos_exports",
141*5a923131SAndroid Build Coastguard Worker
142*5a923131SAndroid Build Coastguard Worker    shared_libs: ["libprotobuf-cpp-lite"],
143*5a923131SAndroid Build Coastguard Worker}
144*5a923131SAndroid Build Coastguard Worker
145*5a923131SAndroid Build Coastguard Workercc_defaults {
146*5a923131SAndroid Build Coastguard Worker    name: "update_metadata-protos-defaults",
147*5a923131SAndroid Build Coastguard Worker    host_supported: true,
148*5a923131SAndroid Build Coastguard Worker    ramdisk_available: true,
149*5a923131SAndroid Build Coastguard Worker    recovery_available: true,
150*5a923131SAndroid Build Coastguard Worker
151*5a923131SAndroid Build Coastguard Worker    srcs: ["update_engine/update_metadata.proto"],
152*5a923131SAndroid Build Coastguard Worker    cflags: [
153*5a923131SAndroid Build Coastguard Worker        "-Wall",
154*5a923131SAndroid Build Coastguard Worker        "-Werror",
155*5a923131SAndroid Build Coastguard Worker    ],
156*5a923131SAndroid Build Coastguard Worker    proto: {
157*5a923131SAndroid Build Coastguard Worker        canonical_path_from_root: false,
158*5a923131SAndroid Build Coastguard Worker        export_proto_headers: true,
159*5a923131SAndroid Build Coastguard Worker    },
160*5a923131SAndroid Build Coastguard Worker}
161*5a923131SAndroid Build Coastguard Worker
162*5a923131SAndroid Build Coastguard Workercc_library_static {
163*5a923131SAndroid Build Coastguard Worker    name: "update_metadata-protos",
164*5a923131SAndroid Build Coastguard Worker    defaults: ["update_metadata-protos-defaults"],
165*5a923131SAndroid Build Coastguard Worker    proto: {
166*5a923131SAndroid Build Coastguard Worker        type: "lite",
167*5a923131SAndroid Build Coastguard Worker    },
168*5a923131SAndroid Build Coastguard Worker}
169*5a923131SAndroid Build Coastguard Worker
170*5a923131SAndroid Build Coastguard Workercc_library_static {
171*5a923131SAndroid Build Coastguard Worker    name: "update_metadata-protos-full",
172*5a923131SAndroid Build Coastguard Worker    defaults: ["update_metadata-protos-defaults"],
173*5a923131SAndroid Build Coastguard Worker}
174*5a923131SAndroid Build Coastguard Worker
175*5a923131SAndroid Build Coastguard Workerpython_library_host {
176*5a923131SAndroid Build Coastguard Worker    name: "update_metadata-protos-python",
177*5a923131SAndroid Build Coastguard Worker    srcs: ["update_metadata.proto"],
178*5a923131SAndroid Build Coastguard Worker    proto: {
179*5a923131SAndroid Build Coastguard Worker        canonical_path_from_root: false,
180*5a923131SAndroid Build Coastguard Worker    },
181*5a923131SAndroid Build Coastguard Worker}
182*5a923131SAndroid Build Coastguard Worker
183*5a923131SAndroid Build Coastguard Worker// libpayload_consumer (type: static_library)
184*5a923131SAndroid Build Coastguard Worker// ========================================================
185*5a923131SAndroid Build Coastguard Worker// The payload application component and common dependencies.
186*5a923131SAndroid Build Coastguard Workercc_defaults {
187*5a923131SAndroid Build Coastguard Worker    name: "libpayload_consumer_exports_defaults",
188*5a923131SAndroid Build Coastguard Worker    defaults: ["update_metadata-protos_exports"],
189*5a923131SAndroid Build Coastguard Worker
190*5a923131SAndroid Build Coastguard Worker    static_libs: [
191*5a923131SAndroid Build Coastguard Worker        "libxz",
192*5a923131SAndroid Build Coastguard Worker        "libbz",
193*5a923131SAndroid Build Coastguard Worker        "libbspatch",
194*5a923131SAndroid Build Coastguard Worker        "libbrotli",
195*5a923131SAndroid Build Coastguard Worker        "libfec_rs",
196*5a923131SAndroid Build Coastguard Worker        "libpuffpatch",
197*5a923131SAndroid Build Coastguard Worker        "libverity_tree",
198*5a923131SAndroid Build Coastguard Worker        "libsnapshot_cow",
199*5a923131SAndroid Build Coastguard Worker        "libbrotli",
200*5a923131SAndroid Build Coastguard Worker        "libz",
201*5a923131SAndroid Build Coastguard Worker        "libpayload_extent_ranges",
202*5a923131SAndroid Build Coastguard Worker        "libpayload_extent_utils",
203*5a923131SAndroid Build Coastguard Worker        "libcow_operation_convert",
204*5a923131SAndroid Build Coastguard Worker        "lz4diff-protos",
205*5a923131SAndroid Build Coastguard Worker        "liblz4patch",
206*5a923131SAndroid Build Coastguard Worker        "libzstd",
207*5a923131SAndroid Build Coastguard Worker    ],
208*5a923131SAndroid Build Coastguard Worker    shared_libs: [
209*5a923131SAndroid Build Coastguard Worker        "libbase",
210*5a923131SAndroid Build Coastguard Worker        "libcrypto",
211*5a923131SAndroid Build Coastguard Worker        "libfec",
212*5a923131SAndroid Build Coastguard Worker        "liblz4",
213*5a923131SAndroid Build Coastguard Worker        "libziparchive",
214*5a923131SAndroid Build Coastguard Worker    ],
215*5a923131SAndroid Build Coastguard Worker}
216*5a923131SAndroid Build Coastguard Worker
217*5a923131SAndroid Build Coastguard Workercc_defaults {
218*5a923131SAndroid Build Coastguard Worker    name: "libpayload_consumer_exports",
219*5a923131SAndroid Build Coastguard Worker    defaults: [
220*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports_defaults",
221*5a923131SAndroid Build Coastguard Worker    ],
222*5a923131SAndroid Build Coastguard Worker    static_libs: ["update_metadata-protos"],
223*5a923131SAndroid Build Coastguard Worker}
224*5a923131SAndroid Build Coastguard Worker
225*5a923131SAndroid Build Coastguard Workercc_defaults {
226*5a923131SAndroid Build Coastguard Worker    name: "libpayload_consumer_exports_proto-full",
227*5a923131SAndroid Build Coastguard Worker    defaults: [
228*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports_defaults",
229*5a923131SAndroid Build Coastguard Worker    ],
230*5a923131SAndroid Build Coastguard Worker    static_libs: ["update_metadata-protos-full"],
231*5a923131SAndroid Build Coastguard Worker}
232*5a923131SAndroid Build Coastguard Worker
233*5a923131SAndroid Build Coastguard Workercc_defaults {
234*5a923131SAndroid Build Coastguard Worker    name: "libpayload_consumer_defaults",
235*5a923131SAndroid Build Coastguard Worker    host_supported: true,
236*5a923131SAndroid Build Coastguard Worker    recovery_available: true,
237*5a923131SAndroid Build Coastguard Worker
238*5a923131SAndroid Build Coastguard Worker    srcs: [
239*5a923131SAndroid Build Coastguard Worker        "aosp/platform_constants_android.cc",
240*5a923131SAndroid Build Coastguard Worker        "common/action_processor.cc",
241*5a923131SAndroid Build Coastguard Worker        "common/boot_control_stub.cc",
242*5a923131SAndroid Build Coastguard Worker        "common/clock.cc",
243*5a923131SAndroid Build Coastguard Worker        "common/constants.cc",
244*5a923131SAndroid Build Coastguard Worker        "common/cpu_limiter.cc",
245*5a923131SAndroid Build Coastguard Worker        "common/dynamic_partition_control_stub.cc",
246*5a923131SAndroid Build Coastguard Worker        "common/error_code_utils.cc",
247*5a923131SAndroid Build Coastguard Worker        "common/file_fetcher.cc",
248*5a923131SAndroid Build Coastguard Worker        "common/hash_calculator.cc",
249*5a923131SAndroid Build Coastguard Worker        "common/http_common.cc",
250*5a923131SAndroid Build Coastguard Worker        "common/http_fetcher.cc",
251*5a923131SAndroid Build Coastguard Worker        "common/hwid_override.cc",
252*5a923131SAndroid Build Coastguard Worker        "common/multi_range_http_fetcher.cc",
253*5a923131SAndroid Build Coastguard Worker        "common/prefs.cc",
254*5a923131SAndroid Build Coastguard Worker        "common/subprocess.cc",
255*5a923131SAndroid Build Coastguard Worker        "common/terminator.cc",
256*5a923131SAndroid Build Coastguard Worker        "common/utils.cc",
257*5a923131SAndroid Build Coastguard Worker        "payload_consumer/bzip_extent_writer.cc",
258*5a923131SAndroid Build Coastguard Worker        "payload_consumer/cached_file_descriptor.cc",
259*5a923131SAndroid Build Coastguard Worker        "payload_consumer/certificate_parser_android.cc",
260*5a923131SAndroid Build Coastguard Worker        "payload_consumer/cow_writer_file_descriptor.cc",
261*5a923131SAndroid Build Coastguard Worker        "payload_consumer/delta_performer.cc",
262*5a923131SAndroid Build Coastguard Worker        "payload_consumer/extent_reader.cc",
263*5a923131SAndroid Build Coastguard Worker        "payload_consumer/extent_writer.cc",
264*5a923131SAndroid Build Coastguard Worker        "payload_consumer/file_descriptor.cc",
265*5a923131SAndroid Build Coastguard Worker        "payload_consumer/file_descriptor_utils.cc",
266*5a923131SAndroid Build Coastguard Worker        "payload_consumer/file_writer.cc",
267*5a923131SAndroid Build Coastguard Worker        "payload_consumer/filesystem_verifier_action.cc",
268*5a923131SAndroid Build Coastguard Worker        "payload_consumer/install_operation_executor.cc",
269*5a923131SAndroid Build Coastguard Worker        "payload_consumer/install_plan.cc",
270*5a923131SAndroid Build Coastguard Worker        "payload_consumer/mount_history.cc",
271*5a923131SAndroid Build Coastguard Worker        "payload_consumer/payload_constants.cc",
272*5a923131SAndroid Build Coastguard Worker        "payload_consumer/payload_metadata.cc",
273*5a923131SAndroid Build Coastguard Worker        "payload_consumer/payload_verifier.cc",
274*5a923131SAndroid Build Coastguard Worker        "payload_consumer/partition_writer.cc",
275*5a923131SAndroid Build Coastguard Worker        "payload_consumer/partition_writer_factory_android.cc",
276*5a923131SAndroid Build Coastguard Worker        "payload_consumer/vabc_partition_writer.cc",
277*5a923131SAndroid Build Coastguard Worker        "payload_consumer/xor_extent_writer.cc",
278*5a923131SAndroid Build Coastguard Worker        "payload_consumer/block_extent_writer.cc",
279*5a923131SAndroid Build Coastguard Worker        "payload_consumer/snapshot_extent_writer.cc",
280*5a923131SAndroid Build Coastguard Worker        "payload_consumer/postinstall_runner_action.cc",
281*5a923131SAndroid Build Coastguard Worker        "payload_consumer/verified_source_fd.cc",
282*5a923131SAndroid Build Coastguard Worker        "payload_consumer/verity_writer_android.cc",
283*5a923131SAndroid Build Coastguard Worker        "payload_consumer/xz_extent_writer.cc",
284*5a923131SAndroid Build Coastguard Worker        "payload_consumer/fec_file_descriptor.cc",
285*5a923131SAndroid Build Coastguard Worker        "payload_consumer/partition_update_generator_android.cc",
286*5a923131SAndroid Build Coastguard Worker        "update_status_utils.cc",
287*5a923131SAndroid Build Coastguard Worker    ],
288*5a923131SAndroid Build Coastguard Worker}
289*5a923131SAndroid Build Coastguard Worker
290*5a923131SAndroid Build Coastguard Workercc_library_static {
291*5a923131SAndroid Build Coastguard Worker    name: "libpayload_consumer",
292*5a923131SAndroid Build Coastguard Worker    defaults: [
293*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
294*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports",
295*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_defaults",
296*5a923131SAndroid Build Coastguard Worker    ],
297*5a923131SAndroid Build Coastguard Worker}
298*5a923131SAndroid Build Coastguard Worker
299*5a923131SAndroid Build Coastguard Workercc_library_static {
300*5a923131SAndroid Build Coastguard Worker    name: "libpayload_consumer_proto-full",
301*5a923131SAndroid Build Coastguard Worker    defaults: [
302*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
303*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports_proto-full",
304*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_defaults",
305*5a923131SAndroid Build Coastguard Worker    ],
306*5a923131SAndroid Build Coastguard Worker}
307*5a923131SAndroid Build Coastguard Worker
308*5a923131SAndroid Build Coastguard Workercc_library_static {
309*5a923131SAndroid Build Coastguard Worker    name: "libstatslog_ue",
310*5a923131SAndroid Build Coastguard Worker    generated_sources: ["statslog_ue.cpp"],
311*5a923131SAndroid Build Coastguard Worker    generated_headers: ["statslog_ue.h"],
312*5a923131SAndroid Build Coastguard Worker    export_generated_headers: ["statslog_ue.h"],
313*5a923131SAndroid Build Coastguard Worker    shared_libs: [
314*5a923131SAndroid Build Coastguard Worker        "libstatssocket",
315*5a923131SAndroid Build Coastguard Worker    ],
316*5a923131SAndroid Build Coastguard Worker}
317*5a923131SAndroid Build Coastguard Worker
318*5a923131SAndroid Build Coastguard Workergenrule {
319*5a923131SAndroid Build Coastguard Worker    name: "statslog_ue.h",
320*5a923131SAndroid Build Coastguard Worker    tools: ["stats-log-api-gen"],
321*5a923131SAndroid Build Coastguard Worker    cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_ue.h --module update_engine --namespace chromeos_update_engine,statsd",
322*5a923131SAndroid Build Coastguard Worker    out: [
323*5a923131SAndroid Build Coastguard Worker        "statslog_ue.h",
324*5a923131SAndroid Build Coastguard Worker    ],
325*5a923131SAndroid Build Coastguard Worker}
326*5a923131SAndroid Build Coastguard Worker
327*5a923131SAndroid Build Coastguard Workergenrule {
328*5a923131SAndroid Build Coastguard Worker    name: "statslog_ue.cpp",
329*5a923131SAndroid Build Coastguard Worker    tools: ["stats-log-api-gen"],
330*5a923131SAndroid Build Coastguard Worker    cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_ue.cpp --module update_engine --namespace chromeos_update_engine,statsd --importHeader statslog_ue.h",
331*5a923131SAndroid Build Coastguard Worker    out: [
332*5a923131SAndroid Build Coastguard Worker        "statslog_ue.cpp",
333*5a923131SAndroid Build Coastguard Worker    ],
334*5a923131SAndroid Build Coastguard Worker}
335*5a923131SAndroid Build Coastguard Worker
336*5a923131SAndroid Build Coastguard Worker// libupdate_engine_boot_control (type: static_library)
337*5a923131SAndroid Build Coastguard Worker// ========================================================
338*5a923131SAndroid Build Coastguard Worker// A BootControl class implementation using Android's HIDL boot_control HAL.
339*5a923131SAndroid Build Coastguard Workercc_defaults {
340*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_boot_control_exports_defaults",
341*5a923131SAndroid Build Coastguard Worker    defaults: ["update_metadata-protos_exports"],
342*5a923131SAndroid Build Coastguard Worker
343*5a923131SAndroid Build Coastguard Worker    static_libs: [
344*5a923131SAndroid Build Coastguard Worker        "libcutils",
345*5a923131SAndroid Build Coastguard Worker        "libfs_mgr_binder",
346*5a923131SAndroid Build Coastguard Worker        "libgsi",
347*5a923131SAndroid Build Coastguard Worker        "libsnapshot_static",
348*5a923131SAndroid Build Coastguard Worker        "libstatslog_ue",
349*5a923131SAndroid Build Coastguard Worker        "libz",
350*5a923131SAndroid Build Coastguard Worker    ],
351*5a923131SAndroid Build Coastguard Worker    shared_libs: [
352*5a923131SAndroid Build Coastguard Worker        "libbootloader_message",
353*5a923131SAndroid Build Coastguard Worker        "libhidlbase",
354*5a923131SAndroid Build Coastguard Worker        "liblp",
355*5a923131SAndroid Build Coastguard Worker        "libutils",
356*5a923131SAndroid Build Coastguard Worker        "[email protected]",
357*5a923131SAndroid Build Coastguard Worker        "[email protected]",
358*5a923131SAndroid Build Coastguard Worker        "[email protected]",
359*5a923131SAndroid Build Coastguard Worker        "android.hardware.boot-V1-ndk",
360*5a923131SAndroid Build Coastguard Worker        "libboot_control_client",
361*5a923131SAndroid Build Coastguard Worker    ],
362*5a923131SAndroid Build Coastguard Worker    header_libs: [
363*5a923131SAndroid Build Coastguard Worker        "avb_headers",
364*5a923131SAndroid Build Coastguard Worker    ],
365*5a923131SAndroid Build Coastguard Worker    target: {
366*5a923131SAndroid Build Coastguard Worker        recovery: {
367*5a923131SAndroid Build Coastguard Worker            static_libs: [
368*5a923131SAndroid Build Coastguard Worker                "libfs_mgr",
369*5a923131SAndroid Build Coastguard Worker                "libsnapshot_nobinder",
370*5a923131SAndroid Build Coastguard Worker            ],
371*5a923131SAndroid Build Coastguard Worker            exclude_static_libs: [
372*5a923131SAndroid Build Coastguard Worker                "libfs_mgr_binder",
373*5a923131SAndroid Build Coastguard Worker                "libsnapshot_static",
374*5a923131SAndroid Build Coastguard Worker                "libstatslog_ue",
375*5a923131SAndroid Build Coastguard Worker            ],
376*5a923131SAndroid Build Coastguard Worker        },
377*5a923131SAndroid Build Coastguard Worker    },
378*5a923131SAndroid Build Coastguard Worker}
379*5a923131SAndroid Build Coastguard Worker
380*5a923131SAndroid Build Coastguard Workercc_defaults {
381*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_boot_control_exports",
382*5a923131SAndroid Build Coastguard Worker    defaults: [
383*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control_exports_defaults",
384*5a923131SAndroid Build Coastguard Worker    ],
385*5a923131SAndroid Build Coastguard Worker    static_libs: [
386*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer",
387*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos",
388*5a923131SAndroid Build Coastguard Worker    ],
389*5a923131SAndroid Build Coastguard Worker}
390*5a923131SAndroid Build Coastguard Worker
391*5a923131SAndroid Build Coastguard Workercc_defaults {
392*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_boot_control_exports_proto-full",
393*5a923131SAndroid Build Coastguard Worker    defaults: [
394*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control_exports_defaults",
395*5a923131SAndroid Build Coastguard Worker    ],
396*5a923131SAndroid Build Coastguard Worker    static_libs: [
397*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_proto-full",
398*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos-full",
399*5a923131SAndroid Build Coastguard Worker    ],
400*5a923131SAndroid Build Coastguard Worker}
401*5a923131SAndroid Build Coastguard Worker
402*5a923131SAndroid Build Coastguard Workercc_defaults {
403*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_boot_control_defaults",
404*5a923131SAndroid Build Coastguard Worker    defaults: [
405*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
406*5a923131SAndroid Build Coastguard Worker    ],
407*5a923131SAndroid Build Coastguard Worker    recovery_available: true,
408*5a923131SAndroid Build Coastguard Worker
409*5a923131SAndroid Build Coastguard Worker    srcs: [
410*5a923131SAndroid Build Coastguard Worker        "aosp/boot_control_android.cc",
411*5a923131SAndroid Build Coastguard Worker        "aosp/cleanup_previous_update_action.cc",
412*5a923131SAndroid Build Coastguard Worker        "aosp/dynamic_partition_control_android.cc",
413*5a923131SAndroid Build Coastguard Worker        "aosp/dynamic_partition_utils.cc",
414*5a923131SAndroid Build Coastguard Worker    ],
415*5a923131SAndroid Build Coastguard Worker}
416*5a923131SAndroid Build Coastguard Worker
417*5a923131SAndroid Build Coastguard Workercc_library_static {
418*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_boot_control",
419*5a923131SAndroid Build Coastguard Worker    defaults: [
420*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control_defaults",
421*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control_exports",
422*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports",
423*5a923131SAndroid Build Coastguard Worker    ],
424*5a923131SAndroid Build Coastguard Worker}
425*5a923131SAndroid Build Coastguard Worker
426*5a923131SAndroid Build Coastguard Workercc_library_static {
427*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_boot_control_nostats",
428*5a923131SAndroid Build Coastguard Worker    cflags: ["-DUE_DISABLE_STATS"],
429*5a923131SAndroid Build Coastguard Worker    defaults: [
430*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control_defaults",
431*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control_exports",
432*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports",
433*5a923131SAndroid Build Coastguard Worker    ],
434*5a923131SAndroid Build Coastguard Worker}
435*5a923131SAndroid Build Coastguard Worker
436*5a923131SAndroid Build Coastguard Workercc_library_static {
437*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_boot_control_proto-full",
438*5a923131SAndroid Build Coastguard Worker    defaults: [
439*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control_defaults",
440*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control_exports_proto-full",
441*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports_proto-full",
442*5a923131SAndroid Build Coastguard Worker    ],
443*5a923131SAndroid Build Coastguard Worker}
444*5a923131SAndroid Build Coastguard Worker
445*5a923131SAndroid Build Coastguard Worker// libupdate_engine_android (type: static_library)
446*5a923131SAndroid Build Coastguard Worker// ========================================================
447*5a923131SAndroid Build Coastguard Worker// The main daemon static_library used in Android (non-Brillo). This only has a
448*5a923131SAndroid Build Coastguard Worker// loop to apply payloads provided by the upper layer via a Binder interface.
449*5a923131SAndroid Build Coastguard Workercc_defaults {
450*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_android_exports_defaults",
451*5a923131SAndroid Build Coastguard Worker    defaults: [
452*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
453*5a923131SAndroid Build Coastguard Worker    ],
454*5a923131SAndroid Build Coastguard Worker
455*5a923131SAndroid Build Coastguard Worker    static_libs: [
456*5a923131SAndroid Build Coastguard Worker        "libavb",
457*5a923131SAndroid Build Coastguard Worker        "libavb_user",
458*5a923131SAndroid Build Coastguard Worker        "libgkiprops",
459*5a923131SAndroid Build Coastguard Worker        "libstatslog_ue",
460*5a923131SAndroid Build Coastguard Worker        "libPlatformProperties",
461*5a923131SAndroid Build Coastguard Worker    ],
462*5a923131SAndroid Build Coastguard Worker    shared_libs: [
463*5a923131SAndroid Build Coastguard Worker        "apex_aidl_interface-cpp",
464*5a923131SAndroid Build Coastguard Worker        "libandroid_net",
465*5a923131SAndroid Build Coastguard Worker        "libbase",
466*5a923131SAndroid Build Coastguard Worker        "libbinder",
467*5a923131SAndroid Build Coastguard Worker        "libbinderwrapper",
468*5a923131SAndroid Build Coastguard Worker        "libbootloader_message",
469*5a923131SAndroid Build Coastguard Worker        "libbrillo-binder",
470*5a923131SAndroid Build Coastguard Worker        "libcurl",
471*5a923131SAndroid Build Coastguard Worker        "libcutils",
472*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_stable-V3-cpp",
473*5a923131SAndroid Build Coastguard Worker        "liblog",
474*5a923131SAndroid Build Coastguard Worker        "libssl",
475*5a923131SAndroid Build Coastguard Worker        "libstatssocket",
476*5a923131SAndroid Build Coastguard Worker        "libutils",
477*5a923131SAndroid Build Coastguard Worker    ],
478*5a923131SAndroid Build Coastguard Worker    whole_static_libs: [
479*5a923131SAndroid Build Coastguard Worker        "libcom.android.sysprop.apex",
480*5a923131SAndroid Build Coastguard Worker    ],
481*5a923131SAndroid Build Coastguard Worker}
482*5a923131SAndroid Build Coastguard Worker
483*5a923131SAndroid Build Coastguard Workercc_defaults {
484*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_android_exports",
485*5a923131SAndroid Build Coastguard Worker    defaults: [
486*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android_exports_defaults",
487*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control_exports",
488*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports",
489*5a923131SAndroid Build Coastguard Worker    ],
490*5a923131SAndroid Build Coastguard Worker    static_libs: [
491*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer",
492*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control",
493*5a923131SAndroid Build Coastguard Worker    ],
494*5a923131SAndroid Build Coastguard Worker}
495*5a923131SAndroid Build Coastguard Worker
496*5a923131SAndroid Build Coastguard Workercc_defaults {
497*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_android_exports_proto-full",
498*5a923131SAndroid Build Coastguard Worker    defaults: [
499*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android_exports_defaults",
500*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control_exports_proto-full",
501*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports_proto-full",
502*5a923131SAndroid Build Coastguard Worker    ],
503*5a923131SAndroid Build Coastguard Worker    static_libs: [
504*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_proto-full",
505*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control_proto-full",
506*5a923131SAndroid Build Coastguard Worker    ],
507*5a923131SAndroid Build Coastguard Worker}
508*5a923131SAndroid Build Coastguard Worker
509*5a923131SAndroid Build Coastguard Workeraidl_interface {
510*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_aidl_interface",
511*5a923131SAndroid Build Coastguard Worker    srcs: [
512*5a923131SAndroid Build Coastguard Worker        ":libupdate_engine_aidl",
513*5a923131SAndroid Build Coastguard Worker    ],
514*5a923131SAndroid Build Coastguard Worker    backend: {
515*5a923131SAndroid Build Coastguard Worker        cpp: {
516*5a923131SAndroid Build Coastguard Worker            enabled: false,
517*5a923131SAndroid Build Coastguard Worker        },
518*5a923131SAndroid Build Coastguard Worker        java: {
519*5a923131SAndroid Build Coastguard Worker            enabled: false,
520*5a923131SAndroid Build Coastguard Worker        },
521*5a923131SAndroid Build Coastguard Worker        ndk: {
522*5a923131SAndroid Build Coastguard Worker            enabled: false,
523*5a923131SAndroid Build Coastguard Worker        },
524*5a923131SAndroid Build Coastguard Worker        rust: {
525*5a923131SAndroid Build Coastguard Worker            enabled: true,
526*5a923131SAndroid Build Coastguard Worker        },
527*5a923131SAndroid Build Coastguard Worker    },
528*5a923131SAndroid Build Coastguard Worker    frozen: false,
529*5a923131SAndroid Build Coastguard Worker    unstable: true,
530*5a923131SAndroid Build Coastguard Worker}
531*5a923131SAndroid Build Coastguard Worker
532*5a923131SAndroid Build Coastguard Workercc_defaults {
533*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_android_defaults",
534*5a923131SAndroid Build Coastguard Worker    defaults: [
535*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
536*5a923131SAndroid Build Coastguard Worker    ],
537*5a923131SAndroid Build Coastguard Worker
538*5a923131SAndroid Build Coastguard Worker    aidl: {
539*5a923131SAndroid Build Coastguard Worker        local_include_dirs: ["binder_bindings"],
540*5a923131SAndroid Build Coastguard Worker        export_aidl_headers: true,
541*5a923131SAndroid Build Coastguard Worker    },
542*5a923131SAndroid Build Coastguard Worker
543*5a923131SAndroid Build Coastguard Worker    srcs: [
544*5a923131SAndroid Build Coastguard Worker        ":libupdate_engine_aidl",
545*5a923131SAndroid Build Coastguard Worker        "common/system_state.cc",
546*5a923131SAndroid Build Coastguard Worker        "aosp/apex_handler_android.cc",
547*5a923131SAndroid Build Coastguard Worker        "aosp/binder_service_android.cc",
548*5a923131SAndroid Build Coastguard Worker        "aosp/binder_service_stable_android.cc",
549*5a923131SAndroid Build Coastguard Worker        "aosp/daemon_android.cc",
550*5a923131SAndroid Build Coastguard Worker        "aosp/daemon_state_android.cc",
551*5a923131SAndroid Build Coastguard Worker        "aosp/hardware_android.cc",
552*5a923131SAndroid Build Coastguard Worker        "aosp/logging_android.cc",
553*5a923131SAndroid Build Coastguard Worker        "aosp/network_selector_android.cc",
554*5a923131SAndroid Build Coastguard Worker        "aosp/update_attempter_android.cc",
555*5a923131SAndroid Build Coastguard Worker        "certificate_checker.cc",
556*5a923131SAndroid Build Coastguard Worker        "download_action.cc",
557*5a923131SAndroid Build Coastguard Worker        "libcurl_http_fetcher.cc",
558*5a923131SAndroid Build Coastguard Worker        "metrics_utils.cc",
559*5a923131SAndroid Build Coastguard Worker        "update_boot_flags_action.cc",
560*5a923131SAndroid Build Coastguard Worker    ],
561*5a923131SAndroid Build Coastguard Worker}
562*5a923131SAndroid Build Coastguard Worker
563*5a923131SAndroid Build Coastguard Workercc_library_static {
564*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_android",
565*5a923131SAndroid Build Coastguard Worker    defaults: [
566*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android_defaults",
567*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android_exports",
568*5a923131SAndroid Build Coastguard Worker    ],
569*5a923131SAndroid Build Coastguard Worker}
570*5a923131SAndroid Build Coastguard Worker
571*5a923131SAndroid Build Coastguard Workercc_library_static {
572*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_android_proto-full",
573*5a923131SAndroid Build Coastguard Worker    defaults: [
574*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android_defaults",
575*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android_exports_proto-full",
576*5a923131SAndroid Build Coastguard Worker    ],
577*5a923131SAndroid Build Coastguard Worker}
578*5a923131SAndroid Build Coastguard Worker
579*5a923131SAndroid Build Coastguard Worker// update_engine (type: executable)
580*5a923131SAndroid Build Coastguard Worker// ========================================================
581*5a923131SAndroid Build Coastguard Worker// update_engine daemon.
582*5a923131SAndroid Build Coastguard Workercc_binary {
583*5a923131SAndroid Build Coastguard Worker    name: "update_engine",
584*5a923131SAndroid Build Coastguard Worker    defaults: [
585*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
586*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android_exports",
587*5a923131SAndroid Build Coastguard Worker    ],
588*5a923131SAndroid Build Coastguard Worker
589*5a923131SAndroid Build Coastguard Worker    static_libs: [
590*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android",
591*5a923131SAndroid Build Coastguard Worker        "libgflags",
592*5a923131SAndroid Build Coastguard Worker    ],
593*5a923131SAndroid Build Coastguard Worker    required: [
594*5a923131SAndroid Build Coastguard Worker        "cacerts",
595*5a923131SAndroid Build Coastguard Worker        "otacerts",
596*5a923131SAndroid Build Coastguard Worker    ],
597*5a923131SAndroid Build Coastguard Worker
598*5a923131SAndroid Build Coastguard Worker    srcs: [
599*5a923131SAndroid Build Coastguard Worker        "main.cc",
600*5a923131SAndroid Build Coastguard Worker        "aosp/metrics_reporter_android.cc",
601*5a923131SAndroid Build Coastguard Worker    ],
602*5a923131SAndroid Build Coastguard Worker    init_rc: ["update_engine.rc"],
603*5a923131SAndroid Build Coastguard Worker}
604*5a923131SAndroid Build Coastguard Worker
605*5a923131SAndroid Build Coastguard Worker// update_engine_nostats (type: executable)
606*5a923131SAndroid Build Coastguard Worker// ========================================================
607*5a923131SAndroid Build Coastguard Worker// update_engine daemon version without the stats integration.
608*5a923131SAndroid Build Coastguard Workercc_binary {
609*5a923131SAndroid Build Coastguard Worker    name: "update_engine_nostats",
610*5a923131SAndroid Build Coastguard Worker    defaults: [
611*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
612*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android_exports",
613*5a923131SAndroid Build Coastguard Worker    ],
614*5a923131SAndroid Build Coastguard Worker
615*5a923131SAndroid Build Coastguard Worker    static_libs: [
616*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android",
617*5a923131SAndroid Build Coastguard Worker        "libgflags",
618*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control_nostats",
619*5a923131SAndroid Build Coastguard Worker    ],
620*5a923131SAndroid Build Coastguard Worker    required: [
621*5a923131SAndroid Build Coastguard Worker        "cacerts",
622*5a923131SAndroid Build Coastguard Worker        "otacerts",
623*5a923131SAndroid Build Coastguard Worker    ],
624*5a923131SAndroid Build Coastguard Worker
625*5a923131SAndroid Build Coastguard Worker    exclude_static_libs: [
626*5a923131SAndroid Build Coastguard Worker        "libstatslog_ue",
627*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control",
628*5a923131SAndroid Build Coastguard Worker    ],
629*5a923131SAndroid Build Coastguard Worker
630*5a923131SAndroid Build Coastguard Worker    exclude_shared_libs: [
631*5a923131SAndroid Build Coastguard Worker        "libstatssocket",
632*5a923131SAndroid Build Coastguard Worker    ],
633*5a923131SAndroid Build Coastguard Worker
634*5a923131SAndroid Build Coastguard Worker    cflags: ["-DUE_DISABLE_STATS"],
635*5a923131SAndroid Build Coastguard Worker    srcs: [
636*5a923131SAndroid Build Coastguard Worker        "main.cc",
637*5a923131SAndroid Build Coastguard Worker        "common/metrics_reporter_stub.cc",
638*5a923131SAndroid Build Coastguard Worker    ],
639*5a923131SAndroid Build Coastguard Worker    init_rc: ["update_engine_nostats.rc"],
640*5a923131SAndroid Build Coastguard Worker}
641*5a923131SAndroid Build Coastguard Worker
642*5a923131SAndroid Build Coastguard Worker// update_engine_sideload (type: executable)
643*5a923131SAndroid Build Coastguard Worker// ========================================================
644*5a923131SAndroid Build Coastguard Worker// A binary executable equivalent to update_engine daemon that installs an update
645*5a923131SAndroid Build Coastguard Worker// from a local file directly instead of running in the background. Used in
646*5a923131SAndroid Build Coastguard Worker// recovery image.
647*5a923131SAndroid Build Coastguard Workercc_binary {
648*5a923131SAndroid Build Coastguard Worker    name: "update_engine_sideload",
649*5a923131SAndroid Build Coastguard Worker    defaults: [
650*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
651*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos_exports",
652*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control_exports",
653*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports",
654*5a923131SAndroid Build Coastguard Worker    ],
655*5a923131SAndroid Build Coastguard Worker    recovery: true,
656*5a923131SAndroid Build Coastguard Worker
657*5a923131SAndroid Build Coastguard Worker    cflags: [
658*5a923131SAndroid Build Coastguard Worker        "-D_UE_SIDELOAD",
659*5a923131SAndroid Build Coastguard Worker        "-DUE_DISABLE_STATS",
660*5a923131SAndroid Build Coastguard Worker    ],
661*5a923131SAndroid Build Coastguard Worker    header_libs: ["libgtest_prod_headers"],
662*5a923131SAndroid Build Coastguard Worker
663*5a923131SAndroid Build Coastguard Worker    srcs: [
664*5a923131SAndroid Build Coastguard Worker        "aosp/hardware_android.cc",
665*5a923131SAndroid Build Coastguard Worker        "aosp/logging_android.cc",
666*5a923131SAndroid Build Coastguard Worker        "aosp/sideload_main.cc",
667*5a923131SAndroid Build Coastguard Worker        "aosp/update_attempter_android.cc",
668*5a923131SAndroid Build Coastguard Worker        "common/metrics_reporter_stub.cc",
669*5a923131SAndroid Build Coastguard Worker        "common/network_selector_stub.cc",
670*5a923131SAndroid Build Coastguard Worker        "common/system_state.cc",
671*5a923131SAndroid Build Coastguard Worker        "download_action.cc",
672*5a923131SAndroid Build Coastguard Worker        "metrics_utils.cc",
673*5a923131SAndroid Build Coastguard Worker        "update_boot_flags_action.cc",
674*5a923131SAndroid Build Coastguard Worker        "update_status_utils.cc",
675*5a923131SAndroid Build Coastguard Worker    ],
676*5a923131SAndroid Build Coastguard Worker
677*5a923131SAndroid Build Coastguard Worker    // Use commonly used shared libraries. libprotobuf-cpp-lite.so is filtered out,
678*5a923131SAndroid Build Coastguard Worker    // as it doesn't look beneficial to be installed separately due to its size. Note
679*5a923131SAndroid Build Coastguard Worker    // that we explicitly request their recovery variants, so that the expected files
680*5a923131SAndroid Build Coastguard Worker    // will be used and installed.
681*5a923131SAndroid Build Coastguard Worker    shared_libs: [
682*5a923131SAndroid Build Coastguard Worker        "libbase",
683*5a923131SAndroid Build Coastguard Worker        "liblog",
684*5a923131SAndroid Build Coastguard Worker        "liblz4",
685*5a923131SAndroid Build Coastguard Worker        "libprotobuf-cpp-lite",
686*5a923131SAndroid Build Coastguard Worker    ],
687*5a923131SAndroid Build Coastguard Worker    static_libs: [
688*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer",
689*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_boot_control",
690*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos",
691*5a923131SAndroid Build Coastguard Worker
692*5a923131SAndroid Build Coastguard Worker        // We add the static versions of the shared libraries that are not installed to
693*5a923131SAndroid Build Coastguard Worker        // recovery image due to size concerns. Need to include all the static library
694*5a923131SAndroid Build Coastguard Worker        // dependencies of these static libraries.
695*5a923131SAndroid Build Coastguard Worker        "libgkiprops",
696*5a923131SAndroid Build Coastguard Worker        "libevent",
697*5a923131SAndroid Build Coastguard Worker        "libmodpb64",
698*5a923131SAndroid Build Coastguard Worker        "libbrillo-stream",
699*5a923131SAndroid Build Coastguard Worker        "libbrillo",
700*5a923131SAndroid Build Coastguard Worker        "libchrome",
701*5a923131SAndroid Build Coastguard Worker    ],
702*5a923131SAndroid Build Coastguard Worker    target: {
703*5a923131SAndroid Build Coastguard Worker        recovery: {
704*5a923131SAndroid Build Coastguard Worker            exclude_shared_libs: [
705*5a923131SAndroid Build Coastguard Worker                "libbrillo-stream",
706*5a923131SAndroid Build Coastguard Worker                "libbrillo",
707*5a923131SAndroid Build Coastguard Worker                "libchrome",
708*5a923131SAndroid Build Coastguard Worker            ],
709*5a923131SAndroid Build Coastguard Worker        },
710*5a923131SAndroid Build Coastguard Worker    },
711*5a923131SAndroid Build Coastguard Worker
712*5a923131SAndroid Build Coastguard Worker    required: [
713*5a923131SAndroid Build Coastguard Worker        "otacerts.recovery",
714*5a923131SAndroid Build Coastguard Worker    ],
715*5a923131SAndroid Build Coastguard Worker}
716*5a923131SAndroid Build Coastguard Worker
717*5a923131SAndroid Build Coastguard Worker// update_engine_client (type: executable)
718*5a923131SAndroid Build Coastguard Worker// ========================================================
719*5a923131SAndroid Build Coastguard Worker// update_engine console client.
720*5a923131SAndroid Build Coastguard Workercc_binary {
721*5a923131SAndroid Build Coastguard Worker    name: "update_engine_client",
722*5a923131SAndroid Build Coastguard Worker    defaults: ["ue_defaults"],
723*5a923131SAndroid Build Coastguard Worker
724*5a923131SAndroid Build Coastguard Worker    shared_libs: [
725*5a923131SAndroid Build Coastguard Worker        "libbinder",
726*5a923131SAndroid Build Coastguard Worker        "libbinderwrapper",
727*5a923131SAndroid Build Coastguard Worker        "libbrillo-binder",
728*5a923131SAndroid Build Coastguard Worker        "libutils",
729*5a923131SAndroid Build Coastguard Worker    ],
730*5a923131SAndroid Build Coastguard Worker
731*5a923131SAndroid Build Coastguard Worker    aidl: {
732*5a923131SAndroid Build Coastguard Worker        local_include_dirs: ["binder_bindings"],
733*5a923131SAndroid Build Coastguard Worker    },
734*5a923131SAndroid Build Coastguard Worker
735*5a923131SAndroid Build Coastguard Worker    srcs: [
736*5a923131SAndroid Build Coastguard Worker        ":libupdate_engine_aidl",
737*5a923131SAndroid Build Coastguard Worker        "aosp/update_engine_client_android.cc",
738*5a923131SAndroid Build Coastguard Worker        "common/error_code_utils.cc",
739*5a923131SAndroid Build Coastguard Worker        "update_status_utils.cc",
740*5a923131SAndroid Build Coastguard Worker    ],
741*5a923131SAndroid Build Coastguard Worker}
742*5a923131SAndroid Build Coastguard Worker
743*5a923131SAndroid Build Coastguard Worker// libpayload_generator (type: static_library)
744*5a923131SAndroid Build Coastguard Worker// ========================================================
745*5a923131SAndroid Build Coastguard Worker// server-side code. This is used for delta_generator and unittests but not
746*5a923131SAndroid Build Coastguard Worker// for any client code.
747*5a923131SAndroid Build Coastguard Workercc_defaults {
748*5a923131SAndroid Build Coastguard Worker    name: "libpayload_generator_exports",
749*5a923131SAndroid Build Coastguard Worker    defaults: [
750*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports",
751*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos_exports",
752*5a923131SAndroid Build Coastguard Worker        "erofs-utils_export_defaults",
753*5a923131SAndroid Build Coastguard Worker    ],
754*5a923131SAndroid Build Coastguard Worker
755*5a923131SAndroid Build Coastguard Worker    header_libs: [
756*5a923131SAndroid Build Coastguard Worker        "bootimg_headers",
757*5a923131SAndroid Build Coastguard Worker    ],
758*5a923131SAndroid Build Coastguard Worker    static_libs: [
759*5a923131SAndroid Build Coastguard Worker        "libavb",
760*5a923131SAndroid Build Coastguard Worker        "libbrotli",
761*5a923131SAndroid Build Coastguard Worker        "libbsdiff",
762*5a923131SAndroid Build Coastguard Worker        "libdivsufsort",
763*5a923131SAndroid Build Coastguard Worker        "libdivsufsort64",
764*5a923131SAndroid Build Coastguard Worker        "liblzma",
765*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer",
766*5a923131SAndroid Build Coastguard Worker        "libpuffdiff",
767*5a923131SAndroid Build Coastguard Worker        "libzucchini",
768*5a923131SAndroid Build Coastguard Worker        "libverity_tree",
769*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos",
770*5a923131SAndroid Build Coastguard Worker        "libpayload_extent_utils",
771*5a923131SAndroid Build Coastguard Worker        "libcow_size_estimator",
772*5a923131SAndroid Build Coastguard Worker        "liberofs",
773*5a923131SAndroid Build Coastguard Worker        "libselinux",
774*5a923131SAndroid Build Coastguard Worker        "lz4diff-protos",
775*5a923131SAndroid Build Coastguard Worker        "liblz4diff",
776*5a923131SAndroid Build Coastguard Worker        "libzstd",
777*5a923131SAndroid Build Coastguard Worker    ],
778*5a923131SAndroid Build Coastguard Worker    shared_libs: [
779*5a923131SAndroid Build Coastguard Worker        "libbase",
780*5a923131SAndroid Build Coastguard Worker        "libext2fs",
781*5a923131SAndroid Build Coastguard Worker        // LZ4 has to be a shared lib, as we want to override it with
782*5a923131SAndroid Build Coastguard Worker        // LD_LIBRARY_PRELOAD later
783*5a923131SAndroid Build Coastguard Worker        "liblz4",
784*5a923131SAndroid Build Coastguard Worker    ],
785*5a923131SAndroid Build Coastguard Worker}
786*5a923131SAndroid Build Coastguard Worker
787*5a923131SAndroid Build Coastguard Workercc_library_static {
788*5a923131SAndroid Build Coastguard Worker    name: "libpayload_extent_ranges",
789*5a923131SAndroid Build Coastguard Worker    defaults: [
790*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
791*5a923131SAndroid Build Coastguard Worker    ],
792*5a923131SAndroid Build Coastguard Worker    host_supported: true,
793*5a923131SAndroid Build Coastguard Worker    recovery_available: true,
794*5a923131SAndroid Build Coastguard Worker    srcs: [
795*5a923131SAndroid Build Coastguard Worker        "payload_generator/extent_ranges.cc",
796*5a923131SAndroid Build Coastguard Worker    ],
797*5a923131SAndroid Build Coastguard Worker    static_libs: [
798*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos",
799*5a923131SAndroid Build Coastguard Worker    ],
800*5a923131SAndroid Build Coastguard Worker}
801*5a923131SAndroid Build Coastguard Worker
802*5a923131SAndroid Build Coastguard Workercc_library_static {
803*5a923131SAndroid Build Coastguard Worker    name: "libcow_size_estimator",
804*5a923131SAndroid Build Coastguard Worker    defaults: [
805*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
806*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos_exports",
807*5a923131SAndroid Build Coastguard Worker    ],
808*5a923131SAndroid Build Coastguard Worker    host_supported: true,
809*5a923131SAndroid Build Coastguard Worker    recovery_available: true,
810*5a923131SAndroid Build Coastguard Worker    srcs: [
811*5a923131SAndroid Build Coastguard Worker        "payload_generator/cow_size_estimator.cc",
812*5a923131SAndroid Build Coastguard Worker    ],
813*5a923131SAndroid Build Coastguard Worker    static_libs: [
814*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos",
815*5a923131SAndroid Build Coastguard Worker        "libbase",
816*5a923131SAndroid Build Coastguard Worker        "libsnapshot_cow",
817*5a923131SAndroid Build Coastguard Worker        "libcow_operation_convert",
818*5a923131SAndroid Build Coastguard Worker    ],
819*5a923131SAndroid Build Coastguard Worker}
820*5a923131SAndroid Build Coastguard Worker
821*5a923131SAndroid Build Coastguard Workercc_defaults {
822*5a923131SAndroid Build Coastguard Worker    name: "liblz4diff_defaults",
823*5a923131SAndroid Build Coastguard Worker    static_libs: [
824*5a923131SAndroid Build Coastguard Worker        "lz4diff-protos",
825*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos",
826*5a923131SAndroid Build Coastguard Worker        "libssl",
827*5a923131SAndroid Build Coastguard Worker        "libbsdiff",
828*5a923131SAndroid Build Coastguard Worker        "libpuffdiff",
829*5a923131SAndroid Build Coastguard Worker    ],
830*5a923131SAndroid Build Coastguard Worker    shared_libs: [
831*5a923131SAndroid Build Coastguard Worker        "liblz4",
832*5a923131SAndroid Build Coastguard Worker    ],
833*5a923131SAndroid Build Coastguard Worker}
834*5a923131SAndroid Build Coastguard Worker
835*5a923131SAndroid Build Coastguard Workercc_library_static {
836*5a923131SAndroid Build Coastguard Worker    name: "liblz4diff",
837*5a923131SAndroid Build Coastguard Worker    host_supported: true,
838*5a923131SAndroid Build Coastguard Worker    defaults: [
839*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
840*5a923131SAndroid Build Coastguard Worker        "liblz4diff_defaults",
841*5a923131SAndroid Build Coastguard Worker    ],
842*5a923131SAndroid Build Coastguard Worker    srcs: [
843*5a923131SAndroid Build Coastguard Worker        "lz4diff/lz4diff.cc",
844*5a923131SAndroid Build Coastguard Worker        "lz4diff/lz4diff_compress.cc",
845*5a923131SAndroid Build Coastguard Worker    ],
846*5a923131SAndroid Build Coastguard Worker}
847*5a923131SAndroid Build Coastguard Worker
848*5a923131SAndroid Build Coastguard Workercc_library_static {
849*5a923131SAndroid Build Coastguard Worker    name: "liblz4patch",
850*5a923131SAndroid Build Coastguard Worker    host_supported: true,
851*5a923131SAndroid Build Coastguard Worker    recovery_available: true,
852*5a923131SAndroid Build Coastguard Worker    defaults: ["ue_defaults"],
853*5a923131SAndroid Build Coastguard Worker    static_libs: [
854*5a923131SAndroid Build Coastguard Worker        "lz4diff-protos",
855*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos",
856*5a923131SAndroid Build Coastguard Worker        "libssl",
857*5a923131SAndroid Build Coastguard Worker        "libbspatch",
858*5a923131SAndroid Build Coastguard Worker        "libpuffpatch",
859*5a923131SAndroid Build Coastguard Worker    ],
860*5a923131SAndroid Build Coastguard Worker    shared_libs: [
861*5a923131SAndroid Build Coastguard Worker        "liblz4",
862*5a923131SAndroid Build Coastguard Worker    ],
863*5a923131SAndroid Build Coastguard Worker    srcs: [
864*5a923131SAndroid Build Coastguard Worker        "lz4diff/lz4patch.cc",
865*5a923131SAndroid Build Coastguard Worker        "lz4diff/lz4diff_compress.cc",
866*5a923131SAndroid Build Coastguard Worker    ],
867*5a923131SAndroid Build Coastguard Worker}
868*5a923131SAndroid Build Coastguard Worker
869*5a923131SAndroid Build Coastguard Workercc_binary_host {
870*5a923131SAndroid Build Coastguard Worker    name: "lz4diff",
871*5a923131SAndroid Build Coastguard Worker    defaults: [
872*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
873*5a923131SAndroid Build Coastguard Worker        "libpayload_generator_exports",
874*5a923131SAndroid Build Coastguard Worker    ],
875*5a923131SAndroid Build Coastguard Worker    static_libs: [
876*5a923131SAndroid Build Coastguard Worker        "libpayload_generator",
877*5a923131SAndroid Build Coastguard Worker        "liblz4diff",
878*5a923131SAndroid Build Coastguard Worker        "liblz4patch",
879*5a923131SAndroid Build Coastguard Worker    ],
880*5a923131SAndroid Build Coastguard Worker    srcs: [
881*5a923131SAndroid Build Coastguard Worker        "lz4diff/lz4diff_main.cc",
882*5a923131SAndroid Build Coastguard Worker    ],
883*5a923131SAndroid Build Coastguard Worker}
884*5a923131SAndroid Build Coastguard Worker
885*5a923131SAndroid Build Coastguard Workercc_library_static {
886*5a923131SAndroid Build Coastguard Worker    name: "libpayload_generator",
887*5a923131SAndroid Build Coastguard Worker    defaults: [
888*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
889*5a923131SAndroid Build Coastguard Worker        "libpayload_generator_exports",
890*5a923131SAndroid Build Coastguard Worker    ],
891*5a923131SAndroid Build Coastguard Worker    host_supported: true,
892*5a923131SAndroid Build Coastguard Worker
893*5a923131SAndroid Build Coastguard Worker    srcs: [
894*5a923131SAndroid Build Coastguard Worker        "common/system_state.cc",
895*5a923131SAndroid Build Coastguard Worker        "download_action.cc",
896*5a923131SAndroid Build Coastguard Worker        "payload_generator/ab_generator.cc",
897*5a923131SAndroid Build Coastguard Worker        "payload_generator/annotated_operation.cc",
898*5a923131SAndroid Build Coastguard Worker        "payload_generator/blob_file_writer.cc",
899*5a923131SAndroid Build Coastguard Worker        "payload_generator/block_mapping.cc",
900*5a923131SAndroid Build Coastguard Worker        "payload_generator/boot_img_filesystem.cc",
901*5a923131SAndroid Build Coastguard Worker        "payload_generator/bzip.cc",
902*5a923131SAndroid Build Coastguard Worker        "payload_generator/deflate_utils.cc",
903*5a923131SAndroid Build Coastguard Worker        "payload_generator/delta_diff_generator.cc",
904*5a923131SAndroid Build Coastguard Worker        "payload_generator/delta_diff_utils.cc",
905*5a923131SAndroid Build Coastguard Worker        "payload_generator/ext2_filesystem.cc",
906*5a923131SAndroid Build Coastguard Worker        "payload_generator/erofs_filesystem.cc",
907*5a923131SAndroid Build Coastguard Worker        "payload_generator/extent_ranges.cc",
908*5a923131SAndroid Build Coastguard Worker        "payload_generator/full_update_generator.cc",
909*5a923131SAndroid Build Coastguard Worker        "payload_generator/mapfile_filesystem.cc",
910*5a923131SAndroid Build Coastguard Worker        "payload_generator/merge_sequence_generator.cc",
911*5a923131SAndroid Build Coastguard Worker        "payload_generator/payload_file.cc",
912*5a923131SAndroid Build Coastguard Worker        "payload_generator/payload_generation_config_android.cc",
913*5a923131SAndroid Build Coastguard Worker        "payload_generator/payload_generation_config.cc",
914*5a923131SAndroid Build Coastguard Worker        "payload_generator/payload_properties.cc",
915*5a923131SAndroid Build Coastguard Worker        "payload_generator/payload_signer.cc",
916*5a923131SAndroid Build Coastguard Worker        "payload_generator/raw_filesystem.cc",
917*5a923131SAndroid Build Coastguard Worker        "payload_generator/squashfs_filesystem.cc",
918*5a923131SAndroid Build Coastguard Worker        "payload_generator/xz_android.cc",
919*5a923131SAndroid Build Coastguard Worker    ],
920*5a923131SAndroid Build Coastguard Worker}
921*5a923131SAndroid Build Coastguard Worker
922*5a923131SAndroid Build Coastguard Worker// delta_generator (type: executable)
923*5a923131SAndroid Build Coastguard Worker// ========================================================
924*5a923131SAndroid Build Coastguard Worker// server-side delta generator.
925*5a923131SAndroid Build Coastguard Workercc_binary_host {
926*5a923131SAndroid Build Coastguard Worker    name: "delta_generator",
927*5a923131SAndroid Build Coastguard Worker    defaults: [
928*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
929*5a923131SAndroid Build Coastguard Worker        "libpayload_generator_exports",
930*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports",
931*5a923131SAndroid Build Coastguard Worker    ],
932*5a923131SAndroid Build Coastguard Worker
933*5a923131SAndroid Build Coastguard Worker    static_libs: [
934*5a923131SAndroid Build Coastguard Worker        "libavb_host_sysdeps",
935*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer",
936*5a923131SAndroid Build Coastguard Worker        "libpayload_generator",
937*5a923131SAndroid Build Coastguard Worker        "libgflags",
938*5a923131SAndroid Build Coastguard Worker    ],
939*5a923131SAndroid Build Coastguard Worker
940*5a923131SAndroid Build Coastguard Worker    srcs: ["payload_generator/generate_delta_main.cc"],
941*5a923131SAndroid Build Coastguard Worker}
942*5a923131SAndroid Build Coastguard Worker
943*5a923131SAndroid Build Coastguard Workercc_test {
944*5a923131SAndroid Build Coastguard Worker    host_supported: true,
945*5a923131SAndroid Build Coastguard Worker    name: "ue_unittest_delta_generator",
946*5a923131SAndroid Build Coastguard Worker    defaults: [
947*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
948*5a923131SAndroid Build Coastguard Worker        "libpayload_generator_exports",
949*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports",
950*5a923131SAndroid Build Coastguard Worker    ],
951*5a923131SAndroid Build Coastguard Worker
952*5a923131SAndroid Build Coastguard Worker    static_libs: [
953*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer",
954*5a923131SAndroid Build Coastguard Worker        "libpayload_generator",
955*5a923131SAndroid Build Coastguard Worker        "libgflags",
956*5a923131SAndroid Build Coastguard Worker    ],
957*5a923131SAndroid Build Coastguard Worker
958*5a923131SAndroid Build Coastguard Worker    srcs: ["payload_generator/generate_delta_main.cc"],
959*5a923131SAndroid Build Coastguard Worker
960*5a923131SAndroid Build Coastguard Worker    gtest: false,
961*5a923131SAndroid Build Coastguard Worker    stem: "delta_generator",
962*5a923131SAndroid Build Coastguard Worker}
963*5a923131SAndroid Build Coastguard Worker
964*5a923131SAndroid Build Coastguard Worker// test_http_server (type: executable)
965*5a923131SAndroid Build Coastguard Worker// ========================================================
966*5a923131SAndroid Build Coastguard Worker// Test HTTP Server.
967*5a923131SAndroid Build Coastguard Workercc_test {
968*5a923131SAndroid Build Coastguard Worker    name: "test_http_server",
969*5a923131SAndroid Build Coastguard Worker    defaults: ["ue_defaults"],
970*5a923131SAndroid Build Coastguard Worker    srcs: [
971*5a923131SAndroid Build Coastguard Worker        "common/http_common.cc",
972*5a923131SAndroid Build Coastguard Worker        "test_http_server.cc",
973*5a923131SAndroid Build Coastguard Worker    ],
974*5a923131SAndroid Build Coastguard Worker
975*5a923131SAndroid Build Coastguard Worker    gtest: false,
976*5a923131SAndroid Build Coastguard Worker}
977*5a923131SAndroid Build Coastguard Worker
978*5a923131SAndroid Build Coastguard Worker// test_subprocess (type: executable)
979*5a923131SAndroid Build Coastguard Worker// ========================================================
980*5a923131SAndroid Build Coastguard Worker// Test helper subprocess program.
981*5a923131SAndroid Build Coastguard Workercc_test {
982*5a923131SAndroid Build Coastguard Worker    name: "test_subprocess",
983*5a923131SAndroid Build Coastguard Worker    defaults: ["ue_defaults"],
984*5a923131SAndroid Build Coastguard Worker    srcs: ["test_subprocess.cc"],
985*5a923131SAndroid Build Coastguard Worker
986*5a923131SAndroid Build Coastguard Worker    gtest: false,
987*5a923131SAndroid Build Coastguard Worker}
988*5a923131SAndroid Build Coastguard Worker
989*5a923131SAndroid Build Coastguard Worker// Public keys for unittests.
990*5a923131SAndroid Build Coastguard Worker// ========================================================
991*5a923131SAndroid Build Coastguard Workergenrule {
992*5a923131SAndroid Build Coastguard Worker    name: "ue_unittest_keys",
993*5a923131SAndroid Build Coastguard Worker    cmd: "openssl rsa -in $(location unittest_key.pem) -pubout -out $(location unittest_key.pub.pem) &&" +
994*5a923131SAndroid Build Coastguard Worker        "openssl rsa -in $(location unittest_key2.pem) -pubout -out $(location unittest_key2.pub.pem) &&" +
995*5a923131SAndroid Build Coastguard Worker        "openssl rsa -in $(location unittest_key_RSA4096.pem) -pubout -out $(location unittest_key_RSA4096.pub.pem) &&" +
996*5a923131SAndroid Build Coastguard Worker        "openssl pkey -in $(location unittest_key_EC.pem) -pubout -out $(location unittest_key_EC.pub.pem)",
997*5a923131SAndroid Build Coastguard Worker    srcs: [
998*5a923131SAndroid Build Coastguard Worker        "unittest_key.pem",
999*5a923131SAndroid Build Coastguard Worker        "unittest_key2.pem",
1000*5a923131SAndroid Build Coastguard Worker        "unittest_key_RSA4096.pem",
1001*5a923131SAndroid Build Coastguard Worker        "unittest_key_EC.pem",
1002*5a923131SAndroid Build Coastguard Worker    ],
1003*5a923131SAndroid Build Coastguard Worker    out: [
1004*5a923131SAndroid Build Coastguard Worker        "unittest_key.pub.pem",
1005*5a923131SAndroid Build Coastguard Worker        "unittest_key2.pub.pem",
1006*5a923131SAndroid Build Coastguard Worker        "unittest_key_RSA4096.pub.pem",
1007*5a923131SAndroid Build Coastguard Worker        "unittest_key_EC.pub.pem",
1008*5a923131SAndroid Build Coastguard Worker    ],
1009*5a923131SAndroid Build Coastguard Worker}
1010*5a923131SAndroid Build Coastguard Worker
1011*5a923131SAndroid Build Coastguard Worker// Sample images for unittests.
1012*5a923131SAndroid Build Coastguard Worker// ========================================================
1013*5a923131SAndroid Build Coastguard Worker// Extract sample image from the compressed sample_images.tar.bz2 file used by
1014*5a923131SAndroid Build Coastguard Worker// the unittests.
1015*5a923131SAndroid Build Coastguard Workergenrule {
1016*5a923131SAndroid Build Coastguard Worker    name: "ue_unittest_disk_imgs",
1017*5a923131SAndroid Build Coastguard Worker    cmd: "tar -jxf $(in) -C $(genDir)/gen disk_ext2_1k.img disk_ext2_4k.img disk_ext2_4k_empty.img disk_ext2_unittest.img",
1018*5a923131SAndroid Build Coastguard Worker    srcs: ["sample_images/sample_images.tar.bz2"],
1019*5a923131SAndroid Build Coastguard Worker    out: [
1020*5a923131SAndroid Build Coastguard Worker        "gen/disk_ext2_1k.img",
1021*5a923131SAndroid Build Coastguard Worker        "gen/disk_ext2_4k.img",
1022*5a923131SAndroid Build Coastguard Worker        "gen/disk_ext2_4k_empty.img",
1023*5a923131SAndroid Build Coastguard Worker        "gen/disk_ext2_unittest.img",
1024*5a923131SAndroid Build Coastguard Worker    ],
1025*5a923131SAndroid Build Coastguard Worker}
1026*5a923131SAndroid Build Coastguard Worker
1027*5a923131SAndroid Build Coastguard Workergenrule {
1028*5a923131SAndroid Build Coastguard Worker    name: "ue_unittest_erofs_imgs",
1029*5a923131SAndroid Build Coastguard Worker    cmd: "$(in) $(location mkfs.erofs) $(location gen/erofs_empty.img) && " +
1030*5a923131SAndroid Build Coastguard Worker        "$(in) $(location mkfs.erofs) $(location gen/erofs.img) $(location delta_generator) && " +
1031*5a923131SAndroid Build Coastguard Worker        "$(in) $(location mkfs.erofs) $(location gen/erofs_new.img) $(location delta_generator) lz4hc,7",
1032*5a923131SAndroid Build Coastguard Worker    srcs: ["sample_images/generate_test_erofs_images.sh"],
1033*5a923131SAndroid Build Coastguard Worker    out: [
1034*5a923131SAndroid Build Coastguard Worker        "gen/erofs.img",
1035*5a923131SAndroid Build Coastguard Worker        "gen/erofs_new.img",
1036*5a923131SAndroid Build Coastguard Worker        "gen/erofs_empty.img",
1037*5a923131SAndroid Build Coastguard Worker    ],
1038*5a923131SAndroid Build Coastguard Worker    tools: [
1039*5a923131SAndroid Build Coastguard Worker        "mkfs.erofs",
1040*5a923131SAndroid Build Coastguard Worker        "delta_generator",
1041*5a923131SAndroid Build Coastguard Worker    ],
1042*5a923131SAndroid Build Coastguard Worker}
1043*5a923131SAndroid Build Coastguard Worker
1044*5a923131SAndroid Build Coastguard Workerfilegroup {
1045*5a923131SAndroid Build Coastguard Worker    name: "update_engine_host_unittest_timeout_srcs",
1046*5a923131SAndroid Build Coastguard Worker    srcs: [
1047*5a923131SAndroid Build Coastguard Worker        "common/action_processor_unittest.cc",
1048*5a923131SAndroid Build Coastguard Worker        "common/file_fetcher_unittest.cc",
1049*5a923131SAndroid Build Coastguard Worker        "payload_generator/delta_diff_utils_unittest.cc",
1050*5a923131SAndroid Build Coastguard Worker    ],
1051*5a923131SAndroid Build Coastguard Worker}
1052*5a923131SAndroid Build Coastguard Worker
1053*5a923131SAndroid Build Coastguard Workerfilegroup {
1054*5a923131SAndroid Build Coastguard Worker    name: "update_engine_host_unittest_srcs",
1055*5a923131SAndroid Build Coastguard Worker    srcs: [
1056*5a923131SAndroid Build Coastguard Worker        "common/action_pipe_unittest.cc",
1057*5a923131SAndroid Build Coastguard Worker        "common/action_processor_unittest.cc",
1058*5a923131SAndroid Build Coastguard Worker        "common/action_unittest.cc",
1059*5a923131SAndroid Build Coastguard Worker        "common/cow_operation_convert_unittest.cc",
1060*5a923131SAndroid Build Coastguard Worker        "common/cpu_limiter_unittest.cc",
1061*5a923131SAndroid Build Coastguard Worker        "common/fake_prefs.cc",
1062*5a923131SAndroid Build Coastguard Worker        "common/file_fetcher_unittest.cc",
1063*5a923131SAndroid Build Coastguard Worker        "common/hash_calculator_unittest.cc",
1064*5a923131SAndroid Build Coastguard Worker        "common/hwid_override_unittest.cc",
1065*5a923131SAndroid Build Coastguard Worker        "common/metrics_reporter_stub.cc",
1066*5a923131SAndroid Build Coastguard Worker        "common/mock_http_fetcher.cc",
1067*5a923131SAndroid Build Coastguard Worker        "common/prefs_unittest.cc",
1068*5a923131SAndroid Build Coastguard Worker        "common/terminator_unittest.cc",
1069*5a923131SAndroid Build Coastguard Worker        "common/test_utils.cc",
1070*5a923131SAndroid Build Coastguard Worker        "lz4diff/lz4diff_compress_unittest.cc",
1071*5a923131SAndroid Build Coastguard Worker        "lz4diff/lz4diff_unittest.cc",
1072*5a923131SAndroid Build Coastguard Worker        "payload_generator/ab_generator_unittest.cc",
1073*5a923131SAndroid Build Coastguard Worker        "payload_generator/blob_file_writer_unittest.cc",
1074*5a923131SAndroid Build Coastguard Worker        "payload_generator/block_mapping_unittest.cc",
1075*5a923131SAndroid Build Coastguard Worker        "payload_generator/boot_img_filesystem_unittest.cc",
1076*5a923131SAndroid Build Coastguard Worker        "payload_generator/deflate_utils_unittest.cc",
1077*5a923131SAndroid Build Coastguard Worker        "payload_generator/delta_diff_utils_unittest.cc",
1078*5a923131SAndroid Build Coastguard Worker        "payload_generator/erofs_filesystem_unittest.cc",
1079*5a923131SAndroid Build Coastguard Worker        "payload_generator/ext2_filesystem_unittest.cc",
1080*5a923131SAndroid Build Coastguard Worker        "payload_generator/extent_ranges_unittest.cc",
1081*5a923131SAndroid Build Coastguard Worker        "payload_generator/extent_utils_unittest.cc",
1082*5a923131SAndroid Build Coastguard Worker        "payload_generator/fake_filesystem.cc",
1083*5a923131SAndroid Build Coastguard Worker        "payload_generator/full_update_generator_unittest.cc",
1084*5a923131SAndroid Build Coastguard Worker        "payload_generator/mapfile_filesystem_unittest.cc",
1085*5a923131SAndroid Build Coastguard Worker        "payload_generator/merge_sequence_generator_unittest.cc",
1086*5a923131SAndroid Build Coastguard Worker        "payload_generator/payload_file_unittest.cc",
1087*5a923131SAndroid Build Coastguard Worker        "payload_generator/payload_generation_config_android_unittest.cc",
1088*5a923131SAndroid Build Coastguard Worker        "payload_generator/payload_generation_config_unittest.cc",
1089*5a923131SAndroid Build Coastguard Worker        "payload_generator/payload_properties_unittest.cc",
1090*5a923131SAndroid Build Coastguard Worker        "payload_generator/payload_signer_unittest.cc",
1091*5a923131SAndroid Build Coastguard Worker        "payload_generator/squashfs_filesystem_unittest.cc",
1092*5a923131SAndroid Build Coastguard Worker        "payload_generator/zip_unittest.cc",
1093*5a923131SAndroid Build Coastguard Worker        "payload_consumer/verity_writer_android_unittest.cc",
1094*5a923131SAndroid Build Coastguard Worker        "payload_consumer/xz_extent_writer_unittest.cc",
1095*5a923131SAndroid Build Coastguard Worker        "testrunner.cc",
1096*5a923131SAndroid Build Coastguard Worker    ],
1097*5a923131SAndroid Build Coastguard Worker}
1098*5a923131SAndroid Build Coastguard Worker
1099*5a923131SAndroid Build Coastguard Workercc_test_host {
1100*5a923131SAndroid Build Coastguard Worker    name: "update_engine_host_unittests",
1101*5a923131SAndroid Build Coastguard Worker    defaults: [
1102*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
1103*5a923131SAndroid Build Coastguard Worker        "libpayload_generator_exports",
1104*5a923131SAndroid Build Coastguard Worker    ],
1105*5a923131SAndroid Build Coastguard Worker    strip: {
1106*5a923131SAndroid Build Coastguard Worker        none: true,
1107*5a923131SAndroid Build Coastguard Worker    },
1108*5a923131SAndroid Build Coastguard Worker    cflags: [
1109*5a923131SAndroid Build Coastguard Worker        "-g3",
1110*5a923131SAndroid Build Coastguard Worker    ],
1111*5a923131SAndroid Build Coastguard Worker    tidy_timeout_srcs: [":update_engine_host_unittest_timeout_srcs"],
1112*5a923131SAndroid Build Coastguard Worker    srcs: [":update_engine_host_unittest_srcs"],
1113*5a923131SAndroid Build Coastguard Worker    data: [
1114*5a923131SAndroid Build Coastguard Worker        ":ue_unittest_delta_generator",
1115*5a923131SAndroid Build Coastguard Worker        ":ue_unittest_disk_imgs",
1116*5a923131SAndroid Build Coastguard Worker        ":ue_unittest_erofs_imgs",
1117*5a923131SAndroid Build Coastguard Worker        ":ue_unittest_keys",
1118*5a923131SAndroid Build Coastguard Worker        "otacerts.zip",
1119*5a923131SAndroid Build Coastguard Worker        "unittest_key.pem",
1120*5a923131SAndroid Build Coastguard Worker        "unittest_key2.pem",
1121*5a923131SAndroid Build Coastguard Worker        "unittest_key_RSA4096.pem",
1122*5a923131SAndroid Build Coastguard Worker        "unittest_key_EC.pem",
1123*5a923131SAndroid Build Coastguard Worker        "update_engine.conf",
1124*5a923131SAndroid Build Coastguard Worker        "testdata/cycle_nodes_product.bin",
1125*5a923131SAndroid Build Coastguard Worker        "testdata/cycle_nodes_product_no_xor.bin",
1126*5a923131SAndroid Build Coastguard Worker    ],
1127*5a923131SAndroid Build Coastguard Worker    static_libs: [
1128*5a923131SAndroid Build Coastguard Worker        "libgmock",
1129*5a923131SAndroid Build Coastguard Worker        "libpayload_generator",
1130*5a923131SAndroid Build Coastguard Worker    ],
1131*5a923131SAndroid Build Coastguard Worker}
1132*5a923131SAndroid Build Coastguard Worker
1133*5a923131SAndroid Build Coastguard Worker// update_engine_unittests (type: executable)
1134*5a923131SAndroid Build Coastguard Worker// ========================================================
1135*5a923131SAndroid Build Coastguard Worker// Main unittest file.
1136*5a923131SAndroid Build Coastguard Workercc_test {
1137*5a923131SAndroid Build Coastguard Worker    name: "update_engine_http_unittests",
1138*5a923131SAndroid Build Coastguard Worker    defaults: [
1139*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
1140*5a923131SAndroid Build Coastguard Worker        "liblz4diff_defaults",
1141*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos_exports",
1142*5a923131SAndroid Build Coastguard Worker    ],
1143*5a923131SAndroid Build Coastguard Worker    require_root: true,
1144*5a923131SAndroid Build Coastguard Worker    static_libs: [
1145*5a923131SAndroid Build Coastguard Worker        "libbase",
1146*5a923131SAndroid Build Coastguard Worker        "libbrillo-test-helpers",
1147*5a923131SAndroid Build Coastguard Worker        "libchrome_test_helpers",
1148*5a923131SAndroid Build Coastguard Worker        "libcurl",
1149*5a923131SAndroid Build Coastguard Worker        "libcutils",
1150*5a923131SAndroid Build Coastguard Worker        "libdm",
1151*5a923131SAndroid Build Coastguard Worker        "libgmock",
1152*5a923131SAndroid Build Coastguard Worker        "libz",
1153*5a923131SAndroid Build Coastguard Worker        "libzstd",
1154*5a923131SAndroid Build Coastguard Worker    ],
1155*5a923131SAndroid Build Coastguard Worker    shared_libs: [
1156*5a923131SAndroid Build Coastguard Worker        "libssl",
1157*5a923131SAndroid Build Coastguard Worker        "libcrypto",
1158*5a923131SAndroid Build Coastguard Worker        "libziparchive",
1159*5a923131SAndroid Build Coastguard Worker        "liblog",
1160*5a923131SAndroid Build Coastguard Worker    ],
1161*5a923131SAndroid Build Coastguard Worker
1162*5a923131SAndroid Build Coastguard Worker    data: [
1163*5a923131SAndroid Build Coastguard Worker        ":test_http_server",
1164*5a923131SAndroid Build Coastguard Worker        ":test_subprocess",
1165*5a923131SAndroid Build Coastguard Worker        ":ue_unittest_keys",
1166*5a923131SAndroid Build Coastguard Worker        "otacerts.zip",
1167*5a923131SAndroid Build Coastguard Worker        "unittest_key.pem",
1168*5a923131SAndroid Build Coastguard Worker        "unittest_key2.pem",
1169*5a923131SAndroid Build Coastguard Worker        "unittest_key_RSA4096.pem",
1170*5a923131SAndroid Build Coastguard Worker        "unittest_key_EC.pem",
1171*5a923131SAndroid Build Coastguard Worker    ],
1172*5a923131SAndroid Build Coastguard Worker
1173*5a923131SAndroid Build Coastguard Worker    // We cannot use the default generated AndroidTest.xml because of the use of helper modules
1174*5a923131SAndroid Build Coastguard Worker    // (i.e. test_http_server, test_subprocess, ue_unittest_delta_generator).
1175*5a923131SAndroid Build Coastguard Worker    // test_config: "test_config.xml",
1176*5a923131SAndroid Build Coastguard Worker    test_suites: ["device-tests"],
1177*5a923131SAndroid Build Coastguard Worker
1178*5a923131SAndroid Build Coastguard Worker    srcs: [
1179*5a923131SAndroid Build Coastguard Worker        "aosp/platform_constants_android.cc",
1180*5a923131SAndroid Build Coastguard Worker        "certificate_checker.cc",
1181*5a923131SAndroid Build Coastguard Worker        "common/action_processor.cc",
1182*5a923131SAndroid Build Coastguard Worker        "common/boot_control_stub.cc",
1183*5a923131SAndroid Build Coastguard Worker        "common/error_code_utils.cc",
1184*5a923131SAndroid Build Coastguard Worker        "common/file_fetcher.cc",
1185*5a923131SAndroid Build Coastguard Worker        "common/hash_calculator.cc",
1186*5a923131SAndroid Build Coastguard Worker        "common/http_fetcher.cc",
1187*5a923131SAndroid Build Coastguard Worker        "common/multi_range_http_fetcher.cc",
1188*5a923131SAndroid Build Coastguard Worker        "common/http_common.cc",
1189*5a923131SAndroid Build Coastguard Worker        "common/subprocess.cc",
1190*5a923131SAndroid Build Coastguard Worker        "common/test_utils.cc",
1191*5a923131SAndroid Build Coastguard Worker        "common/utils.cc",
1192*5a923131SAndroid Build Coastguard Worker        "libcurl_http_fetcher.cc",
1193*5a923131SAndroid Build Coastguard Worker        "payload_consumer/certificate_parser_android.cc",
1194*5a923131SAndroid Build Coastguard Worker        "payload_consumer/payload_verifier.cc",
1195*5a923131SAndroid Build Coastguard Worker        "payload_generator/payload_signer.cc",
1196*5a923131SAndroid Build Coastguard Worker        "update_status_utils.cc",
1197*5a923131SAndroid Build Coastguard Worker        "certificate_checker_unittest.cc",
1198*5a923131SAndroid Build Coastguard Worker        "common/http_fetcher_unittest.cc",
1199*5a923131SAndroid Build Coastguard Worker        "common/mock_http_fetcher.cc",
1200*5a923131SAndroid Build Coastguard Worker        "common/subprocess_unittest.cc",
1201*5a923131SAndroid Build Coastguard Worker        "libcurl_http_fetcher_unittest.cc",
1202*5a923131SAndroid Build Coastguard Worker        "payload_consumer/certificate_parser_android_unittest.cc",
1203*5a923131SAndroid Build Coastguard Worker        "update_status_utils_unittest.cc",
1204*5a923131SAndroid Build Coastguard Worker    ],
1205*5a923131SAndroid Build Coastguard Worker}
1206*5a923131SAndroid Build Coastguard Worker
1207*5a923131SAndroid Build Coastguard Worker// update_engine_unittests (type: executable)
1208*5a923131SAndroid Build Coastguard Worker// ========================================================
1209*5a923131SAndroid Build Coastguard Worker// Main unittest file.
1210*5a923131SAndroid Build Coastguard Workercc_test {
1211*5a923131SAndroid Build Coastguard Worker    name: "update_engine_unittests",
1212*5a923131SAndroid Build Coastguard Worker    defaults: [
1213*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
1214*5a923131SAndroid Build Coastguard Worker        "libpayload_generator_exports",
1215*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android_exports",
1216*5a923131SAndroid Build Coastguard Worker    ],
1217*5a923131SAndroid Build Coastguard Worker
1218*5a923131SAndroid Build Coastguard Worker    static_libs: [
1219*5a923131SAndroid Build Coastguard Worker        "libpayload_generator",
1220*5a923131SAndroid Build Coastguard Worker        "libbrillo-test-helpers",
1221*5a923131SAndroid Build Coastguard Worker        "libgmock",
1222*5a923131SAndroid Build Coastguard Worker        "libchrome_test_helpers",
1223*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android",
1224*5a923131SAndroid Build Coastguard Worker        "libdm",
1225*5a923131SAndroid Build Coastguard Worker    ],
1226*5a923131SAndroid Build Coastguard Worker
1227*5a923131SAndroid Build Coastguard Worker    header_libs: [
1228*5a923131SAndroid Build Coastguard Worker        "libstorage_literals_headers",
1229*5a923131SAndroid Build Coastguard Worker    ],
1230*5a923131SAndroid Build Coastguard Worker
1231*5a923131SAndroid Build Coastguard Worker    data: [
1232*5a923131SAndroid Build Coastguard Worker        ":ue_unittest_delta_generator",
1233*5a923131SAndroid Build Coastguard Worker        ":ue_unittest_disk_imgs",
1234*5a923131SAndroid Build Coastguard Worker        ":ue_unittest_erofs_imgs",
1235*5a923131SAndroid Build Coastguard Worker        ":ue_unittest_keys",
1236*5a923131SAndroid Build Coastguard Worker        "otacerts.zip",
1237*5a923131SAndroid Build Coastguard Worker        "unittest_key.pem",
1238*5a923131SAndroid Build Coastguard Worker        "unittest_key2.pem",
1239*5a923131SAndroid Build Coastguard Worker        "unittest_key_RSA4096.pem",
1240*5a923131SAndroid Build Coastguard Worker        "unittest_key_EC.pem",
1241*5a923131SAndroid Build Coastguard Worker        "update_engine.conf",
1242*5a923131SAndroid Build Coastguard Worker        "testdata/cycle_nodes_product.bin",
1243*5a923131SAndroid Build Coastguard Worker        "testdata/cycle_nodes_product_no_xor.bin",
1244*5a923131SAndroid Build Coastguard Worker    ],
1245*5a923131SAndroid Build Coastguard Worker
1246*5a923131SAndroid Build Coastguard Worker    // We cannot use the default generated AndroidTest.xml because of the use of helper modules
1247*5a923131SAndroid Build Coastguard Worker    // (i.e. test_http_server, test_subprocess, ue_unittest_delta_generator).
1248*5a923131SAndroid Build Coastguard Worker    test_config: "test_config.xml",
1249*5a923131SAndroid Build Coastguard Worker    test_suites: ["device-tests"],
1250*5a923131SAndroid Build Coastguard Worker
1251*5a923131SAndroid Build Coastguard Worker    tidy_timeout_srcs: [
1252*5a923131SAndroid Build Coastguard Worker        ":update_engine_host_unittest_timeout_srcs",
1253*5a923131SAndroid Build Coastguard Worker        "aosp/dynamic_partition_control_android_unittest.cc",
1254*5a923131SAndroid Build Coastguard Worker        "common/http_fetcher_unittest.cc",
1255*5a923131SAndroid Build Coastguard Worker        "payload_consumer/delta_performer_integration_test.cc",
1256*5a923131SAndroid Build Coastguard Worker        "payload_consumer/delta_performer_unittest.cc",
1257*5a923131SAndroid Build Coastguard Worker    ],
1258*5a923131SAndroid Build Coastguard Worker    srcs: [
1259*5a923131SAndroid Build Coastguard Worker        ":update_engine_host_unittest_srcs",
1260*5a923131SAndroid Build Coastguard Worker        "aosp/apex_handler_android_unittest.cc",
1261*5a923131SAndroid Build Coastguard Worker        "aosp/cleanup_previous_update_action_unittest.cc",
1262*5a923131SAndroid Build Coastguard Worker        "aosp/dynamic_partition_control_android_unittest.cc",
1263*5a923131SAndroid Build Coastguard Worker        "aosp/update_attempter_android_integration_test.cc",
1264*5a923131SAndroid Build Coastguard Worker        "aosp/update_attempter_android_unittest.cc",
1265*5a923131SAndroid Build Coastguard Worker        "common/utils_unittest.cc",
1266*5a923131SAndroid Build Coastguard Worker        "download_action_android_unittest.cc",
1267*5a923131SAndroid Build Coastguard Worker        "payload_consumer/block_extent_writer_unittest.cc",
1268*5a923131SAndroid Build Coastguard Worker        "payload_consumer/bzip_extent_writer_unittest.cc",
1269*5a923131SAndroid Build Coastguard Worker        "payload_consumer/cached_file_descriptor_unittest.cc",
1270*5a923131SAndroid Build Coastguard Worker        "payload_consumer/cow_writer_file_descriptor_unittest.cc",
1271*5a923131SAndroid Build Coastguard Worker        "payload_consumer/delta_performer_integration_test.cc",
1272*5a923131SAndroid Build Coastguard Worker        "payload_consumer/delta_performer_unittest.cc",
1273*5a923131SAndroid Build Coastguard Worker        "payload_consumer/extent_reader_unittest.cc",
1274*5a923131SAndroid Build Coastguard Worker        "payload_consumer/extent_writer_unittest.cc",
1275*5a923131SAndroid Build Coastguard Worker        "payload_consumer/extent_map_unittest.cc",
1276*5a923131SAndroid Build Coastguard Worker        "payload_consumer/fake_file_descriptor.cc",
1277*5a923131SAndroid Build Coastguard Worker        "payload_consumer/file_descriptor_utils_unittest.cc",
1278*5a923131SAndroid Build Coastguard Worker        "payload_consumer/file_writer_unittest.cc",
1279*5a923131SAndroid Build Coastguard Worker        "payload_consumer/filesystem_verifier_action_unittest.cc",
1280*5a923131SAndroid Build Coastguard Worker        "payload_consumer/install_plan_unittest.cc",
1281*5a923131SAndroid Build Coastguard Worker        "payload_consumer/install_operation_executor_unittest.cc",
1282*5a923131SAndroid Build Coastguard Worker        "payload_consumer/partition_update_generator_android_unittest.cc",
1283*5a923131SAndroid Build Coastguard Worker        "payload_consumer/partition_writer_unittest.cc",
1284*5a923131SAndroid Build Coastguard Worker        "payload_consumer/postinstall_runner_action_unittest.cc",
1285*5a923131SAndroid Build Coastguard Worker        "payload_consumer/snapshot_extent_writer_unittest.cc",
1286*5a923131SAndroid Build Coastguard Worker        "payload_consumer/vabc_partition_writer_unittest.cc",
1287*5a923131SAndroid Build Coastguard Worker        "payload_consumer/xor_extent_writer_unittest.cc",
1288*5a923131SAndroid Build Coastguard Worker    ],
1289*5a923131SAndroid Build Coastguard Worker}
1290*5a923131SAndroid Build Coastguard Worker
1291*5a923131SAndroid Build Coastguard Worker// Brillo update payload generation script
1292*5a923131SAndroid Build Coastguard Worker// ========================================================
1293*5a923131SAndroid Build Coastguard Workersh_binary {
1294*5a923131SAndroid Build Coastguard Worker    name: "brillo_update_payload",
1295*5a923131SAndroid Build Coastguard Worker    device_supported: false,
1296*5a923131SAndroid Build Coastguard Worker    host_supported: true,
1297*5a923131SAndroid Build Coastguard Worker
1298*5a923131SAndroid Build Coastguard Worker    src: "scripts/brillo_update_payload",
1299*5a923131SAndroid Build Coastguard Worker    required: [
1300*5a923131SAndroid Build Coastguard Worker        "delta_generator",
1301*5a923131SAndroid Build Coastguard Worker        "shflags",
1302*5a923131SAndroid Build Coastguard Worker        "simg2img",
1303*5a923131SAndroid Build Coastguard Worker    ],
1304*5a923131SAndroid Build Coastguard Worker
1305*5a923131SAndroid Build Coastguard Worker    target: {
1306*5a923131SAndroid Build Coastguard Worker        darwin: {
1307*5a923131SAndroid Build Coastguard Worker            enabled: false,
1308*5a923131SAndroid Build Coastguard Worker        },
1309*5a923131SAndroid Build Coastguard Worker    },
1310*5a923131SAndroid Build Coastguard Worker}
1311*5a923131SAndroid Build Coastguard Worker
1312*5a923131SAndroid Build Coastguard Worker// update_engine header library
1313*5a923131SAndroid Build Coastguard Workercc_library_headers {
1314*5a923131SAndroid Build Coastguard Worker    name: "libupdate_engine_headers",
1315*5a923131SAndroid Build Coastguard Worker
1316*5a923131SAndroid Build Coastguard Worker    // This header library is available to core and product modules.
1317*5a923131SAndroid Build Coastguard Worker    product_available: true,
1318*5a923131SAndroid Build Coastguard Worker
1319*5a923131SAndroid Build Coastguard Worker    export_include_dirs: ["."],
1320*5a923131SAndroid Build Coastguard Worker    apex_available: [
1321*5a923131SAndroid Build Coastguard Worker        "com.android.gki.*",
1322*5a923131SAndroid Build Coastguard Worker        "//apex_available:platform",
1323*5a923131SAndroid Build Coastguard Worker    ],
1324*5a923131SAndroid Build Coastguard Worker    host_supported: true,
1325*5a923131SAndroid Build Coastguard Worker    recovery_available: true,
1326*5a923131SAndroid Build Coastguard Worker    ramdisk_available: true,
1327*5a923131SAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
1328*5a923131SAndroid Build Coastguard Worker
1329*5a923131SAndroid Build Coastguard Worker    target: {
1330*5a923131SAndroid Build Coastguard Worker        darwin: {
1331*5a923131SAndroid Build Coastguard Worker            enabled: false,
1332*5a923131SAndroid Build Coastguard Worker        },
1333*5a923131SAndroid Build Coastguard Worker    },
1334*5a923131SAndroid Build Coastguard Worker}
1335*5a923131SAndroid Build Coastguard Worker
1336*5a923131SAndroid Build Coastguard Workercc_binary_host {
1337*5a923131SAndroid Build Coastguard Worker    name: "cow_converter",
1338*5a923131SAndroid Build Coastguard Worker    defaults: [
1339*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
1340*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports",
1341*5a923131SAndroid Build Coastguard Worker    ],
1342*5a923131SAndroid Build Coastguard Worker    srcs: [
1343*5a923131SAndroid Build Coastguard Worker        "aosp/cow_converter.cc",
1344*5a923131SAndroid Build Coastguard Worker    ],
1345*5a923131SAndroid Build Coastguard Worker    static_libs: [
1346*5a923131SAndroid Build Coastguard Worker        "liblog",
1347*5a923131SAndroid Build Coastguard Worker        "libbrotli",
1348*5a923131SAndroid Build Coastguard Worker        "libbase",
1349*5a923131SAndroid Build Coastguard Worker        "libcow_operation_convert",
1350*5a923131SAndroid Build Coastguard Worker        "libcow_size_estimator",
1351*5a923131SAndroid Build Coastguard Worker        "libgflags",
1352*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer",
1353*5a923131SAndroid Build Coastguard Worker        "libpayload_extent_ranges",
1354*5a923131SAndroid Build Coastguard Worker        "libpayload_extent_utils",
1355*5a923131SAndroid Build Coastguard Worker        "libsnapshot_cow",
1356*5a923131SAndroid Build Coastguard Worker        "libz",
1357*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos",
1358*5a923131SAndroid Build Coastguard Worker    ],
1359*5a923131SAndroid Build Coastguard Worker}
1360*5a923131SAndroid Build Coastguard Worker
1361*5a923131SAndroid Build Coastguard Workercc_library_static {
1362*5a923131SAndroid Build Coastguard Worker    name: "lz4diff-protos",
1363*5a923131SAndroid Build Coastguard Worker    host_supported: true,
1364*5a923131SAndroid Build Coastguard Worker    ramdisk_available: true,
1365*5a923131SAndroid Build Coastguard Worker    recovery_available: true,
1366*5a923131SAndroid Build Coastguard Worker
1367*5a923131SAndroid Build Coastguard Worker    srcs: ["lz4diff/lz4diff.proto"],
1368*5a923131SAndroid Build Coastguard Worker    cflags: [
1369*5a923131SAndroid Build Coastguard Worker        "-Wall",
1370*5a923131SAndroid Build Coastguard Worker        "-Werror",
1371*5a923131SAndroid Build Coastguard Worker    ],
1372*5a923131SAndroid Build Coastguard Worker    proto: {
1373*5a923131SAndroid Build Coastguard Worker        canonical_path_from_root: false,
1374*5a923131SAndroid Build Coastguard Worker        export_proto_headers: true,
1375*5a923131SAndroid Build Coastguard Worker    },
1376*5a923131SAndroid Build Coastguard Worker}
1377*5a923131SAndroid Build Coastguard Worker
1378*5a923131SAndroid Build Coastguard Workercc_binary_host {
1379*5a923131SAndroid Build Coastguard Worker    name: "ota_extractor",
1380*5a923131SAndroid Build Coastguard Worker    defaults: [
1381*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
1382*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer_exports",
1383*5a923131SAndroid Build Coastguard Worker    ],
1384*5a923131SAndroid Build Coastguard Worker    srcs: [
1385*5a923131SAndroid Build Coastguard Worker        "aosp/ota_extractor.cc",
1386*5a923131SAndroid Build Coastguard Worker    ],
1387*5a923131SAndroid Build Coastguard Worker    static_libs: [
1388*5a923131SAndroid Build Coastguard Worker        "liblog",
1389*5a923131SAndroid Build Coastguard Worker        "libbrotli",
1390*5a923131SAndroid Build Coastguard Worker        "libbase",
1391*5a923131SAndroid Build Coastguard Worker        "libpayload_consumer",
1392*5a923131SAndroid Build Coastguard Worker        "libpayload_extent_ranges",
1393*5a923131SAndroid Build Coastguard Worker        "libpayload_extent_utils",
1394*5a923131SAndroid Build Coastguard Worker        "libz",
1395*5a923131SAndroid Build Coastguard Worker        "libgflags",
1396*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos",
1397*5a923131SAndroid Build Coastguard Worker    ],
1398*5a923131SAndroid Build Coastguard Worker}
1399*5a923131SAndroid Build Coastguard Worker
1400*5a923131SAndroid Build Coastguard Workercc_binary_host {
1401*5a923131SAndroid Build Coastguard Worker    name: "map_file_generator",
1402*5a923131SAndroid Build Coastguard Worker    defaults: [
1403*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
1404*5a923131SAndroid Build Coastguard Worker        "libpayload_generator_exports",
1405*5a923131SAndroid Build Coastguard Worker    ],
1406*5a923131SAndroid Build Coastguard Worker    srcs: [
1407*5a923131SAndroid Build Coastguard Worker        "aosp/map_file_generator.cc",
1408*5a923131SAndroid Build Coastguard Worker    ],
1409*5a923131SAndroid Build Coastguard Worker    static_libs: [
1410*5a923131SAndroid Build Coastguard Worker        "liblog",
1411*5a923131SAndroid Build Coastguard Worker        "libbase",
1412*5a923131SAndroid Build Coastguard Worker        "libpayload_generator",
1413*5a923131SAndroid Build Coastguard Worker        "libpayload_extent_ranges",
1414*5a923131SAndroid Build Coastguard Worker        "libpayload_extent_utils",
1415*5a923131SAndroid Build Coastguard Worker        "libgflags",
1416*5a923131SAndroid Build Coastguard Worker        "libsparse",
1417*5a923131SAndroid Build Coastguard Worker        "update_metadata-protos",
1418*5a923131SAndroid Build Coastguard Worker    ],
1419*5a923131SAndroid Build Coastguard Worker    required: [
1420*5a923131SAndroid Build Coastguard Worker        "unsquashfs",
1421*5a923131SAndroid Build Coastguard Worker    ],
1422*5a923131SAndroid Build Coastguard Worker}
1423*5a923131SAndroid Build Coastguard Worker
1424*5a923131SAndroid Build Coastguard Workercc_fuzz {
1425*5a923131SAndroid Build Coastguard Worker    name: "update_engine_service_fuzzer",
1426*5a923131SAndroid Build Coastguard Worker    defaults: [
1427*5a923131SAndroid Build Coastguard Worker        "ue_defaults",
1428*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android_exports",
1429*5a923131SAndroid Build Coastguard Worker        "service_fuzzer_defaults",
1430*5a923131SAndroid Build Coastguard Worker        "fuzzer_disable_leaks",
1431*5a923131SAndroid Build Coastguard Worker    ],
1432*5a923131SAndroid Build Coastguard Worker    static_libs: [
1433*5a923131SAndroid Build Coastguard Worker        "libupdate_engine_android",
1434*5a923131SAndroid Build Coastguard Worker        "libgflags",
1435*5a923131SAndroid Build Coastguard Worker    ],
1436*5a923131SAndroid Build Coastguard Worker    srcs: [
1437*5a923131SAndroid Build Coastguard Worker        "fuzzers/update_engine_service_fuzzer.cpp",
1438*5a923131SAndroid Build Coastguard Worker        "aosp/metrics_reporter_android.cc",
1439*5a923131SAndroid Build Coastguard Worker    ],
1440*5a923131SAndroid Build Coastguard Worker    fuzz_config: {
1441*5a923131SAndroid Build Coastguard Worker        triage_assignee: "[email protected]",
1442*5a923131SAndroid Build Coastguard Worker        cc: [
1443*5a923131SAndroid Build Coastguard Worker            "[email protected]",
1444*5a923131SAndroid Build Coastguard Worker            "[email protected]",
1445*5a923131SAndroid Build Coastguard Worker        ],
1446*5a923131SAndroid Build Coastguard Worker    },
1447*5a923131SAndroid Build Coastguard Worker}
1448