xref: /aosp_15_r20/system/apex/shim/build/Android.bp (revision 33f3758387333dbd2962d7edbd98681940d895da)
1*33f37583SAndroid Build Coastguard Worker// Copyright (C) 2019 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 Worker// Build rules to build shim apexes.
16*33f37583SAndroid Build Coastguard Worker
17*33f37583SAndroid Build Coastguard Workerpackage {
18*33f37583SAndroid Build Coastguard Worker    default_applicable_licenses: ["Android-Apache-2.0"],
19*33f37583SAndroid Build Coastguard Worker}
20*33f37583SAndroid Build Coastguard Worker
21*33f37583SAndroid Build Coastguard Workergenrule {
22*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.pem",
23*33f37583SAndroid Build Coastguard Worker    out: ["com.android.apex.cts.shim.pem"],
24*33f37583SAndroid Build Coastguard Worker    cmd: "openssl genrsa -out $(out) 4096",
25*33f37583SAndroid Build Coastguard Worker}
26*33f37583SAndroid Build Coastguard Worker
27*33f37583SAndroid Build Coastguard Workergenrule {
28*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.pubkey",
29*33f37583SAndroid Build Coastguard Worker    srcs: [":com.android.apex.cts.shim.pem"],
30*33f37583SAndroid Build Coastguard Worker    out: ["com.android.apex.cts.shim.pubkey"],
31*33f37583SAndroid Build Coastguard Worker    tools: ["avbtool"],
32*33f37583SAndroid Build Coastguard Worker    cmd: "$(location avbtool) extract_public_key --key $(in) --output $(out)",
33*33f37583SAndroid Build Coastguard Worker}
34*33f37583SAndroid Build Coastguard Worker
35*33f37583SAndroid Build Coastguard Workerapex_key {
36*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.key",
37*33f37583SAndroid Build Coastguard Worker    private_key: ":com.android.apex.cts.shim.pem",
38*33f37583SAndroid Build Coastguard Worker    public_key: ":com.android.apex.cts.shim.pubkey",
39*33f37583SAndroid Build Coastguard Worker    installable: false,
40*33f37583SAndroid Build Coastguard Worker}
41*33f37583SAndroid Build Coastguard Worker
42*33f37583SAndroid Build Coastguard Workergenrule {
43*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.debug.pem",
44*33f37583SAndroid Build Coastguard Worker    out: ["com.android.apex.cts.shim.debug.pem"],
45*33f37583SAndroid Build Coastguard Worker    cmd: "openssl genrsa -out $(out) 4096",
46*33f37583SAndroid Build Coastguard Worker}
47*33f37583SAndroid Build Coastguard Worker
48*33f37583SAndroid Build Coastguard Workergenrule {
49*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.debug.pubkey",
50*33f37583SAndroid Build Coastguard Worker    srcs: [":com.android.apex.cts.shim.debug.pem"],
51*33f37583SAndroid Build Coastguard Worker    out: ["com.android.apex.cts.shim.debug.pubkey"],
52*33f37583SAndroid Build Coastguard Worker    tools: ["avbtool"],
53*33f37583SAndroid Build Coastguard Worker    cmd: "$(location avbtool) extract_public_key --key $(in) --output $(out)",
54*33f37583SAndroid Build Coastguard Worker}
55*33f37583SAndroid Build Coastguard Worker
56*33f37583SAndroid Build Coastguard Workerapex_key {
57*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.debug.key",
58*33f37583SAndroid Build Coastguard Worker    private_key: ":com.android.apex.cts.shim.debug.pem",
59*33f37583SAndroid Build Coastguard Worker    public_key: ":com.android.apex.cts.shim.debug.pubkey",
60*33f37583SAndroid Build Coastguard Worker    installable: false,
61*33f37583SAndroid Build Coastguard Worker}
62*33f37583SAndroid Build Coastguard Worker
63*33f37583SAndroid Build Coastguard Workergenrule {
64*33f37583SAndroid Build Coastguard Worker    name: "generate_hash_of_dev_null",
65*33f37583SAndroid Build Coastguard Worker    out: ["hash.txt"],
66*33f37583SAndroid Build Coastguard Worker    cmd: "sha512sum -b /dev/null | cut -d' ' -f1 | tee $(out)",
67*33f37583SAndroid Build Coastguard Worker}
68*33f37583SAndroid Build Coastguard Worker
69*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
70*33f37583SAndroid Build Coastguard Worker    name: "hash_of_dev_null",
71*33f37583SAndroid Build Coastguard Worker    src: ":generate_hash_of_dev_null",
72*33f37583SAndroid Build Coastguard Worker    filename: "hash.txt",
73*33f37583SAndroid Build Coastguard Worker    installable: false,
74*33f37583SAndroid Build Coastguard Worker}
75*33f37583SAndroid Build Coastguard Worker
76*33f37583SAndroid Build Coastguard Workerapex {
77*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v3",
78*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v3.json",
79*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
80*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
81*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
82*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
83*33f37583SAndroid Build Coastguard Worker    apps: [
84*33f37583SAndroid Build Coastguard Worker        "CtsShim",
85*33f37583SAndroid Build Coastguard Worker        "CtsShimPriv",
86*33f37583SAndroid Build Coastguard Worker    ],
87*33f37583SAndroid Build Coastguard Worker    installable: false,
88*33f37583SAndroid Build Coastguard Worker    allowed_files: "default_shim_allowed_list.txt",
89*33f37583SAndroid Build Coastguard Worker    updatable: false,
90*33f37583SAndroid Build Coastguard Worker}
91*33f37583SAndroid Build Coastguard Worker
92*33f37583SAndroid Build Coastguard Workerapex {
93*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2",
94*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2.json",
95*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
96*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
97*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
98*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
99*33f37583SAndroid Build Coastguard Worker    apps: [
100*33f37583SAndroid Build Coastguard Worker        "CtsShim",
101*33f37583SAndroid Build Coastguard Worker        "CtsShimPriv",
102*33f37583SAndroid Build Coastguard Worker    ],
103*33f37583SAndroid Build Coastguard Worker    installable: false,
104*33f37583SAndroid Build Coastguard Worker    allowed_files: "default_shim_allowed_list.txt",
105*33f37583SAndroid Build Coastguard Worker    updatable: false,
106*33f37583SAndroid Build Coastguard Worker}
107*33f37583SAndroid Build Coastguard Worker
108*33f37583SAndroid Build Coastguard Workerapex {
109*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_sign_payload_with_different_key",
110*33f37583SAndroid Build Coastguard Worker    // Use manifest_v2_rebootless to also re-use this APEX in the rebootless update test case.
111*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2_rebootless.json",
112*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
113*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
114*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.debug.key",
115*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
116*33f37583SAndroid Build Coastguard Worker    installable: false,
117*33f37583SAndroid Build Coastguard Worker    allowed_files: "default_shim_allowed_list.txt",
118*33f37583SAndroid Build Coastguard Worker    updatable: false,
119*33f37583SAndroid Build Coastguard Worker}
120*33f37583SAndroid Build Coastguard Worker
121*33f37583SAndroid Build Coastguard Workerapex {
122*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_without_apk_in_apex",
123*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2.json",
124*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
125*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
126*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
127*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
128*33f37583SAndroid Build Coastguard Worker    installable: false,
129*33f37583SAndroid Build Coastguard Worker    allowed_files: "default_shim_allowed_list.txt",
130*33f37583SAndroid Build Coastguard Worker    updatable: false,
131*33f37583SAndroid Build Coastguard Worker}
132*33f37583SAndroid Build Coastguard Worker
133*33f37583SAndroid Build Coastguard Workerapex {
134*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_unsigned_payload",
135*33f37583SAndroid Build Coastguard Worker    // Use manifest_v2_rebootless to also re-use this APEX in the rebootless update test case.
136*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2_rebootless.json",
137*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
138*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
139*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
140*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
141*33f37583SAndroid Build Coastguard Worker    apps: [
142*33f37583SAndroid Build Coastguard Worker        "CtsShim",
143*33f37583SAndroid Build Coastguard Worker        "CtsShimPriv",
144*33f37583SAndroid Build Coastguard Worker    ],
145*33f37583SAndroid Build Coastguard Worker    installable: false,
146*33f37583SAndroid Build Coastguard Worker    allowed_files: "default_shim_allowed_list.txt",
147*33f37583SAndroid Build Coastguard Worker    test_only_unsigned_payload: true,
148*33f37583SAndroid Build Coastguard Worker    updatable: false,
149*33f37583SAndroid Build Coastguard Worker}
150*33f37583SAndroid Build Coastguard Worker
151*33f37583SAndroid Build Coastguard Workeroverride_apex {
152*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_different_package_name",
153*33f37583SAndroid Build Coastguard Worker    package_name: "com.android.apex.cts.shim.different",
154*33f37583SAndroid Build Coastguard Worker    // Use rebootless APEX to re-use this APEX in the rebootless update test case.
155*33f37583SAndroid Build Coastguard Worker    base: "com.android.apex.cts.shim.v2_rebootless",
156*33f37583SAndroid Build Coastguard Worker}
157*33f37583SAndroid Build Coastguard Worker
158*33f37583SAndroid Build Coastguard Workergenrule {
159*33f37583SAndroid Build Coastguard Worker    name: "generate_empty_hash",
160*33f37583SAndroid Build Coastguard Worker    out: ["hash.txt"],
161*33f37583SAndroid Build Coastguard Worker    cmd: "touch $(out)",
162*33f37583SAndroid Build Coastguard Worker}
163*33f37583SAndroid Build Coastguard Worker
164*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
165*33f37583SAndroid Build Coastguard Worker    name: "empty_hash",
166*33f37583SAndroid Build Coastguard Worker    src: ":generate_empty_hash",
167*33f37583SAndroid Build Coastguard Worker    filename: "hash.txt",
168*33f37583SAndroid Build Coastguard Worker    installable: false,
169*33f37583SAndroid Build Coastguard Worker}
170*33f37583SAndroid Build Coastguard Worker
171*33f37583SAndroid Build Coastguard Worker// Use empty hash.txt to make sure that this apex has wrong SHA512, hence trying
172*33f37583SAndroid Build Coastguard Worker// to stage it should fail.
173*33f37583SAndroid Build Coastguard Workerapex {
174*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_wrong_sha",
175*33f37583SAndroid Build Coastguard Worker    // Use manifest_v2_rebootless to also re-use this APEX in the rebootless update test case.
176*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2_rebootless.json",
177*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
178*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
179*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
180*33f37583SAndroid Build Coastguard Worker    prebuilts: ["empty_hash"],
181*33f37583SAndroid Build Coastguard Worker    installable: false,
182*33f37583SAndroid Build Coastguard Worker    updatable: false,
183*33f37583SAndroid Build Coastguard Worker}
184*33f37583SAndroid Build Coastguard Worker
185*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
186*33f37583SAndroid Build Coastguard Worker    name: "apex_shim_additional_file",
187*33f37583SAndroid Build Coastguard Worker    src: "additional_file",
188*33f37583SAndroid Build Coastguard Worker    filename: "additional_file",
189*33f37583SAndroid Build Coastguard Worker    installable: false,
190*33f37583SAndroid Build Coastguard Worker}
191*33f37583SAndroid Build Coastguard Worker
192*33f37583SAndroid Build Coastguard Workerapex {
193*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_additional_file",
194*33f37583SAndroid Build Coastguard Worker    // Use manifest_v2_rebootless to also re-use this APEX in the rebootless update test case.
195*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2_rebootless.json",
196*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
197*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
198*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
199*33f37583SAndroid Build Coastguard Worker    prebuilts: [
200*33f37583SAndroid Build Coastguard Worker        "hash_of_dev_null",
201*33f37583SAndroid Build Coastguard Worker        "apex_shim_additional_file",
202*33f37583SAndroid Build Coastguard Worker    ],
203*33f37583SAndroid Build Coastguard Worker    installable: false,
204*33f37583SAndroid Build Coastguard Worker    updatable: false,
205*33f37583SAndroid Build Coastguard Worker}
206*33f37583SAndroid Build Coastguard Worker
207*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
208*33f37583SAndroid Build Coastguard Worker    name: "apex_shim_additional_folder",
209*33f37583SAndroid Build Coastguard Worker    src: "additional_file",
210*33f37583SAndroid Build Coastguard Worker    filename: "additional_file",
211*33f37583SAndroid Build Coastguard Worker    sub_dir: "additional_folder",
212*33f37583SAndroid Build Coastguard Worker    installable: false,
213*33f37583SAndroid Build Coastguard Worker}
214*33f37583SAndroid Build Coastguard Worker
215*33f37583SAndroid Build Coastguard Workerapex {
216*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_additional_folder",
217*33f37583SAndroid Build Coastguard Worker    // Use manifest_v2_rebootless to also re-use this APEX in the rebootless update test case.
218*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2_rebootless.json",
219*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
220*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
221*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
222*33f37583SAndroid Build Coastguard Worker    prebuilts: [
223*33f37583SAndroid Build Coastguard Worker        "hash_of_dev_null",
224*33f37583SAndroid Build Coastguard Worker        "apex_shim_additional_folder",
225*33f37583SAndroid Build Coastguard Worker    ],
226*33f37583SAndroid Build Coastguard Worker    installable: false,
227*33f37583SAndroid Build Coastguard Worker    updatable: false,
228*33f37583SAndroid Build Coastguard Worker}
229*33f37583SAndroid Build Coastguard Worker
230*33f37583SAndroid Build Coastguard Workerapex {
231*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_with_pre_install_hook",
232*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2_with_pre_install_hook.json",
233*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
234*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
235*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
236*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
237*33f37583SAndroid Build Coastguard Worker    installable: false,
238*33f37583SAndroid Build Coastguard Worker    updatable: false,
239*33f37583SAndroid Build Coastguard Worker}
240*33f37583SAndroid Build Coastguard Worker
241*33f37583SAndroid Build Coastguard Workerapex {
242*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_with_post_install_hook",
243*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2_with_post_install_hook.json",
244*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
245*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
246*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
247*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
248*33f37583SAndroid Build Coastguard Worker    installable: false,
249*33f37583SAndroid Build Coastguard Worker    updatable: false,
250*33f37583SAndroid Build Coastguard Worker}
251*33f37583SAndroid Build Coastguard Worker
252*33f37583SAndroid Build Coastguard Workerjava_genrule {
253*33f37583SAndroid Build Coastguard Worker    name: "generate_hash_v1",
254*33f37583SAndroid Build Coastguard Worker    srcs: [
255*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2",
256*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_add_apk_to_apex",
257*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_without_apk_in_apex",
258*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_additional_file",
259*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_additional_folder",
260*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_different_certificate",
261*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_different_package_name",
262*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_signed_bob",
263*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_signed_bob_rot",
264*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_signed_bob_rot_rollback",
265*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_with_pre_install_hook",
266*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_with_post_install_hook",
267*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_sdk_target_p",
268*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_apk_in_apex_sdk_target_p",
269*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_apk_in_apex_upgrades",
270*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_rebootless",
271*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_install_constraints_empty",
272*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_install_constraints_invalid_fingerprint",
273*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2_install_constraints_no_value",
274*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v3",
275*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v3_rebootless",
276*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v3_signed_bob",
277*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v3_signed_bob_rot",
278*33f37583SAndroid Build Coastguard Worker    ],
279*33f37583SAndroid Build Coastguard Worker    out: ["hash.txt"],
280*33f37583SAndroid Build Coastguard Worker    cmd: "sha512sum -b $(in) | cut -d' ' -f1 | tee $(out)",
281*33f37583SAndroid Build Coastguard Worker}
282*33f37583SAndroid Build Coastguard Worker
283*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
284*33f37583SAndroid Build Coastguard Worker    name: "hash_v1",
285*33f37583SAndroid Build Coastguard Worker    src: ":generate_hash_v1",
286*33f37583SAndroid Build Coastguard Worker    filename: "hash.txt",
287*33f37583SAndroid Build Coastguard Worker    installable: false,
288*33f37583SAndroid Build Coastguard Worker}
289*33f37583SAndroid Build Coastguard Worker
290*33f37583SAndroid Build Coastguard Workerprebuilt_etc {
291*33f37583SAndroid Build Coastguard Worker    name: "allowlist",
292*33f37583SAndroid Build Coastguard Worker    srcs: [
293*33f37583SAndroid Build Coastguard Worker        "signature-permission-allowlist.xml",
294*33f37583SAndroid Build Coastguard Worker    ],
295*33f37583SAndroid Build Coastguard Worker    sub_dir: "permissions",
296*33f37583SAndroid Build Coastguard Worker    installable: false,
297*33f37583SAndroid Build Coastguard Worker}
298*33f37583SAndroid Build Coastguard Worker
299*33f37583SAndroid Build Coastguard Workerapex {
300*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v1",
301*33f37583SAndroid Build Coastguard Worker    manifest: "manifest.json",
302*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
303*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
304*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
305*33f37583SAndroid Build Coastguard Worker    prebuilts: [
306*33f37583SAndroid Build Coastguard Worker        "hash_v1",
307*33f37583SAndroid Build Coastguard Worker        "allowlist",
308*33f37583SAndroid Build Coastguard Worker    ],
309*33f37583SAndroid Build Coastguard Worker    apps: [
310*33f37583SAndroid Build Coastguard Worker        "CtsShim",
311*33f37583SAndroid Build Coastguard Worker        "CtsShimPriv",
312*33f37583SAndroid Build Coastguard Worker    ],
313*33f37583SAndroid Build Coastguard Worker    allowed_files: "default_shim_allowed_list.txt",
314*33f37583SAndroid Build Coastguard Worker    updatable: false,
315*33f37583SAndroid Build Coastguard Worker}
316*33f37583SAndroid Build Coastguard Worker
317*33f37583SAndroid Build Coastguard Workergenrule {
318*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim_not_pre_installed.pem",
319*33f37583SAndroid Build Coastguard Worker    out: ["com.android.apex.cts.shim_not_pre_installed.pem"],
320*33f37583SAndroid Build Coastguard Worker    cmd: "openssl genrsa -out $(out) 4096",
321*33f37583SAndroid Build Coastguard Worker}
322*33f37583SAndroid Build Coastguard Worker
323*33f37583SAndroid Build Coastguard Workergenrule {
324*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim_not_pre_installed.pubkey",
325*33f37583SAndroid Build Coastguard Worker    srcs: [":com.android.apex.cts.shim_not_pre_installed.pem"],
326*33f37583SAndroid Build Coastguard Worker    out: ["com.android.apex.cts.shim_not_pre_installed.pubkey"],
327*33f37583SAndroid Build Coastguard Worker    tools: ["avbtool"],
328*33f37583SAndroid Build Coastguard Worker    cmd: "$(location avbtool) extract_public_key --key $(in) --output $(out)",
329*33f37583SAndroid Build Coastguard Worker}
330*33f37583SAndroid Build Coastguard Worker
331*33f37583SAndroid Build Coastguard Workerapex_key {
332*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim_not_pre_installed.key",
333*33f37583SAndroid Build Coastguard Worker    private_key: ":com.android.apex.cts.shim_not_pre_installed.pem",
334*33f37583SAndroid Build Coastguard Worker    public_key: ":com.android.apex.cts.shim_not_pre_installed.pubkey",
335*33f37583SAndroid Build Coastguard Worker    installable: false,
336*33f37583SAndroid Build Coastguard Worker}
337*33f37583SAndroid Build Coastguard Worker
338*33f37583SAndroid Build Coastguard Workerapex {
339*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim_not_pre_installed",
340*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_not_pre_installed.json",
341*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifestNotPreInstalled.xml",
342*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
343*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim_not_pre_installed.key",
344*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
345*33f37583SAndroid Build Coastguard Worker    installable: false,
346*33f37583SAndroid Build Coastguard Worker    updatable: false,
347*33f37583SAndroid Build Coastguard Worker}
348*33f37583SAndroid Build Coastguard Worker
349*33f37583SAndroid Build Coastguard Workerapex {
350*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_different_certificate",
351*33f37583SAndroid Build Coastguard Worker    // Use manifest_v2_rebootless to also re-use this APEX in the rebootless update test case.
352*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2_rebootless.json",
353*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
354*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
355*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
356*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
357*33f37583SAndroid Build Coastguard Worker    installable: false,
358*33f37583SAndroid Build Coastguard Worker    certificate: ":com.android.apex.cts.shim.debug.cert",
359*33f37583SAndroid Build Coastguard Worker    updatable: false,
360*33f37583SAndroid Build Coastguard Worker}
361*33f37583SAndroid Build Coastguard Worker
362*33f37583SAndroid Build Coastguard Workerandroid_app_certificate {
363*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.debug.cert",
364*33f37583SAndroid Build Coastguard Worker    certificate: "com.android.apex.cts.shim.debug.cert",
365*33f37583SAndroid Build Coastguard Worker}
366*33f37583SAndroid Build Coastguard Worker
367*33f37583SAndroid Build Coastguard Worker// Build rules to build shim apex with rotated keys
368*33f37583SAndroid Build Coastguard Worker
369*33f37583SAndroid Build Coastguard Worker// We name the original key used to sign cts.shim.v1 package as alice.
370*33f37583SAndroid Build Coastguard Worker// We then create a second key called bob. The second key bob is used to rotate the
371*33f37583SAndroid Build Coastguard Worker// original key alice.
372*33f37583SAndroid Build Coastguard Worker
373*33f37583SAndroid Build Coastguard Worker// Create private key bob in pem format
374*33f37583SAndroid Build Coastguard Workergenrule {
375*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.rotation.key.bob.pem",
376*33f37583SAndroid Build Coastguard Worker    out: ["bob.pem"],
377*33f37583SAndroid Build Coastguard Worker    cmd: "openssl req -x509 -newkey rsa:4096 -nodes -days 999999 -subj '/DN=/[email protected]/CN=Android/OU=Android/O=Android/L=Mountain View/ST=California/C=US' -keyout $(out)",
378*33f37583SAndroid Build Coastguard Worker}
379*33f37583SAndroid Build Coastguard Worker
380*33f37583SAndroid Build Coastguard Worker// Converts bob's private key to pk8 format
381*33f37583SAndroid Build Coastguard Workergenrule {
382*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.rotation.key.bob.pk8",
383*33f37583SAndroid Build Coastguard Worker    srcs: [":com.android.apex.rotation.key.bob.pem"],
384*33f37583SAndroid Build Coastguard Worker    out: ["bob.pk8"],
385*33f37583SAndroid Build Coastguard Worker    cmd: "openssl pkcs8 -topk8 -inform PEM -outform DER -in $(in) -out $(out) -nocrypt",
386*33f37583SAndroid Build Coastguard Worker}
387*33f37583SAndroid Build Coastguard Worker
388*33f37583SAndroid Build Coastguard Worker// Extract bob's public key from its private key
389*33f37583SAndroid Build Coastguard Workergenrule {
390*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.rotation.key.bob.x509.pem",
391*33f37583SAndroid Build Coastguard Worker    srcs: [":com.android.apex.rotation.key.bob.pem"],
392*33f37583SAndroid Build Coastguard Worker    out: ["bob.x509.pem"],
393*33f37583SAndroid Build Coastguard Worker    cmd: "openssl req -x509 -key $(in) -newkey rsa:4096 -nodes -days 999999 -subj '/DN=/[email protected]/CN=Android/OU=Android/O=Android/L=Mountain View/ST=California/C=US' -out $(out)",
394*33f37583SAndroid Build Coastguard Worker}
395*33f37583SAndroid Build Coastguard Worker
396*33f37583SAndroid Build Coastguard Worker// Create lineage file for rotating alice to bob
397*33f37583SAndroid Build Coastguard Workergenrule {
398*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.rotation.key.bob.rot",
399*33f37583SAndroid Build Coastguard Worker    srcs: [
400*33f37583SAndroid Build Coastguard Worker        "alice.pk8",
401*33f37583SAndroid Build Coastguard Worker        "alice.x509.pem",
402*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.pk8",
403*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.x509.pem",
404*33f37583SAndroid Build Coastguard Worker    ],
405*33f37583SAndroid Build Coastguard Worker    out: ["bob.rot"],
406*33f37583SAndroid Build Coastguard Worker    tools: [":apksigner"],
407*33f37583SAndroid Build Coastguard Worker    cmd: "$(location :apksigner) rotate --out $(out) --old-signer --key $(location alice.pk8) --cert $(location alice.x509.pem) --new-signer --key $(location :com.android.apex.rotation.key.bob.pk8) --cert $(location :com.android.apex.rotation.key.bob.x509.pem)",
408*33f37583SAndroid Build Coastguard Worker}
409*33f37583SAndroid Build Coastguard Worker
410*33f37583SAndroid Build Coastguard Worker// Create lineage file for rotating alice to bob with rollback capability
411*33f37583SAndroid Build Coastguard Workergenrule {
412*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.rotation.key.bob.rot.rollback",
413*33f37583SAndroid Build Coastguard Worker    srcs: [
414*33f37583SAndroid Build Coastguard Worker        "alice.pk8",
415*33f37583SAndroid Build Coastguard Worker        "alice.x509.pem",
416*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.pk8",
417*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.x509.pem",
418*33f37583SAndroid Build Coastguard Worker    ],
419*33f37583SAndroid Build Coastguard Worker    out: ["bob.rot"],
420*33f37583SAndroid Build Coastguard Worker    tools: [":apksigner"],
421*33f37583SAndroid Build Coastguard Worker    cmd: "$(location :apksigner) rotate --out $(out) --old-signer --key $(location alice.pk8) --cert $(location alice.x509.pem) --set-rollback true --new-signer --key $(location :com.android.apex.rotation.key.bob.pk8) --cert $(location :com.android.apex.rotation.key.bob.x509.pem)",
422*33f37583SAndroid Build Coastguard Worker}
423*33f37583SAndroid Build Coastguard Worker
424*33f37583SAndroid Build Coastguard Worker// v2 cts shim package signed by bob, without lineage
425*33f37583SAndroid Build Coastguard Workerjava_genrule {
426*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_signed_bob",
427*33f37583SAndroid Build Coastguard Worker    out: ["com.android.apex.cts.shim.v2_signed_bob"],
428*33f37583SAndroid Build Coastguard Worker    tools: [":apksigner"],
429*33f37583SAndroid Build Coastguard Worker    srcs: [
430*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2",
431*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.x509.pem",
432*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.pk8",
433*33f37583SAndroid Build Coastguard Worker    ],
434*33f37583SAndroid Build Coastguard Worker    dist: {
435*33f37583SAndroid Build Coastguard Worker        targets: ["com.android.apex.cts.shim.v2_signed_bob"],
436*33f37583SAndroid Build Coastguard Worker        dest: "com.android.apex.cts.shim.v2_signed_bob.apex",
437*33f37583SAndroid Build Coastguard Worker    },
438*33f37583SAndroid Build Coastguard Worker    cmd: "$(location :apksigner) sign --v1-signing-enabled false --v2-signing-enabled false --key $(location :com.android.apex.rotation.key.bob.pk8) --cert $(location :com.android.apex.rotation.key.bob.x509.pem) --out $(out) $(location :com.android.apex.cts.shim.v2)",
439*33f37583SAndroid Build Coastguard Worker}
440*33f37583SAndroid Build Coastguard Worker
441*33f37583SAndroid Build Coastguard Worker// v2 cts shim package signed by bob + lineage
442*33f37583SAndroid Build Coastguard Workerjava_genrule {
443*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_signed_bob_rot",
444*33f37583SAndroid Build Coastguard Worker    out: ["com.android.apex.cts.shim.v2_signed_bob_rot"],
445*33f37583SAndroid Build Coastguard Worker    tools: [":apksigner"],
446*33f37583SAndroid Build Coastguard Worker    srcs: [
447*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2",
448*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.x509.pem",
449*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.pk8",
450*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.rot",
451*33f37583SAndroid Build Coastguard Worker    ],
452*33f37583SAndroid Build Coastguard Worker    dist: {
453*33f37583SAndroid Build Coastguard Worker        targets: ["com.android.apex.cts.shim.v2_signed_bob_rot"],
454*33f37583SAndroid Build Coastguard Worker        dest: "com.android.apex.cts.shim.v2_signed_bob_rot.apex",
455*33f37583SAndroid Build Coastguard Worker    },
456*33f37583SAndroid Build Coastguard Worker    cmd: "$(location :apksigner) sign --v1-signing-enabled false --v2-signing-enabled false --key $(location :com.android.apex.rotation.key.bob.pk8) --cert $(location :com.android.apex.rotation.key.bob.x509.pem) --lineage $(location :com.android.apex.rotation.key.bob.rot) --rotation-min-sdk-version 28 --out $(out) $(location :com.android.apex.cts.shim.v2)",
457*33f37583SAndroid Build Coastguard Worker}
458*33f37583SAndroid Build Coastguard Worker
459*33f37583SAndroid Build Coastguard Worker// v2 cts shim package signed by bob + lineage + rollback capability
460*33f37583SAndroid Build Coastguard Workerjava_genrule {
461*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_signed_bob_rot_rollback",
462*33f37583SAndroid Build Coastguard Worker    out: ["com.android.apex.cts.shim.v2_signed_bob_rot_rollback"],
463*33f37583SAndroid Build Coastguard Worker    tools: [":apksigner"],
464*33f37583SAndroid Build Coastguard Worker    srcs: [
465*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v2",
466*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.x509.pem",
467*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.pk8",
468*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.rot.rollback",
469*33f37583SAndroid Build Coastguard Worker    ],
470*33f37583SAndroid Build Coastguard Worker    dist: {
471*33f37583SAndroid Build Coastguard Worker        targets: ["com.android.apex.cts.shim.v2_signed_bob_rot_rollback"],
472*33f37583SAndroid Build Coastguard Worker        dest: "com.android.apex.cts.shim.v2_signed_bob_rot_rollback.apex",
473*33f37583SAndroid Build Coastguard Worker    },
474*33f37583SAndroid Build Coastguard Worker    cmd: "$(location :apksigner) sign --v1-signing-enabled false --v2-signing-enabled false --key $(location :com.android.apex.rotation.key.bob.pk8) --cert $(location :com.android.apex.rotation.key.bob.x509.pem) --lineage $(location :com.android.apex.rotation.key.bob.rot.rollback) --rotation-min-sdk-version 28 --out $(out) $(location :com.android.apex.cts.shim.v2)",
475*33f37583SAndroid Build Coastguard Worker}
476*33f37583SAndroid Build Coastguard Worker
477*33f37583SAndroid Build Coastguard Worker// v3 cts shim package signed by bob
478*33f37583SAndroid Build Coastguard Workerjava_genrule {
479*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v3_signed_bob",
480*33f37583SAndroid Build Coastguard Worker    out: ["com.android.apex.cts.shim.v3_signed_bob"],
481*33f37583SAndroid Build Coastguard Worker    tools: [":apksigner"],
482*33f37583SAndroid Build Coastguard Worker    srcs: [
483*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v3",
484*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.x509.pem",
485*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.pk8",
486*33f37583SAndroid Build Coastguard Worker    ],
487*33f37583SAndroid Build Coastguard Worker    dist: {
488*33f37583SAndroid Build Coastguard Worker        targets: ["com.android.apex.cts.shim.v3_signed_bob"],
489*33f37583SAndroid Build Coastguard Worker        dest: "com.android.apex.cts.shim.v3_signed_bob.apex",
490*33f37583SAndroid Build Coastguard Worker    },
491*33f37583SAndroid Build Coastguard Worker    cmd: "$(location :apksigner) sign --v1-signing-enabled false --v2-signing-enabled false --key $(location :com.android.apex.rotation.key.bob.pk8) --cert $(location :com.android.apex.rotation.key.bob.x509.pem) --out $(out) $(location :com.android.apex.cts.shim.v3)",
492*33f37583SAndroid Build Coastguard Worker}
493*33f37583SAndroid Build Coastguard Worker
494*33f37583SAndroid Build Coastguard Worker// v3 cts shim package signed by bob + lineage
495*33f37583SAndroid Build Coastguard Workerjava_genrule {
496*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v3_signed_bob_rot",
497*33f37583SAndroid Build Coastguard Worker    out: ["com.android.apex.cts.shim.v3_signed_bob_rot"],
498*33f37583SAndroid Build Coastguard Worker    tools: [":apksigner"],
499*33f37583SAndroid Build Coastguard Worker    srcs: [
500*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.cts.shim.v3",
501*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.x509.pem",
502*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.pk8",
503*33f37583SAndroid Build Coastguard Worker        ":com.android.apex.rotation.key.bob.rot",
504*33f37583SAndroid Build Coastguard Worker    ],
505*33f37583SAndroid Build Coastguard Worker    dist: {
506*33f37583SAndroid Build Coastguard Worker        targets: ["com.android.apex.cts.shim.v3_signed_bob_rot"],
507*33f37583SAndroid Build Coastguard Worker        dest: "com.android.apex.cts.shim.v3_signed_bob_rot.apex",
508*33f37583SAndroid Build Coastguard Worker    },
509*33f37583SAndroid Build Coastguard Worker    cmd: "$(location :apksigner) sign --v1-signing-enabled false --v2-signing-enabled false --key $(location :com.android.apex.rotation.key.bob.pk8) --cert $(location :com.android.apex.rotation.key.bob.x509.pem) --lineage $(location :com.android.apex.rotation.key.bob.rot) --rotation-min-sdk-version 28 --out $(out) $(location :com.android.apex.cts.shim.v3)",
510*33f37583SAndroid Build Coastguard Worker}
511*33f37583SAndroid Build Coastguard Worker
512*33f37583SAndroid Build Coastguard Worker// This one is only used in ApexdHostTest and not meant to be installed
513*33f37583SAndroid Build Coastguard Worker// and hence shouldn't be allowed in hash.txt of v1 shim APEX.
514*33f37583SAndroid Build Coastguard Workerapex {
515*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_legacy",
516*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2.json",
517*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
518*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
519*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
520*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
521*33f37583SAndroid Build Coastguard Worker    apps: [
522*33f37583SAndroid Build Coastguard Worker        "CtsShim",
523*33f37583SAndroid Build Coastguard Worker        "CtsShimPriv",
524*33f37583SAndroid Build Coastguard Worker    ],
525*33f37583SAndroid Build Coastguard Worker    installable: false,
526*33f37583SAndroid Build Coastguard Worker    min_sdk_version: "29",
527*33f37583SAndroid Build Coastguard Worker    updatable: false,
528*33f37583SAndroid Build Coastguard Worker}
529*33f37583SAndroid Build Coastguard Worker
530*33f37583SAndroid Build Coastguard Workerjava_genrule {
531*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_no_pb",
532*33f37583SAndroid Build Coastguard Worker    srcs: [":com.android.apex.cts.shim.v2_legacy"],
533*33f37583SAndroid Build Coastguard Worker    out: ["com.android.apex.cts.shim.v2_no_pb.apex"],
534*33f37583SAndroid Build Coastguard Worker    tools: ["zip2zip"],
535*33f37583SAndroid Build Coastguard Worker    cmd: "$(location zip2zip) -i $(in) -x apex_manifest.pb -o $(out)",
536*33f37583SAndroid Build Coastguard Worker}
537*33f37583SAndroid Build Coastguard Worker
538*33f37583SAndroid Build Coastguard Worker// Apex shim that targets an old sdk (P)
539*33f37583SAndroid Build Coastguard Workerapex {
540*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_sdk_target_p",
541*33f37583SAndroid Build Coastguard Worker    // Use manifest_v2_rebootless to also re-use this APEX in the rebootless update test case.
542*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2_rebootless.json",
543*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifestSdkTargetP.xml",
544*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
545*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
546*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
547*33f37583SAndroid Build Coastguard Worker    installable: false,
548*33f37583SAndroid Build Coastguard Worker    apps: [
549*33f37583SAndroid Build Coastguard Worker        "CtsShim",
550*33f37583SAndroid Build Coastguard Worker        "CtsShimPriv",
551*33f37583SAndroid Build Coastguard Worker    ],
552*33f37583SAndroid Build Coastguard Worker    updatable: false,
553*33f37583SAndroid Build Coastguard Worker}
554*33f37583SAndroid Build Coastguard Worker
555*33f37583SAndroid Build Coastguard Worker// Apex shim with apk-in-apex that targets sdk P
556*33f37583SAndroid Build Coastguard Workerapex {
557*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_apk_in_apex_sdk_target_p",
558*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2.json",
559*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
560*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
561*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
562*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
563*33f37583SAndroid Build Coastguard Worker    apps: ["CtsShimTargetPSdk"],
564*33f37583SAndroid Build Coastguard Worker    installable: false,
565*33f37583SAndroid Build Coastguard Worker    updatable: false,
566*33f37583SAndroid Build Coastguard Worker}
567*33f37583SAndroid Build Coastguard Worker
568*33f37583SAndroid Build Coastguard Worker// Apex shim with unsigned apk
569*33f37583SAndroid Build Coastguard Workerjava_genrule {
570*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_unsigned_apk_container",
571*33f37583SAndroid Build Coastguard Worker    // Use shim.v2_rebootless to re-use same APEX in the rebootless update test case.
572*33f37583SAndroid Build Coastguard Worker    srcs: [":com.android.apex.cts.shim.v2_rebootless"],
573*33f37583SAndroid Build Coastguard Worker    out: ["com.android.apex.cts.shim.v2_unsigned_apk_container.apex"],
574*33f37583SAndroid Build Coastguard Worker    cmd: "cp -v $(in) $(out) && zip -d $(out) META-INF*",
575*33f37583SAndroid Build Coastguard Worker    dist: {
576*33f37583SAndroid Build Coastguard Worker        targets: ["com.android.apex.cts.shim.v2_unsigned_apk_container"],
577*33f37583SAndroid Build Coastguard Worker        dest: "com.android.apex.cts.shim.v2_unsigned_apk_container.apex",
578*33f37583SAndroid Build Coastguard Worker    },
579*33f37583SAndroid Build Coastguard Worker}
580*33f37583SAndroid Build Coastguard Worker
581*33f37583SAndroid Build Coastguard Worker// Apex shim for testing rebootless updates
582*33f37583SAndroid Build Coastguard Workerapex {
583*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_rebootless",
584*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2_rebootless.json",
585*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
586*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
587*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
588*33f37583SAndroid Build Coastguard Worker    installable: false,
589*33f37583SAndroid Build Coastguard Worker    updatable: false,
590*33f37583SAndroid Build Coastguard Worker}
591*33f37583SAndroid Build Coastguard Worker
592*33f37583SAndroid Build Coastguard Workerapex {
593*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v3_rebootless",
594*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v3_rebootless.json",
595*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
596*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
597*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
598*33f37583SAndroid Build Coastguard Worker    installable: false,
599*33f37583SAndroid Build Coastguard Worker    updatable: false,
600*33f37583SAndroid Build Coastguard Worker}
601*33f37583SAndroid Build Coastguard Worker
602*33f37583SAndroid Build Coastguard Worker// Apex shim with upgraded apk-in-apexes
603*33f37583SAndroid Build Coastguard Workerapex {
604*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_apk_in_apex_upgrades",
605*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2.json",
606*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifest.xml",
607*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
608*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
609*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
610*33f37583SAndroid Build Coastguard Worker    apps: [
611*33f37583SAndroid Build Coastguard Worker        "CtsShim",
612*33f37583SAndroid Build Coastguard Worker        "CtsShimPrivUpgrade",
613*33f37583SAndroid Build Coastguard Worker    ],
614*33f37583SAndroid Build Coastguard Worker    installable: false,
615*33f37583SAndroid Build Coastguard Worker    updatable: false,
616*33f37583SAndroid Build Coastguard Worker}
617*33f37583SAndroid Build Coastguard Worker
618*33f37583SAndroid Build Coastguard Workerapex {
619*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_install_constraints_empty",
620*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2.json",
621*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifestInstallConstraints_empty.xml",
622*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
623*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
624*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
625*33f37583SAndroid Build Coastguard Worker    installable: false,
626*33f37583SAndroid Build Coastguard Worker    updatable: false,
627*33f37583SAndroid Build Coastguard Worker}
628*33f37583SAndroid Build Coastguard Worker
629*33f37583SAndroid Build Coastguard Workerapex {
630*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_install_constraints_invalid_fingerprint",
631*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2.json",
632*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifestInstallConstraints_invalid_fingerprint.xml",
633*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
634*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
635*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
636*33f37583SAndroid Build Coastguard Worker    installable: false,
637*33f37583SAndroid Build Coastguard Worker    updatable: false,
638*33f37583SAndroid Build Coastguard Worker}
639*33f37583SAndroid Build Coastguard Worker
640*33f37583SAndroid Build Coastguard Workerapex {
641*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_install_constraints_no_value",
642*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2.json",
643*33f37583SAndroid Build Coastguard Worker    androidManifest: "AndroidManifestInstallConstraints_no_value.xml",
644*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
645*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
646*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
647*33f37583SAndroid Build Coastguard Worker    installable: false,
648*33f37583SAndroid Build Coastguard Worker    updatable: false,
649*33f37583SAndroid Build Coastguard Worker}
650*33f37583SAndroid Build Coastguard Worker
651*33f37583SAndroid Build Coastguard Worker// Apex shim for running a new app in an apex
652*33f37583SAndroid Build Coastguard Workerapex {
653*33f37583SAndroid Build Coastguard Worker    name: "com.android.apex.cts.shim.v2_add_apk_to_apex",
654*33f37583SAndroid Build Coastguard Worker    manifest: "manifest_v2.json",
655*33f37583SAndroid Build Coastguard Worker    file_contexts: ":apex.test-file_contexts",
656*33f37583SAndroid Build Coastguard Worker    key: "com.android.apex.cts.shim.key",
657*33f37583SAndroid Build Coastguard Worker    prebuilts: ["hash_of_dev_null"],
658*33f37583SAndroid Build Coastguard Worker    apps: ["CtsShimAddApkToApex"],
659*33f37583SAndroid Build Coastguard Worker    installable: false,
660*33f37583SAndroid Build Coastguard Worker    updatable: false,
661*33f37583SAndroid Build Coastguard Worker}
662