xref: /aosp_15_r20/system/apex/tests/testdata/vendorapex/Android.bp (revision 33f3758387333dbd2962d7edbd98681940d895da)
1*33f37583SAndroid Build Coastguard Worker// Copyright (C) 2022 The Android Open Source Project
2*33f37583SAndroid Build Coastguard Worker//
3*33f37583SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*33f37583SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*33f37583SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*33f37583SAndroid Build Coastguard Worker//
7*33f37583SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*33f37583SAndroid Build Coastguard Worker//
9*33f37583SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*33f37583SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*33f37583SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*33f37583SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*33f37583SAndroid Build Coastguard Worker// limitations under the License.
14*33f37583SAndroid Build Coastguard Worker
15*33f37583SAndroid Build Coastguard Workerpackage {
16*33f37583SAndroid Build Coastguard Worker    default_applicable_licenses: ["Android-Apache-2.0"],
17*33f37583SAndroid Build Coastguard Worker}
18*33f37583SAndroid Build Coastguard Worker
19*33f37583SAndroid Build Coastguard Workerapex_key {
20*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.foo.key",
21*33f37583SAndroid Build Coastguard Worker    public_key: "com.android.apex.vendor.foo.avbpubkey",
22*33f37583SAndroid Build Coastguard Worker    private_key: "com.android.apex.vendor.foo.pem",
23*33f37583SAndroid Build Coastguard Worker}
24*33f37583SAndroid Build Coastguard Worker
25*33f37583SAndroid Build Coastguard Workerandroid_app_certificate {
26*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.foo.certificate",
27*33f37583SAndroid Build Coastguard Worker    certificate: "com.android.apex.vendor.foo",
28*33f37583SAndroid Build Coastguard Worker}
29*33f37583SAndroid Build Coastguard Worker
30*33f37583SAndroid Build Coastguard Workerapex_defaults {
31*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.foo.defaults",
32*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v1.json",
33*33f37583SAndroid Build Coastguard Worker    file_contexts: "file_contexts",
34*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.vendor.foo.key",
35*33f37583SAndroid Build Coastguard Worker    certificate: ":com.android.apex.vendor.foo.certificate",
36*33f37583SAndroid Build Coastguard Worker    vendor: true,
37*33f37583SAndroid Build Coastguard Worker    updatable: false,
38*33f37583SAndroid Build Coastguard Worker    installable: false,
39*33f37583SAndroid Build Coastguard Worker}
40*33f37583SAndroid Build Coastguard Worker
41*33f37583SAndroid Build Coastguard Workerapex_test {
42*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.foo",
43*33f37583SAndroid Build Coastguard Worker    defaults: [
44*33f37583SAndroid Build Coastguard Worker        "com.android.apex.vendor.foo.defaults",
45*33f37583SAndroid Build Coastguard Worker    ],
46*33f37583SAndroid Build Coastguard Worker}
47*33f37583SAndroid Build Coastguard Worker
48*33f37583SAndroid Build Coastguard Workerapex_test {
49*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.bar",
50*33f37583SAndroid Build Coastguard Worker    defaults: [
51*33f37583SAndroid Build Coastguard Worker        "com.android.apex.vendor.foo.defaults",
52*33f37583SAndroid Build Coastguard Worker    ],
53*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_bar_v1.json",
54*33f37583SAndroid Build Coastguard Worker}
55*33f37583SAndroid Build Coastguard Worker
56*33f37583SAndroid Build Coastguard Workerapex_test {
57*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.foo.v2",
58*33f37583SAndroid Build Coastguard Worker    defaults: [
59*33f37583SAndroid Build Coastguard Worker        "com.android.apex.vendor.foo.defaults",
60*33f37583SAndroid Build Coastguard Worker    ],
61*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2.json",
62*33f37583SAndroid Build Coastguard Worker}
63*33f37583SAndroid Build Coastguard Worker
64*33f37583SAndroid Build Coastguard Workerapex_test {
65*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.foo.v2_with_requireNativeLibs",
66*33f37583SAndroid Build Coastguard Worker    defaults: [
67*33f37583SAndroid Build Coastguard Worker        "com.android.apex.vendor.foo.defaults",
68*33f37583SAndroid Build Coastguard Worker    ],
69*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2.json",
70*33f37583SAndroid Build Coastguard Worker    binaries: [
71*33f37583SAndroid Build Coastguard Worker        "apex_vendor_foo_test_binary",
72*33f37583SAndroid Build Coastguard Worker    ],
73*33f37583SAndroid Build Coastguard Worker    skip_validations: {
74*33f37583SAndroid Build Coastguard Worker        apex_sepolicy_tests: true, // we don't have a valid label for the test binary
75*33f37583SAndroid Build Coastguard Worker    },
76*33f37583SAndroid Build Coastguard Worker}
77*33f37583SAndroid Build Coastguard Worker
78*33f37583SAndroid Build Coastguard Workercc_binary {
79*33f37583SAndroid Build Coastguard Worker    name: "apex_vendor_foo_test_binary",
80*33f37583SAndroid Build Coastguard Worker    shared_libs: [
81*33f37583SAndroid Build Coastguard Worker        "libbinder_ndk", // will add "requireNativeLibs"
82*33f37583SAndroid Build Coastguard Worker    ],
83*33f37583SAndroid Build Coastguard Worker    srcs: [
84*33f37583SAndroid Build Coastguard Worker        "apex_vendor_foo_test_binary.cpp",
85*33f37583SAndroid Build Coastguard Worker    ],
86*33f37583SAndroid Build Coastguard Worker    vendor: true,
87*33f37583SAndroid Build Coastguard Worker    installable: false,
88*33f37583SAndroid Build Coastguard Worker}
89*33f37583SAndroid Build Coastguard Worker
90*33f37583SAndroid Build Coastguard Workerapex_test {
91*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.foo.apex.all.ready",
92*33f37583SAndroid Build Coastguard Worker    defaults: [
93*33f37583SAndroid Build Coastguard Worker        "com.android.apex.vendor.foo.defaults",
94*33f37583SAndroid Build Coastguard Worker    ],
95*33f37583SAndroid Build Coastguard Worker    prebuilts: [
96*33f37583SAndroid Build Coastguard Worker        "foo.apex.all.ready.rc",
97*33f37583SAndroid Build Coastguard Worker    ],
98*33f37583SAndroid Build Coastguard Worker}
99*33f37583SAndroid Build Coastguard Worker
100*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
101*33f37583SAndroid Build Coastguard Worker    name: "foo.apex.all.ready.rc",
102*33f37583SAndroid Build Coastguard Worker    src: "foo.apex.all.ready.rc",
103*33f37583SAndroid Build Coastguard Worker}
104*33f37583SAndroid Build Coastguard Worker
105*33f37583SAndroid Build Coastguard Worker// Runs forever like /bin/yes
106*33f37583SAndroid Build Coastguard Workercc_binary {
107*33f37583SAndroid Build Coastguard Worker    name: "apex_vendor_foo",
108*33f37583SAndroid Build Coastguard Worker    srcs: [
109*33f37583SAndroid Build Coastguard Worker        "apex_vendor_foo.cpp",
110*33f37583SAndroid Build Coastguard Worker    ],
111*33f37583SAndroid Build Coastguard Worker    vendor: true,
112*33f37583SAndroid Build Coastguard Worker    installable: false,
113*33f37583SAndroid Build Coastguard Worker}
114*33f37583SAndroid Build Coastguard Worker
115*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
116*33f37583SAndroid Build Coastguard Worker    name: "apex_vendor_foo_v1.rc",
117*33f37583SAndroid Build Coastguard Worker    src: "apex_vendor_foo_v1.rc",
118*33f37583SAndroid Build Coastguard Worker}
119*33f37583SAndroid Build Coastguard Worker
120*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
121*33f37583SAndroid Build Coastguard Worker    name: "apex_vendor_foo_v2.rc",
122*33f37583SAndroid Build Coastguard Worker    src: "apex_vendor_foo_v2.rc",
123*33f37583SAndroid Build Coastguard Worker}
124*33f37583SAndroid Build Coastguard Worker
125*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
126*33f37583SAndroid Build Coastguard Worker    name: "apex_vendor_foo_v2.xml",
127*33f37583SAndroid Build Coastguard Worker    src: "apex_vendor_foo_v2.xml",
128*33f37583SAndroid Build Coastguard Worker    sub_dir: "vintf",
129*33f37583SAndroid Build Coastguard Worker    installable: false,
130*33f37583SAndroid Build Coastguard Worker}
131*33f37583SAndroid Build Coastguard Worker
132*33f37583SAndroid Build Coastguard Workerapex_test {
133*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.foo.v1_with_service",
134*33f37583SAndroid Build Coastguard Worker    defaults: [
135*33f37583SAndroid Build Coastguard Worker        "com.android.apex.vendor.foo.defaults",
136*33f37583SAndroid Build Coastguard Worker    ],
137*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v1.json",
138*33f37583SAndroid Build Coastguard Worker    binaries: [
139*33f37583SAndroid Build Coastguard Worker        "apex_vendor_foo",
140*33f37583SAndroid Build Coastguard Worker    ],
141*33f37583SAndroid Build Coastguard Worker    prebuilts: [
142*33f37583SAndroid Build Coastguard Worker        "apex_vendor_foo_v1.rc",
143*33f37583SAndroid Build Coastguard Worker    ],
144*33f37583SAndroid Build Coastguard Worker}
145*33f37583SAndroid Build Coastguard Worker
146*33f37583SAndroid Build Coastguard Workerapex_test {
147*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.foo.v2_with_service",
148*33f37583SAndroid Build Coastguard Worker    defaults: [
149*33f37583SAndroid Build Coastguard Worker        "com.android.apex.vendor.foo.defaults",
150*33f37583SAndroid Build Coastguard Worker    ],
151*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2.json",
152*33f37583SAndroid Build Coastguard Worker    binaries: [
153*33f37583SAndroid Build Coastguard Worker        "apex_vendor_foo",
154*33f37583SAndroid Build Coastguard Worker    ],
155*33f37583SAndroid Build Coastguard Worker    prebuilts: [
156*33f37583SAndroid Build Coastguard Worker        "apex_vendor_foo_v2.rc",
157*33f37583SAndroid Build Coastguard Worker    ],
158*33f37583SAndroid Build Coastguard Worker}
159*33f37583SAndroid Build Coastguard Worker
160*33f37583SAndroid Build Coastguard Workerapex_test {
161*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.foo.v2_with_wrong_vndk_version",
162*33f37583SAndroid Build Coastguard Worker    defaults: [
163*33f37583SAndroid Build Coastguard Worker        "com.android.apex.vendor.foo.defaults",
164*33f37583SAndroid Build Coastguard Worker    ],
165*33f37583SAndroid Build Coastguard Worker    manifest: ":manifest_v2_with_wrong_vndk_version.json",
166*33f37583SAndroid Build Coastguard Worker}
167*33f37583SAndroid Build Coastguard Worker
168*33f37583SAndroid Build Coastguard Workergenrule {
169*33f37583SAndroid Build Coastguard Worker    name: "manifest_v2_with_wrong_vndk_version.json",
170*33f37583SAndroid Build Coastguard Worker    out: ["manifest_v2_with_wrong_vndk_version.json"],
171*33f37583SAndroid Build Coastguard Worker    srcs: ["manifest_v2.json"],
172*33f37583SAndroid Build Coastguard Worker    tools: ["jsonmodify"],
173*33f37583SAndroid Build Coastguard Worker    cmd: "$(location jsonmodify) -v vndkVersion WrongVndkVersion $(in) -o $(out)",
174*33f37583SAndroid Build Coastguard Worker}
175*33f37583SAndroid Build Coastguard Worker
176*33f37583SAndroid Build Coastguard Workerapex_test {
177*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.foo.with_vintf",
178*33f37583SAndroid Build Coastguard Worker    defaults: [
179*33f37583SAndroid Build Coastguard Worker        "com.android.apex.vendor.foo.defaults",
180*33f37583SAndroid Build Coastguard Worker    ],
181*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2.json",
182*33f37583SAndroid Build Coastguard Worker    binaries: [
183*33f37583SAndroid Build Coastguard Worker        "apex_vendor_foo",
184*33f37583SAndroid Build Coastguard Worker    ],
185*33f37583SAndroid Build Coastguard Worker    prebuilts: [
186*33f37583SAndroid Build Coastguard Worker        "apex_vendor_foo_v2.rc",
187*33f37583SAndroid Build Coastguard Worker        "apex_vendor_foo_v2.xml",
188*33f37583SAndroid Build Coastguard Worker    ],
189*33f37583SAndroid Build Coastguard Worker}
190*33f37583SAndroid Build Coastguard Worker
191*33f37583SAndroid Build Coastguard Worker// Test apex conflicting with com.android.apex.vendor.foo.v2_with_vintf
192*33f37583SAndroid Build Coastguard Workerapex_test {
193*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.bar.v2_with_vintf",
194*33f37583SAndroid Build Coastguard Worker    defaults: [
195*33f37583SAndroid Build Coastguard Worker        "com.android.apex.vendor.foo.defaults",
196*33f37583SAndroid Build Coastguard Worker    ],
197*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_bar_v2.json",
198*33f37583SAndroid Build Coastguard Worker    prebuilts: [
199*33f37583SAndroid Build Coastguard Worker        "apex_vendor_foo_v2.xml",
200*33f37583SAndroid Build Coastguard Worker    ],
201*33f37583SAndroid Build Coastguard Worker}
202*33f37583SAndroid Build Coastguard Worker
203*33f37583SAndroid Build Coastguard Worker// Test apex for updating com.android.hardware.wifi, with an
204*33f37583SAndroid Build Coastguard Worker//    updatable-via-apex value that doesn't match wifi's interface.
205*33f37583SAndroid Build Coastguard Workerapex_test {
206*33f37583SAndroid Build Coastguard Worker    name: "test.bad1.com.android.hardware.wifi",
207*33f37583SAndroid Build Coastguard Worker    manifest: "wifi_manifest_rebootless.json",
208*33f37583SAndroid Build Coastguard Worker    key: "com.android.hardware.key",
209*33f37583SAndroid Build Coastguard Worker    certificate: ":com.android.hardware.certificate",
210*33f37583SAndroid Build Coastguard Worker    file_contexts: "wifi_file_contexts",
211*33f37583SAndroid Build Coastguard Worker    updatable: false,
212*33f37583SAndroid Build Coastguard Worker    soc_specific: true,
213*33f37583SAndroid Build Coastguard Worker    installable: false,
214*33f37583SAndroid Build Coastguard Worker    prebuilts: [
215*33f37583SAndroid Build Coastguard Worker        "vintf_fragment_wifi_bad1.xml",
216*33f37583SAndroid Build Coastguard Worker        "com.android.hardware.wifi.rc",
217*33f37583SAndroid Build Coastguard Worker    ],
218*33f37583SAndroid Build Coastguard Worker}
219*33f37583SAndroid Build Coastguard Worker
220*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
221*33f37583SAndroid Build Coastguard Worker    name: "vintf_fragment_wifi_bad1.xml",
222*33f37583SAndroid Build Coastguard Worker    src: "vintf_fragment_wifi_bad1.xml",
223*33f37583SAndroid Build Coastguard Worker    installable: false,
224*33f37583SAndroid Build Coastguard Worker    sub_dir: "vintf", // Puts fragment into etc/vintf
225*33f37583SAndroid Build Coastguard Worker}
226*33f37583SAndroid Build Coastguard Worker
227*33f37583SAndroid Build Coastguard Worker// Creates wifi test apex where its vintf fragment has invalid XML syntax
228*33f37583SAndroid Build Coastguard Worker//    (an unclosed tag)
229*33f37583SAndroid Build Coastguard Workerapex_test {
230*33f37583SAndroid Build Coastguard Worker    name: "test.bad2.com.android.hardware.wifi",
231*33f37583SAndroid Build Coastguard Worker    manifest: "wifi_manifest_rebootless.json",
232*33f37583SAndroid Build Coastguard Worker    key: "com.android.hardware.key",
233*33f37583SAndroid Build Coastguard Worker    certificate: ":com.android.hardware.certificate",
234*33f37583SAndroid Build Coastguard Worker    file_contexts: "wifi_file_contexts",
235*33f37583SAndroid Build Coastguard Worker    updatable: false,
236*33f37583SAndroid Build Coastguard Worker    soc_specific: true,
237*33f37583SAndroid Build Coastguard Worker    installable: false,
238*33f37583SAndroid Build Coastguard Worker    prebuilts: [
239*33f37583SAndroid Build Coastguard Worker        "vintf_fragment_wifi_bad2.xml",
240*33f37583SAndroid Build Coastguard Worker        "com.android.hardware.wifi.rc",
241*33f37583SAndroid Build Coastguard Worker    ],
242*33f37583SAndroid Build Coastguard Worker}
243*33f37583SAndroid Build Coastguard Worker
244*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
245*33f37583SAndroid Build Coastguard Worker    name: "vintf_fragment_wifi_bad2.xml",
246*33f37583SAndroid Build Coastguard Worker    src: "vintf_fragment_wifi_bad2.xml",
247*33f37583SAndroid Build Coastguard Worker    installable: false,
248*33f37583SAndroid Build Coastguard Worker    sub_dir: "vintf",
249*33f37583SAndroid Build Coastguard Worker}
250*33f37583SAndroid Build Coastguard Worker
251*33f37583SAndroid Build Coastguard Worker// Test apex for updating com.android.hardware.wifi, with a
252*33f37583SAndroid Build Coastguard Worker//    good apex
253*33f37583SAndroid Build Coastguard Workerapex_test {
254*33f37583SAndroid Build Coastguard Worker    name: "test.good1.com.android.hardware.wifi",
255*33f37583SAndroid Build Coastguard Worker    manifest: "wifi_manifest_rebootless.json",
256*33f37583SAndroid Build Coastguard Worker    key: "com.android.hardware.key",
257*33f37583SAndroid Build Coastguard Worker    certificate: ":com.android.hardware.certificate",
258*33f37583SAndroid Build Coastguard Worker    file_contexts: "wifi_file_contexts",
259*33f37583SAndroid Build Coastguard Worker    updatable: false,
260*33f37583SAndroid Build Coastguard Worker    soc_specific: true,
261*33f37583SAndroid Build Coastguard Worker    installable: false,
262*33f37583SAndroid Build Coastguard Worker    prebuilts: [
263*33f37583SAndroid Build Coastguard Worker        "vintf_fragment_wifi_good1.xml",
264*33f37583SAndroid Build Coastguard Worker        "com.android.hardware.wifi.rc",
265*33f37583SAndroid Build Coastguard Worker    ],
266*33f37583SAndroid Build Coastguard Worker}
267*33f37583SAndroid Build Coastguard Worker
268*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
269*33f37583SAndroid Build Coastguard Worker    name: "vintf_fragment_wifi_good1.xml",
270*33f37583SAndroid Build Coastguard Worker    src: "vintf_fragment_wifi_service.xml",
271*33f37583SAndroid Build Coastguard Worker    installable: false,
272*33f37583SAndroid Build Coastguard Worker    sub_dir: "vintf", // Puts fragment into etc/vintf
273*33f37583SAndroid Build Coastguard Worker}
274*33f37583SAndroid Build Coastguard Worker
275*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
276*33f37583SAndroid Build Coastguard Worker    name: "apex_vendor_foo_bootstrap.rc",
277*33f37583SAndroid Build Coastguard Worker    src: "apex_vendor_foo_bootstrap.rc",
278*33f37583SAndroid Build Coastguard Worker    vendor: true,
279*33f37583SAndroid Build Coastguard Worker    installable: false,
280*33f37583SAndroid Build Coastguard Worker}
281*33f37583SAndroid Build Coastguard Worker
282*33f37583SAndroid Build Coastguard Workerapex_test {
283*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.vendor.foo.bootstrap",
284*33f37583SAndroid Build Coastguard Worker    defaults: [
285*33f37583SAndroid Build Coastguard Worker        "com.android.apex.vendor.foo.defaults",
286*33f37583SAndroid Build Coastguard Worker    ],
287*33f37583SAndroid Build Coastguard Worker    binaries: [
288*33f37583SAndroid Build Coastguard Worker        "apex_vendor_foo",
289*33f37583SAndroid Build Coastguard Worker    ],
290*33f37583SAndroid Build Coastguard Worker    prebuilts: [
291*33f37583SAndroid Build Coastguard Worker        "apex_vendor_foo_bootstrap.rc",
292*33f37583SAndroid Build Coastguard Worker    ],
293*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_bootstrap.json",
294*33f37583SAndroid Build Coastguard Worker}
295