xref: /aosp_15_r20/frameworks/native/cmds/installd/Android.bp (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
1*38e8c45fSAndroid Build Coastguard Workerpackage {
2*38e8c45fSAndroid Build Coastguard Worker    // See: http://go/android-license-faq
3*38e8c45fSAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
4*38e8c45fSAndroid Build Coastguard Worker    // all of the 'license_kinds' from "frameworks_native_license"
5*38e8c45fSAndroid Build Coastguard Worker    // to get the below license kinds:
6*38e8c45fSAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
7*38e8c45fSAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_native_license"],
8*38e8c45fSAndroid Build Coastguard Worker}
9*38e8c45fSAndroid Build Coastguard Worker
10*38e8c45fSAndroid Build Coastguard Workercc_defaults {
11*38e8c45fSAndroid Build Coastguard Worker    name: "installd_defaults",
12*38e8c45fSAndroid Build Coastguard Worker
13*38e8c45fSAndroid Build Coastguard Worker    cflags: [
14*38e8c45fSAndroid Build Coastguard Worker        "-Wall",
15*38e8c45fSAndroid Build Coastguard Worker        "-Werror",
16*38e8c45fSAndroid Build Coastguard Worker        "-Wextra",
17*38e8c45fSAndroid Build Coastguard Worker
18*38e8c45fSAndroid Build Coastguard Worker        "-Wunreachable-code",
19*38e8c45fSAndroid Build Coastguard Worker        "-Wunreachable-code-break",
20*38e8c45fSAndroid Build Coastguard Worker        "-Wunreachable-code-return",
21*38e8c45fSAndroid Build Coastguard Worker    ],
22*38e8c45fSAndroid Build Coastguard Worker    srcs: [
23*38e8c45fSAndroid Build Coastguard Worker        "CacheItem.cpp",
24*38e8c45fSAndroid Build Coastguard Worker        "CacheTracker.cpp",
25*38e8c45fSAndroid Build Coastguard Worker        "CrateManager.cpp",
26*38e8c45fSAndroid Build Coastguard Worker        "InstalldNativeService.cpp",
27*38e8c45fSAndroid Build Coastguard Worker        "QuotaUtils.cpp",
28*38e8c45fSAndroid Build Coastguard Worker        "SysTrace.cpp",
29*38e8c45fSAndroid Build Coastguard Worker        "dexopt.cpp",
30*38e8c45fSAndroid Build Coastguard Worker        "execv_helper.cpp",
31*38e8c45fSAndroid Build Coastguard Worker        "globals.cpp",
32*38e8c45fSAndroid Build Coastguard Worker        "restorable_file.cpp",
33*38e8c45fSAndroid Build Coastguard Worker        "run_dex2oat.cpp",
34*38e8c45fSAndroid Build Coastguard Worker        "unique_file.cpp",
35*38e8c45fSAndroid Build Coastguard Worker        "utils.cpp",
36*38e8c45fSAndroid Build Coastguard Worker        "utils_default.cpp",
37*38e8c45fSAndroid Build Coastguard Worker        ":installd_aidl",
38*38e8c45fSAndroid Build Coastguard Worker    ],
39*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
40*38e8c45fSAndroid Build Coastguard Worker        "libbase",
41*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
42*38e8c45fSAndroid Build Coastguard Worker        "libcrypto",
43*38e8c45fSAndroid Build Coastguard Worker        "libcutils",
44*38e8c45fSAndroid Build Coastguard Worker        "liblog",
45*38e8c45fSAndroid Build Coastguard Worker        "liblogwrap",
46*38e8c45fSAndroid Build Coastguard Worker        "libprocessgroup",
47*38e8c45fSAndroid Build Coastguard Worker        "libselinux",
48*38e8c45fSAndroid Build Coastguard Worker        "libutils",
49*38e8c45fSAndroid Build Coastguard Worker        "libziparchive",
50*38e8c45fSAndroid Build Coastguard Worker        "server_configurable_flags",
51*38e8c45fSAndroid Build Coastguard Worker    ],
52*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
53*38e8c45fSAndroid Build Coastguard Worker        "libasync_safe",
54*38e8c45fSAndroid Build Coastguard Worker        "libext2_uuid",
55*38e8c45fSAndroid Build Coastguard Worker    ],
56*38e8c45fSAndroid Build Coastguard Worker    export_shared_lib_headers: [
57*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
58*38e8c45fSAndroid Build Coastguard Worker    ],
59*38e8c45fSAndroid Build Coastguard Worker
60*38e8c45fSAndroid Build Coastguard Worker    product_variables: {
61*38e8c45fSAndroid Build Coastguard Worker        arc: {
62*38e8c45fSAndroid Build Coastguard Worker            exclude_srcs: [
63*38e8c45fSAndroid Build Coastguard Worker                "QuotaUtils.cpp",
64*38e8c45fSAndroid Build Coastguard Worker            ],
65*38e8c45fSAndroid Build Coastguard Worker            static_libs: [
66*38e8c45fSAndroid Build Coastguard Worker                "libarcdiskquota",
67*38e8c45fSAndroid Build Coastguard Worker                "arc_services_aidl",
68*38e8c45fSAndroid Build Coastguard Worker            ],
69*38e8c45fSAndroid Build Coastguard Worker            cflags: [
70*38e8c45fSAndroid Build Coastguard Worker                "-DUSE_ARC",
71*38e8c45fSAndroid Build Coastguard Worker            ],
72*38e8c45fSAndroid Build Coastguard Worker        },
73*38e8c45fSAndroid Build Coastguard Worker    },
74*38e8c45fSAndroid Build Coastguard Worker
75*38e8c45fSAndroid Build Coastguard Worker    tidy: true,
76*38e8c45fSAndroid Build Coastguard Worker    tidy_checks: [
77*38e8c45fSAndroid Build Coastguard Worker        "-*",
78*38e8c45fSAndroid Build Coastguard Worker        "clang-analyzer-security*",
79*38e8c45fSAndroid Build Coastguard Worker        "cert-*",
80*38e8c45fSAndroid Build Coastguard Worker        "-cert-err58-cpp",
81*38e8c45fSAndroid Build Coastguard Worker    ],
82*38e8c45fSAndroid Build Coastguard Worker    tidy_checks_as_errors: [
83*38e8c45fSAndroid Build Coastguard Worker        "clang-analyzer-security*",
84*38e8c45fSAndroid Build Coastguard Worker        "cert-*",
85*38e8c45fSAndroid Build Coastguard Worker    ],
86*38e8c45fSAndroid Build Coastguard Worker}
87*38e8c45fSAndroid Build Coastguard Worker
88*38e8c45fSAndroid Build Coastguard Worker//
89*38e8c45fSAndroid Build Coastguard Worker// Static library used in testing and executable
90*38e8c45fSAndroid Build Coastguard Worker//
91*38e8c45fSAndroid Build Coastguard Worker
92*38e8c45fSAndroid Build Coastguard Workercc_library_static {
93*38e8c45fSAndroid Build Coastguard Worker    name: "libinstalld",
94*38e8c45fSAndroid Build Coastguard Worker    defaults: ["installd_defaults"],
95*38e8c45fSAndroid Build Coastguard Worker
96*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: ["."],
97*38e8c45fSAndroid Build Coastguard Worker    aidl: {
98*38e8c45fSAndroid Build Coastguard Worker        export_aidl_headers: true,
99*38e8c45fSAndroid Build Coastguard Worker    },
100*38e8c45fSAndroid Build Coastguard Worker
101*38e8c45fSAndroid Build Coastguard Worker    product_variables: {
102*38e8c45fSAndroid Build Coastguard Worker        arc: {
103*38e8c45fSAndroid Build Coastguard Worker            exclude_srcs: [
104*38e8c45fSAndroid Build Coastguard Worker                "QuotaUtils.cpp",
105*38e8c45fSAndroid Build Coastguard Worker            ],
106*38e8c45fSAndroid Build Coastguard Worker            static_libs: [
107*38e8c45fSAndroid Build Coastguard Worker                "libarcdiskquota",
108*38e8c45fSAndroid Build Coastguard Worker                "arc_services_aidl",
109*38e8c45fSAndroid Build Coastguard Worker            ],
110*38e8c45fSAndroid Build Coastguard Worker            cflags: [
111*38e8c45fSAndroid Build Coastguard Worker                "-DUSE_ARC",
112*38e8c45fSAndroid Build Coastguard Worker            ],
113*38e8c45fSAndroid Build Coastguard Worker        },
114*38e8c45fSAndroid Build Coastguard Worker    },
115*38e8c45fSAndroid Build Coastguard Worker}
116*38e8c45fSAndroid Build Coastguard Worker
117*38e8c45fSAndroid Build Coastguard Workercc_library_headers {
118*38e8c45fSAndroid Build Coastguard Worker    name: "libinstalld_headers",
119*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: ["."],
120*38e8c45fSAndroid Build Coastguard Worker}
121*38e8c45fSAndroid Build Coastguard Worker
122*38e8c45fSAndroid Build Coastguard Worker//
123*38e8c45fSAndroid Build Coastguard Worker// Unit tests
124*38e8c45fSAndroid Build Coastguard Worker//
125*38e8c45fSAndroid Build Coastguard Worker
126*38e8c45fSAndroid Build Coastguard Workercc_test_host {
127*38e8c45fSAndroid Build Coastguard Worker    name: "run_dex2oat_test",
128*38e8c45fSAndroid Build Coastguard Worker    test_suites: ["general-tests"],
129*38e8c45fSAndroid Build Coastguard Worker    srcs: [
130*38e8c45fSAndroid Build Coastguard Worker        "run_dex2oat_test.cpp",
131*38e8c45fSAndroid Build Coastguard Worker        "run_dex2oat.cpp",
132*38e8c45fSAndroid Build Coastguard Worker        "unique_file.cpp",
133*38e8c45fSAndroid Build Coastguard Worker        "execv_helper.cpp",
134*38e8c45fSAndroid Build Coastguard Worker    ],
135*38e8c45fSAndroid Build Coastguard Worker    cflags: [
136*38e8c45fSAndroid Build Coastguard Worker        "-Wall",
137*38e8c45fSAndroid Build Coastguard Worker        "-Werror",
138*38e8c45fSAndroid Build Coastguard Worker    ],
139*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
140*38e8c45fSAndroid Build Coastguard Worker        "libbase",
141*38e8c45fSAndroid Build Coastguard Worker        "server_configurable_flags",
142*38e8c45fSAndroid Build Coastguard Worker    ],
143*38e8c45fSAndroid Build Coastguard Worker    test_config: "run_dex2oat_test.xml",
144*38e8c45fSAndroid Build Coastguard Worker}
145*38e8c45fSAndroid Build Coastguard Worker
146*38e8c45fSAndroid Build Coastguard Worker//
147*38e8c45fSAndroid Build Coastguard Worker// Executable
148*38e8c45fSAndroid Build Coastguard Worker//
149*38e8c45fSAndroid Build Coastguard Worker
150*38e8c45fSAndroid Build Coastguard Workercc_binary {
151*38e8c45fSAndroid Build Coastguard Worker    name: "installd",
152*38e8c45fSAndroid Build Coastguard Worker    defaults: ["installd_defaults"],
153*38e8c45fSAndroid Build Coastguard Worker    srcs: ["installd.cpp"],
154*38e8c45fSAndroid Build Coastguard Worker
155*38e8c45fSAndroid Build Coastguard Worker    static_libs: ["libdiskusage"],
156*38e8c45fSAndroid Build Coastguard Worker
157*38e8c45fSAndroid Build Coastguard Worker    init_rc: ["installd.rc"],
158*38e8c45fSAndroid Build Coastguard Worker
159*38e8c45fSAndroid Build Coastguard Worker    product_variables: {
160*38e8c45fSAndroid Build Coastguard Worker        arc: {
161*38e8c45fSAndroid Build Coastguard Worker            exclude_srcs: [
162*38e8c45fSAndroid Build Coastguard Worker                "QuotaUtils.cpp",
163*38e8c45fSAndroid Build Coastguard Worker            ],
164*38e8c45fSAndroid Build Coastguard Worker            static_libs: [
165*38e8c45fSAndroid Build Coastguard Worker                "libarcdiskquota",
166*38e8c45fSAndroid Build Coastguard Worker                "arc_services_aidl",
167*38e8c45fSAndroid Build Coastguard Worker            ],
168*38e8c45fSAndroid Build Coastguard Worker            cflags: [
169*38e8c45fSAndroid Build Coastguard Worker                "-DUSE_ARC",
170*38e8c45fSAndroid Build Coastguard Worker            ],
171*38e8c45fSAndroid Build Coastguard Worker        },
172*38e8c45fSAndroid Build Coastguard Worker    },
173*38e8c45fSAndroid Build Coastguard Worker
174*38e8c45fSAndroid Build Coastguard Worker    // Needs to be wherever installd is as it's execed by
175*38e8c45fSAndroid Build Coastguard Worker    // installd.
176*38e8c45fSAndroid Build Coastguard Worker    required: ["migrate_legacy_obb_data"],
177*38e8c45fSAndroid Build Coastguard Worker}
178*38e8c45fSAndroid Build Coastguard Worker
179*38e8c45fSAndroid Build Coastguard Worker// OTA chroot tool
180*38e8c45fSAndroid Build Coastguard Worker
181*38e8c45fSAndroid Build Coastguard Workercc_binary {
182*38e8c45fSAndroid Build Coastguard Worker    name: "otapreopt_chroot",
183*38e8c45fSAndroid Build Coastguard Worker    defaults: ["libapexd-deps"],
184*38e8c45fSAndroid Build Coastguard Worker    cflags: [
185*38e8c45fSAndroid Build Coastguard Worker        "-Wall",
186*38e8c45fSAndroid Build Coastguard Worker        "-Werror",
187*38e8c45fSAndroid Build Coastguard Worker    ],
188*38e8c45fSAndroid Build Coastguard Worker
189*38e8c45fSAndroid Build Coastguard Worker    srcs: [
190*38e8c45fSAndroid Build Coastguard Worker        "otapreopt_chroot.cpp",
191*38e8c45fSAndroid Build Coastguard Worker        "otapreopt_utils.cpp",
192*38e8c45fSAndroid Build Coastguard Worker    ],
193*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
194*38e8c45fSAndroid Build Coastguard Worker        "libbase",
195*38e8c45fSAndroid Build Coastguard Worker        "liblog",
196*38e8c45fSAndroid Build Coastguard Worker        "libutils",
197*38e8c45fSAndroid Build Coastguard Worker    ],
198*38e8c45fSAndroid Build Coastguard Worker    required: [
199*38e8c45fSAndroid Build Coastguard Worker        "apexd",
200*38e8c45fSAndroid Build Coastguard Worker    ],
201*38e8c45fSAndroid Build Coastguard Worker}
202*38e8c45fSAndroid Build Coastguard Worker
203*38e8c45fSAndroid Build Coastguard Workerfilegroup {
204*38e8c45fSAndroid Build Coastguard Worker    name: "installd_aidl",
205*38e8c45fSAndroid Build Coastguard Worker    srcs: [
206*38e8c45fSAndroid Build Coastguard Worker        "binder/**/*.aidl",
207*38e8c45fSAndroid Build Coastguard Worker    ],
208*38e8c45fSAndroid Build Coastguard Worker    path: "binder",
209*38e8c45fSAndroid Build Coastguard Worker}
210*38e8c45fSAndroid Build Coastguard Worker
211*38e8c45fSAndroid Build Coastguard Worker//
212*38e8c45fSAndroid Build Coastguard Worker// Static library for otapreopt used in testing
213*38e8c45fSAndroid Build Coastguard Worker//
214*38e8c45fSAndroid Build Coastguard Workercc_library_static {
215*38e8c45fSAndroid Build Coastguard Worker    name: "libotapreoptparameters",
216*38e8c45fSAndroid Build Coastguard Worker    cflags: [
217*38e8c45fSAndroid Build Coastguard Worker        "-Wall",
218*38e8c45fSAndroid Build Coastguard Worker        "-Werror",
219*38e8c45fSAndroid Build Coastguard Worker    ],
220*38e8c45fSAndroid Build Coastguard Worker
221*38e8c45fSAndroid Build Coastguard Worker    srcs: ["otapreopt_parameters.cpp"],
222*38e8c45fSAndroid Build Coastguard Worker
223*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: ["."],
224*38e8c45fSAndroid Build Coastguard Worker
225*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
226*38e8c45fSAndroid Build Coastguard Worker        "libbase",
227*38e8c45fSAndroid Build Coastguard Worker        "libcutils",
228*38e8c45fSAndroid Build Coastguard Worker        "liblog",
229*38e8c45fSAndroid Build Coastguard Worker        "libprocessgroup",
230*38e8c45fSAndroid Build Coastguard Worker        "libutils",
231*38e8c45fSAndroid Build Coastguard Worker    ],
232*38e8c45fSAndroid Build Coastguard Worker}
233*38e8c45fSAndroid Build Coastguard Worker
234*38e8c45fSAndroid Build Coastguard Worker//
235*38e8c45fSAndroid Build Coastguard Worker//  OTA Executable
236*38e8c45fSAndroid Build Coastguard Worker//
237*38e8c45fSAndroid Build Coastguard Worker
238*38e8c45fSAndroid Build Coastguard Workercc_binary {
239*38e8c45fSAndroid Build Coastguard Worker    name: "otapreopt",
240*38e8c45fSAndroid Build Coastguard Worker    cflags: [
241*38e8c45fSAndroid Build Coastguard Worker        "-Wall",
242*38e8c45fSAndroid Build Coastguard Worker        "-Werror",
243*38e8c45fSAndroid Build Coastguard Worker    ],
244*38e8c45fSAndroid Build Coastguard Worker
245*38e8c45fSAndroid Build Coastguard Worker    srcs: [
246*38e8c45fSAndroid Build Coastguard Worker        "dexopt.cpp",
247*38e8c45fSAndroid Build Coastguard Worker        "execv_helper.cpp",
248*38e8c45fSAndroid Build Coastguard Worker        "globals.cpp",
249*38e8c45fSAndroid Build Coastguard Worker        "otapreopt.cpp",
250*38e8c45fSAndroid Build Coastguard Worker        "otapreopt_utils.cpp",
251*38e8c45fSAndroid Build Coastguard Worker        "restorable_file.cpp",
252*38e8c45fSAndroid Build Coastguard Worker        "run_dex2oat.cpp",
253*38e8c45fSAndroid Build Coastguard Worker        "unique_file.cpp",
254*38e8c45fSAndroid Build Coastguard Worker        "utils.cpp",
255*38e8c45fSAndroid Build Coastguard Worker        "utils_default.cpp",
256*38e8c45fSAndroid Build Coastguard Worker    ],
257*38e8c45fSAndroid Build Coastguard Worker
258*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
259*38e8c45fSAndroid Build Coastguard Worker        "libasync_safe",
260*38e8c45fSAndroid Build Coastguard Worker        "libdiskusage",
261*38e8c45fSAndroid Build Coastguard Worker        "libotapreoptparameters",
262*38e8c45fSAndroid Build Coastguard Worker        "libext2_uuid",
263*38e8c45fSAndroid Build Coastguard Worker    ],
264*38e8c45fSAndroid Build Coastguard Worker
265*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
266*38e8c45fSAndroid Build Coastguard Worker        "libbase",
267*38e8c45fSAndroid Build Coastguard Worker        "libcrypto",
268*38e8c45fSAndroid Build Coastguard Worker        "libcutils",
269*38e8c45fSAndroid Build Coastguard Worker        "liblog",
270*38e8c45fSAndroid Build Coastguard Worker        "liblogwrap",
271*38e8c45fSAndroid Build Coastguard Worker        "libprocessgroup",
272*38e8c45fSAndroid Build Coastguard Worker        "libselinux",
273*38e8c45fSAndroid Build Coastguard Worker        "libutils",
274*38e8c45fSAndroid Build Coastguard Worker        "libziparchive",
275*38e8c45fSAndroid Build Coastguard Worker        "server_configurable_flags",
276*38e8c45fSAndroid Build Coastguard Worker    ],
277*38e8c45fSAndroid Build Coastguard Worker}
278*38e8c45fSAndroid Build Coastguard Worker
279*38e8c45fSAndroid Build Coastguard Worker// OTA slot script
280*38e8c45fSAndroid Build Coastguard Workersh_binary {
281*38e8c45fSAndroid Build Coastguard Worker    name: "otapreopt_slot",
282*38e8c45fSAndroid Build Coastguard Worker    src: "otapreopt_slot.sh",
283*38e8c45fSAndroid Build Coastguard Worker    init_rc: ["otapreopt.rc"],
284*38e8c45fSAndroid Build Coastguard Worker}
285*38e8c45fSAndroid Build Coastguard Worker
286*38e8c45fSAndroid Build Coastguard Worker// OTA postinstall script
287*38e8c45fSAndroid Build Coastguard Workersh_binary {
288*38e8c45fSAndroid Build Coastguard Worker    name: "otapreopt_script",
289*38e8c45fSAndroid Build Coastguard Worker    src: "otapreopt_script.sh",
290*38e8c45fSAndroid Build Coastguard Worker    // Let this depend on otapreopt, the chroot tool and the slot script,
291*38e8c45fSAndroid Build Coastguard Worker    // so we just have to mention one in a configuration.
292*38e8c45fSAndroid Build Coastguard Worker    required: [
293*38e8c45fSAndroid Build Coastguard Worker        "otapreopt",
294*38e8c45fSAndroid Build Coastguard Worker        "otapreopt_chroot",
295*38e8c45fSAndroid Build Coastguard Worker        "otapreopt_slot",
296*38e8c45fSAndroid Build Coastguard Worker    ],
297*38e8c45fSAndroid Build Coastguard Worker}
298*38e8c45fSAndroid Build Coastguard Worker
299*38e8c45fSAndroid Build Coastguard Worker// Script to migrate legacy obb data.
300*38e8c45fSAndroid Build Coastguard Workersh_binary {
301*38e8c45fSAndroid Build Coastguard Worker    name: "migrate_legacy_obb_data",
302*38e8c45fSAndroid Build Coastguard Worker    src: "migrate_legacy_obb_data.sh",
303*38e8c45fSAndroid Build Coastguard Worker}
304