xref: /aosp_15_r20/system/sepolicy/treble_sepolicy_tests_for_release/Android.bp (revision e4a36f4174b17bbab9dc043f4a65dc8d87377290)
1// Copyright (C) 2024 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package {
16    default_applicable_licenses: [
17        "Android-Apache-2.0",
18        "system_sepolicy_license",
19    ],
20}
21
22//////////////////////////////////
23// Tests for Treble compatibility of current platform policy and vendor policy of
24// given release version.
25//////////////////////////////////
26java_genrule {
27    name: "29.0_mapping.combined.cil",
28    srcs: [
29        ":plat_29.0.cil",
30        ":29.0.ignore.cil",
31    ],
32    out: ["29.0_mapping.combined.cil"],
33    cmd: "cat $(location :plat_29.0.cil) $(location :29.0.ignore.cil) > $(out)",
34}
35
36java_genrule {
37    name: "treble_sepolicy_tests_29.0",
38    srcs: [
39        ":29.0_plat_policy.cil",
40        ":29.0_mapping.combined.cil",
41        ":29.0_plat_pub_policy.cil",
42    ],
43    tools: ["treble_sepolicy_tests"],
44    out: ["treble_sepolicy_tests_29.0"],
45    cmd: "$(location treble_sepolicy_tests) " +
46        "-b $(location :29.0_plat_pub_policy.cil) " +
47        "-m $(location :29.0_mapping.combined.cil) " +
48        "-o $(location :29.0_plat_policy.cil) && " +
49        "touch $(out)",
50}
51
52java_genrule {
53    name: "30.0_mapping.combined.cil",
54    srcs: [
55        ":plat_30.0.cil",
56        ":30.0.ignore.cil",
57    ] + select(soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"), {
58        true: [
59            ":system_ext_30.0.cil",
60            ":system_ext_30.0.ignore.cil",
61        ],
62        default: [],
63    }) + select(soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"), {
64        true: [
65            ":product_30.0.cil",
66            ":product_30.0.ignore.cil",
67        ],
68        default: [],
69    }),
70    out: ["30.0_mapping.combined.cil"],
71    cmd: "cat $(location :plat_30.0.cil) " +
72        "$(location :30.0.ignore.cil) " +
73        select(soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"), {
74            true: "$(location :system_ext_30.0.cil) " +
75                "$(location :system_ext_30.0.ignore.cil) ",
76            default: "",
77        }) +
78        select(soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"), {
79            true: "$(location :product_30.0.cil) " +
80                "$(location :product_30.0.ignore.cil) ",
81            default: "",
82        }) +
83        "> $(out)",
84}
85
86java_genrule {
87    name: "treble_sepolicy_tests_30.0",
88    srcs: [
89        ":30.0_plat_policy.cil",
90        ":30.0_mapping.combined.cil",
91    ] + select((
92        soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"),
93        soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"),
94    ), {
95        (false, false): [":30.0_plat_pub_policy.cil"],
96        (default, default): [":30.0_product_pub_policy.cil"],
97    }),
98    tools: ["treble_sepolicy_tests"],
99    out: ["treble_sepolicy_tests_30.0"],
100    cmd: select((
101        soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"),
102        soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"),
103    ), {
104        (false, false): "$(location treble_sepolicy_tests) " +
105            "-b $(location :30.0_plat_pub_policy.cil) " +
106            "-m $(location :30.0_mapping.combined.cil) " +
107            "-o $(location :30.0_plat_policy.cil) && " +
108            "touch $(out)",
109        (default, default): "$(location treble_sepolicy_tests) " +
110            "-b $(location :30.0_product_pub_policy.cil) " +
111            "-m $(location :30.0_mapping.combined.cil) " +
112            "-o $(location :30.0_plat_policy.cil) && " +
113            "touch $(out)",
114    }),
115}
116
117java_genrule {
118    name: "31.0_mapping.combined.cil",
119    srcs: [
120        ":plat_31.0.cil",
121        ":31.0.ignore.cil",
122    ] + select(soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"), {
123        true: [
124            ":system_ext_31.0.cil",
125            ":system_ext_31.0.ignore.cil",
126        ],
127        default: [],
128    }) + select(soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"), {
129        true: [
130            ":product_31.0.cil",
131            ":product_31.0.ignore.cil",
132        ],
133        default: [],
134    }),
135    out: ["31.0_mapping.combined.cil"],
136    cmd: "cat $(location :plat_31.0.cil) " +
137        "$(location :31.0.ignore.cil) " +
138        select(soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"), {
139            true: "$(location :system_ext_31.0.cil) " +
140                "$(location :system_ext_31.0.ignore.cil) ",
141            default: "",
142        }) +
143        select(soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"), {
144            true: "$(location :product_31.0.cil) " +
145                "$(location :product_31.0.ignore.cil) ",
146            default: "",
147        }) +
148        "> $(out)",
149}
150
151java_genrule {
152    name: "treble_sepolicy_tests_31.0",
153    srcs: [
154        ":31.0_plat_policy.cil",
155        ":31.0_mapping.combined.cil",
156    ] + select((
157        soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"),
158        soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"),
159    ), {
160        (false, false): [":31.0_plat_pub_policy.cil"],
161        (default, default): [":31.0_product_pub_policy.cil"],
162    }),
163    tools: ["treble_sepolicy_tests"],
164    out: ["treble_sepolicy_tests_31.0"],
165    cmd: select((
166        soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"),
167        soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"),
168    ), {
169        (false, false): "$(location treble_sepolicy_tests) " +
170            "-b $(location :31.0_plat_pub_policy.cil) " +
171            "-m $(location :31.0_mapping.combined.cil) " +
172            "-o $(location :31.0_plat_policy.cil) && " +
173            "touch $(out)",
174        (default, default): "$(location treble_sepolicy_tests) " +
175            "-b $(location :31.0_product_pub_policy.cil) " +
176            "-m $(location :31.0_mapping.combined.cil) " +
177            "-o $(location :31.0_plat_policy.cil) && " +
178            "touch $(out)",
179    }),
180}
181
182java_genrule {
183    name: "32.0_mapping.combined.cil",
184    srcs: [
185        ":plat_32.0.cil",
186        ":32.0.ignore.cil",
187    ] + select(soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"), {
188        true: [
189            ":system_ext_32.0.cil",
190            ":system_ext_32.0.ignore.cil",
191        ],
192        default: [],
193    }) + select(soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"), {
194        true: [
195            ":product_32.0.cil",
196            ":product_32.0.ignore.cil",
197        ],
198        default: [],
199    }),
200    out: ["32.0_mapping.combined.cil"],
201    cmd: "cat $(location :plat_32.0.cil) " +
202        "$(location :32.0.ignore.cil) " +
203        select(soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"), {
204            true: "$(location :system_ext_32.0.cil) " +
205                "$(location :system_ext_32.0.ignore.cil) ",
206            default: "",
207        }) +
208        select(soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"), {
209            true: "$(location :product_32.0.cil) " +
210                "$(location :product_32.0.ignore.cil) ",
211            default: "",
212        }) +
213        "> $(out)",
214}
215
216java_genrule {
217    name: "treble_sepolicy_tests_32.0",
218    srcs: [
219        ":32.0_plat_policy.cil",
220        ":32.0_mapping.combined.cil",
221    ] + select((
222        soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"),
223        soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"),
224    ), {
225        (false, false): [":32.0_plat_pub_policy.cil"],
226        (default, default): [":32.0_product_pub_policy.cil"],
227    }),
228    tools: ["treble_sepolicy_tests"],
229    out: ["treble_sepolicy_tests_32.0"],
230    cmd: select((
231        soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"),
232        soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"),
233    ), {
234        (false, false): "$(location treble_sepolicy_tests) " +
235            "-b $(location :32.0_plat_pub_policy.cil) " +
236            "-m $(location :32.0_mapping.combined.cil) " +
237            "-o $(location :32.0_plat_policy.cil) && " +
238            "touch $(out)",
239        (default, default): "$(location treble_sepolicy_tests) " +
240            "-b $(location :32.0_product_pub_policy.cil) " +
241            "-m $(location :32.0_mapping.combined.cil) " +
242            "-o $(location :32.0_plat_policy.cil) && " +
243            "touch $(out)",
244    }),
245}
246
247java_genrule {
248    name: "33.0_mapping.combined.cil",
249    srcs: [
250        ":plat_33.0.cil",
251        ":33.0.ignore.cil",
252    ] + select(soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"), {
253        true: [
254            ":system_ext_33.0.cil",
255            ":system_ext_33.0.ignore.cil",
256        ],
257        default: [],
258    }) + select(soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"), {
259        true: [
260            ":product_33.0.cil",
261            ":product_33.0.ignore.cil",
262        ],
263        default: [],
264    }),
265    out: ["33.0_mapping.combined.cil"],
266    cmd: "cat $(location :plat_33.0.cil) " +
267        "$(location :33.0.ignore.cil) " +
268        select(soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"), {
269            true: "$(location :system_ext_33.0.cil) " +
270                "$(location :system_ext_33.0.ignore.cil) ",
271            default: "",
272        }) +
273        select(soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"), {
274            true: "$(location :product_33.0.cil) " +
275                "$(location :product_33.0.ignore.cil) ",
276            default: "",
277        }) +
278        "> $(out)",
279}
280
281java_genrule {
282    name: "treble_sepolicy_tests_33.0",
283    srcs: [
284        ":33.0_plat_policy.cil",
285        ":33.0_mapping.combined.cil",
286    ] + select((
287        soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"),
288        soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"),
289    ), {
290        (false, false): [":33.0_plat_pub_policy.cil"],
291        (default, default): [":33.0_product_pub_policy.cil"],
292    }),
293    tools: ["treble_sepolicy_tests"],
294    out: ["treble_sepolicy_tests_33.0"],
295    cmd: select((
296        soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"),
297        soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"),
298    ), {
299        (false, false): "$(location treble_sepolicy_tests) " +
300            "-b $(location :33.0_plat_pub_policy.cil) " +
301            "-m $(location :33.0_mapping.combined.cil) " +
302            "-o $(location :33.0_plat_policy.cil) && " +
303            "touch $(out)",
304        (default, default): "$(location treble_sepolicy_tests) " +
305            "-b $(location :33.0_product_pub_policy.cil) " +
306            "-m $(location :33.0_mapping.combined.cil) " +
307            "-o $(location :33.0_plat_policy.cil) && " +
308            "touch $(out)",
309    }),
310}
311
312java_genrule {
313    name: "34.0_mapping.combined.cil",
314    srcs: [
315        ":plat_34.0.cil",
316        ":34.0.ignore.cil",
317    ] + select(soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"), {
318        true: [
319            ":system_ext_34.0.cil",
320            ":system_ext_34.0.ignore.cil",
321        ],
322        default: [],
323    }) + select(soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"), {
324        true: [
325            ":product_34.0.cil",
326            ":product_34.0.ignore.cil",
327        ],
328        default: [],
329    }),
330    out: ["34.0_mapping.combined.cil"],
331    cmd: "cat $(location :plat_34.0.cil) " +
332        "$(location :34.0.ignore.cil) " +
333        select(soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"), {
334            true: "$(location :system_ext_34.0.cil) " +
335                "$(location :system_ext_34.0.ignore.cil) ",
336            default: "",
337        }) +
338        select(soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"), {
339            true: "$(location :product_34.0.cil) " +
340                "$(location :product_34.0.ignore.cil) ",
341            default: "",
342        }) +
343        "> $(out)",
344}
345
346java_genrule {
347    name: "treble_sepolicy_tests_34.0",
348    srcs: [
349        ":34.0_plat_policy.cil",
350        ":34.0_mapping.combined.cil",
351    ] + select((
352        soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"),
353        soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"),
354    ), {
355        (false, false): [":34.0_plat_pub_policy.cil"],
356        (default, default): [":34.0_product_pub_policy.cil"],
357    }),
358    tools: ["treble_sepolicy_tests"],
359    out: ["treble_sepolicy_tests_34.0"],
360    cmd: select((
361        soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"),
362        soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"),
363    ), {
364        (false, false): "$(location treble_sepolicy_tests) " +
365            "-b $(location :34.0_plat_pub_policy.cil) " +
366            "-m $(location :34.0_mapping.combined.cil) " +
367            "-o $(location :34.0_plat_policy.cil) && " +
368            "touch $(out)",
369        (default, default): "$(location treble_sepolicy_tests) " +
370            "-b $(location :34.0_product_pub_policy.cil) " +
371            "-m $(location :34.0_mapping.combined.cil) " +
372            "-o $(location :34.0_plat_policy.cil) && " +
373            "touch $(out)",
374    }),
375}
376
377java_genrule {
378    name: "202404_mapping.combined.cil",
379    srcs: select(soong_config_variable("ANDROID", "PLATFORM_SEPOLICY_VERSION"), {
380        "202404": [
381        ],
382        default: [
383            ":plat_202404.cil",
384            ":202404.ignore.cil",
385        ],
386    }) + select((
387        soong_config_variable("ANDROID", "PLATFORM_SEPOLICY_VERSION"),
388        soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"),
389    ), {
390        ("202404", true): [],
391        ("202404", default): [],
392        (default, true): [
393            ":system_ext_202404.cil",
394            ":system_ext_202404.ignore.cil",
395        ],
396        (default, default): [],
397    }) + select((
398        soong_config_variable("ANDROID", "PLATFORM_SEPOLICY_VERSION"),
399        soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"),
400    ), {
401        ("202404", true): [],
402        ("202404", default): [],
403        (default, true): [
404            ":product_202404.cil",
405            ":product_202404.ignore.cil",
406        ],
407        (default, default): [],
408    }),
409    out: ["202404_mapping.combined.cil"],
410    cmd: select(soong_config_variable("ANDROID", "PLATFORM_SEPOLICY_VERSION"), {
411        "202404": "touch $(out)",
412        default: "cat $(in) > $(out)",
413    }),
414}
415
416java_genrule {
417    name: "treble_sepolicy_tests_202404",
418    srcs: [
419        ":202404_plat_policy.cil",
420        ":202404_mapping.combined.cil",
421    ] + select((
422        soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"),
423        soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"),
424    ), {
425        (false, false): [":202404_plat_pub_policy.cil"],
426        (default, default): [":202404_product_pub_policy.cil"],
427    }),
428    tools: ["treble_sepolicy_tests"],
429    out: ["treble_sepolicy_tests_202404"],
430    cmd: select((
431        soong_config_variable("ANDROID", "PLATFORM_SEPOLICY_VERSION"),
432        soong_config_variable("ANDROID", "HAS_BOARD_SYSTEM_EXT_PREBUILT_DIR"),
433        soong_config_variable("ANDROID", "HAS_BOARD_PRODUCT_PREBUILT_DIR"),
434    ), {
435        ("202404", false, false): "touch $(out)",
436        ("202404", default, default): "touch $(out)",
437        (default, false, false): "$(location treble_sepolicy_tests) " +
438            "-b $(location :202404_plat_pub_policy.cil) " +
439            "-m $(location :202404_mapping.combined.cil) " +
440            "-o $(location :202404_plat_policy.cil) && " +
441            "touch $(out)",
442        (default, default, default): "$(location treble_sepolicy_tests) " +
443            "-b $(location :202404_product_pub_policy.cil) " +
444            "-m $(location :202404_mapping.combined.cil) " +
445            "-o $(location :202404_plat_policy.cil) && " +
446            "touch $(out)",
447    }),
448}
449