xref: /aosp_15_r20/external/bazelbuild-rules_android/rules/acls.bzl (revision 9e965d6fece27a77de5377433c2f7e6999b8cc0b)
1*9e965d6fSRomain Jobredeaux# Copyright 2020 The Bazel Authors. All rights reserved.
2*9e965d6fSRomain Jobredeaux#
3*9e965d6fSRomain Jobredeaux# Licensed under the Apache License, Version 2.0 (the "License");
4*9e965d6fSRomain Jobredeaux# you may not use this file except in compliance with the License.
5*9e965d6fSRomain Jobredeaux# You may obtain a copy of the License at
6*9e965d6fSRomain Jobredeaux#
7*9e965d6fSRomain Jobredeaux#    http://www.apache.org/licenses/LICENSE-2.0
8*9e965d6fSRomain Jobredeaux#
9*9e965d6fSRomain Jobredeaux# Unless required by applicable law or agreed to in writing, software
10*9e965d6fSRomain Jobredeaux# distributed under the License is distributed on an "AS IS" BASIS,
11*9e965d6fSRomain Jobredeaux# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*9e965d6fSRomain Jobredeaux# See the License for the specific language governing permissions and
13*9e965d6fSRomain Jobredeaux# limitations under the License.
14*9e965d6fSRomain Jobredeaux
15*9e965d6fSRomain Jobredeaux"""Access Control Lists.
16*9e965d6fSRomain Jobredeaux
17*9e965d6fSRomain JobredeauxTo create a new list:
18*9e965d6fSRomain Jobredeaux  1. Create new .bzl file in the acls directory with a list of targets.
19*9e965d6fSRomain Jobredeaux  2. Create matching method in this file.
20*9e965d6fSRomain Jobredeaux  3. Add matching method to struct.
21*9e965d6fSRomain Jobredeaux
22*9e965d6fSRomain JobredeauxTo check an ACL:
23*9e965d6fSRomain Jobredeaux  1. Import the `acls` struct.
24*9e965d6fSRomain Jobredeaux  2. Check `acls.list_name(fqn)` using the //fully/qualified:target
25*9e965d6fSRomain Jobredeaux
26*9e965d6fSRomain JobredeauxTo update a list:
27*9e965d6fSRomain Jobredeaux  1. Directly add/remove/edit targets in the appropriate .bzl file
28*9e965d6fSRomain Jobredeaux"""
29*9e965d6fSRomain Jobredeaux
30*9e965d6fSRomain Jobredeauxload("//rules/acls:aar_import_deps_checker.bzl", "AAR_IMPORT_DEPS_CHECKER_FALLBACK", "AAR_IMPORT_DEPS_CHECKER_ROLLOUT")
31*9e965d6fSRomain Jobredeauxload("//rules/acls:aar_import_explicit_exports_manifest.bzl", "AAR_IMPORT_EXPLICIT_EXPORTS_MANIFEST")
32*9e965d6fSRomain Jobredeauxload("//rules/acls:aar_import_exports_r_java.bzl", "AAR_IMPORT_EXPORTS_R_JAVA")
33*9e965d6fSRomain Jobredeauxload("//rules/acls:aar_propagate_resources.bzl", "AAR_PROPAGATE_RESOURCES_FALLBACK", "AAR_PROPAGATE_RESOURCES_ROLLOUT")
34*9e965d6fSRomain Jobredeauxload("//rules/acls:ait_install_snapshots.bzl", "APP_INSTALLATION_SNAPSHOT", "APP_INSTALLATION_SNAPSHOT_FALLBACK")
35*9e965d6fSRomain Jobredeauxload("//rules/acls:allow_resource_conflicts.bzl", "ALLOW_RESOURCE_CONFLICTS")
36*9e965d6fSRomain Jobredeauxload("//rules/acls:android_apk_to_bundle_features_lockdown.bzl", "ANDROID_APK_TO_BUNDLE_FEATURES")
37*9e965d6fSRomain Jobredeauxload("//rules/acls:android_archive_dogfood.bzl", "ANDROID_ARCHIVE_DOGFOOD")
38*9e965d6fSRomain Jobredeauxload("//rules/acls:android_archive_duplicate_class_allowlist.bzl", "ANDROID_ARCHIVE_DUPLICATE_CLASS_ALLOWLIST")
39*9e965d6fSRomain Jobredeauxload("//rules/acls:android_archive_excluded_deps_denylist.bzl", "ANDROID_ARCHIVE_EXCLUDED_DEPS_DENYLIST")
40*9e965d6fSRomain Jobredeauxload("//rules/acls:android_archive_exposed_package_allowlist.bzl", "ANDROID_ARCHIVE_EXPOSED_PACKAGE_ALLOWLIST")
41*9e965d6fSRomain Jobredeauxload("//rules/acls:android_binary_min_sdk_version_attribute.bzl", "ANDROID_BINARY_MIN_SDK_VERSION_ATTRIBUTE_ALLOWLIST")
42*9e965d6fSRomain Jobredeauxload("//rules/acls:android_binary_raw_access_to_resource_paths_allowlist.bzl", "ANDROID_BINARY_RAW_ACCESS_TO_RESOURCE_PATHS_ALLOWLIST")
43*9e965d6fSRomain Jobredeauxload("//rules/acls:android_binary_resource_name_obfuscation_opt_out_allowlist.bzl", "ANDROID_BINARY_RESOURCE_NAME_OBFUSCATION_OPT_OUT_ALLOWLIST")
44*9e965d6fSRomain Jobredeauxload("//rules/acls:android_binary_starlark_dex_desugar_proguard.bzl", "ANDROID_BINARY_STARLARK_DEX_DESUGAR_PROGUARD_FALLBACK", "ANDROID_BINARY_STARLARK_DEX_DESUGAR_PROGUARD_ROLLOUT")
45*9e965d6fSRomain Jobredeauxload("//rules/acls:android_binary_starlark_javac.bzl", "ANDROID_BINARY_STARLARK_JAVAC_FALLBACK", "ANDROID_BINARY_STARLARK_JAVAC_ROLLOUT")
46*9e965d6fSRomain Jobredeauxload("//rules/acls:android_binary_starlark_split_transition.bzl", "ANDROID_BINARY_STARLARK_SPLIT_TRANSITION_FALLBACK", "ANDROID_BINARY_STARLARK_SPLIT_TRANSITION_ROLLOUT")
47*9e965d6fSRomain Jobredeauxload("//rules/acls:android_binary_with_sandboxed_sdks_allowlist.bzl", "ANDROID_BINARY_WITH_SANDBOXED_SDKS_ALLOWLIST")
48*9e965d6fSRomain Jobredeauxload("//rules/acls:android_build_stamping_rollout.bzl", "ANDROID_BUILD_STAMPING_FALLBACK", "ANDROID_BUILD_STAMPING_ROLLOUT")
49*9e965d6fSRomain Jobredeauxload("//rules/acls:android_device_plugin_rollout.bzl", "ANDROID_DEVICE_PLUGIN_FALLBACK", "ANDROID_DEVICE_PLUGIN_ROLLOUT")
50*9e965d6fSRomain Jobredeauxload("//rules/acls:android_feature_splits_dogfood.bzl", "ANDROID_FEATURE_SPLITS_DOGFOOD")
51*9e965d6fSRomain Jobredeauxload("//rules/acls:android_instrumentation_binary_starlark_resources.bzl", "ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_FALLBACK", "ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_ROLLOUT")
52*9e965d6fSRomain Jobredeauxload("//rules/acls:android_instrumentation_test_manifest_check_rollout.bzl", "ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_FALLBACK", "ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_ROLLOUT")
53*9e965d6fSRomain Jobredeauxload("//rules/acls:android_instrumentation_test_prebuilt_test_apk.bzl", "ANDROID_INSTRUMENTATION_TEST_PREBUILT_TEST_APK_FALLBACK", "ANDROID_INSTRUMENTATION_TEST_PREBUILT_TEST_APK_ROLLOUT")
54*9e965d6fSRomain Jobredeauxload("//rules/acls:android_library_resources_without_srcs.bzl", "ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS", "ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS_GENERATOR_FUNCTIONS")
55*9e965d6fSRomain Jobredeauxload("//rules/acls:android_library_starlark_resource_outputs.bzl", "ANDROID_LIBRARY_STARLARK_RESOURCE_OUTPUTS_FALLBACK", "ANDROID_LIBRARY_STARLARK_RESOURCE_OUTPUTS_ROLLOUT")
56*9e965d6fSRomain Jobredeauxload("//rules/acls:android_library_use_aosp_aidl_compiler.bzl", "ANDROID_LIBRARY_USE_AOSP_AIDL_COMPILER_ALLOWLIST")
57*9e965d6fSRomain Jobredeauxload("//rules/acls:android_lint_checks_rollout.bzl", "ANDROID_LINT_CHECKS_FALLBACK", "ANDROID_LINT_CHECKS_ROLLOUT")
58*9e965d6fSRomain Jobredeauxload("//rules/acls:android_lint_rollout.bzl", "ANDROID_LINT_FALLBACK", "ANDROID_LINT_ROLLOUT")
59*9e965d6fSRomain Jobredeauxload("//rules/acls:android_local_test_jdk_sts_rollout.bzl", "ANDROID_LOCAL_TEST_JDK_STS_FALLBACK", "ANDROID_LOCAL_TEST_JDK_STS_ROLLOUT")
60*9e965d6fSRomain Jobredeauxload("//rules/acls:android_test_lockdown.bzl", "ANDROID_TEST_LOCKDOWN_GENERATOR_FUNCTIONS", "ANDROID_TEST_LOCKDOWN_TARGETS")
61*9e965d6fSRomain Jobredeauxload("//rules/acls:android_test_platform_rollout.bzl", "ANDROID_TEST_PLATFORM_FALLBACK", "ANDROID_TEST_PLATFORM_ROLLOUT")
62*9e965d6fSRomain Jobredeauxload("//rules/acls:b122039567.bzl", "B122039567")
63*9e965d6fSRomain Jobredeauxload("//rules/acls:b123854163.bzl", "B123854163")
64*9e965d6fSRomain Jobredeauxload("//rules/acls:baseline_profiles_optimizer_integration.bzl", "BASELINE_PROFILES_OPTIMIZER_INTEGRATION")
65*9e965d6fSRomain Jobredeauxload("//rules/acls:baseline_profiles_rollout.bzl", "BASELINE_PROFILES_ROLLOUT")
66*9e965d6fSRomain Jobredeauxload("//rules/acls:databinding.bzl", "DATABINDING_ALLOWED", "DATABINDING_DISALLOWED")
67*9e965d6fSRomain Jobredeauxload("//rules/acls:dex2oat_opts.bzl", "CAN_USE_DEX2OAT_OPTIONS")
68*9e965d6fSRomain Jobredeauxload("//rules/acls:fix_export_exporting_rollout.bzl", "FIX_EXPORT_EXPORTING_FALLBACK", "FIX_EXPORT_EXPORTING_ROLLOUT")
69*9e965d6fSRomain Jobredeauxload("//rules/acls:fix_resource_transitivity_rollout.bzl", "FIX_RESOURCE_TRANSITIVITY_FALLBACK", "FIX_RESOURCE_TRANSITIVITY_ROLLOUT")
70*9e965d6fSRomain Jobredeauxload("//rules/acls:host_dex2oat_rollout.bzl", "AIT_USE_HOST_DEX2OAT_ROLLOUT", "AIT_USE_HOST_DEX2OAT_ROLLOUT_FALLBACK")
71*9e965d6fSRomain Jobredeauxload("//rules/acls:install_apps_in_data.bzl", "INSTALL_APPS_IN_DATA")
72*9e965d6fSRomain Jobredeauxload("//rules/acls:lint_registry_rollout.bzl", "LINT_REGISTRY_FALLBACK", "LINT_REGISTRY_ROLLOUT")
73*9e965d6fSRomain Jobredeauxload("//rules/acls:local_test_multi_proto.bzl", "LOCAL_TEST_MULTI_PROTO_PKG")
74*9e965d6fSRomain Jobredeauxload("//rules/acls:local_test_rollout.bzl", "LOCAL_TEST_FALLBACK", "LOCAL_TEST_ROLLOUT")
75*9e965d6fSRomain Jobredeauxload("//rules/acls:local_test_starlark_resources.bzl", "LOCAL_TEST_STARLARK_RESOURCES_FALLBACK", "LOCAL_TEST_STARLARK_RESOURCES_ROLLOUT")
76*9e965d6fSRomain Jobredeauxload("//rules/acls:min_sdk_floors.bzl", "MIN_SDK_FLOORS")
77*9e965d6fSRomain Jobredeauxload(
78*9e965d6fSRomain Jobredeaux    "//rules/acls:partial_jetification_targets.bzl",
79*9e965d6fSRomain Jobredeaux    "PARTIAL_JETIFICATION_TARGETS_FALLBACK",
80*9e965d6fSRomain Jobredeaux    "PARTIAL_JETIFICATION_TARGETS_ROLLOUT",
81*9e965d6fSRomain Jobredeaux)
82*9e965d6fSRomain Jobredeauxload("//rules/acls:proguard_apply_mapping.bzl", "ALLOW_PROGUARD_APPLY_MAPPING")
83*9e965d6fSRomain Jobredeauxload("//rules/acls:r8.bzl", "USE_R8")
84*9e965d6fSRomain Jobredeauxload("//rules/acls:shared_library_resource_linking.bzl", "SHARED_LIBRARY_RESOURCE_LINKING_ALLOWLIST")
85*9e965d6fSRomain Jobredeauxload("//rules/acls:test_to_instrument_test_rollout.bzl", "TEST_TO_INSTRUMENT_TEST_FALLBACK", "TEST_TO_INSTRUMENT_TEST_ROLLOUT")
86*9e965d6fSRomain Jobredeaux
87*9e965d6fSRomain Jobredeauxdef _get_min_sdk_floor(fqn):
88*9e965d6fSRomain Jobredeaux    for minsdk, package_dict in MIN_SDK_FLOORS_DICT.items():
89*9e965d6fSRomain Jobredeaux        if matches(fqn, package_dict):
90*9e965d6fSRomain Jobredeaux            return minsdk
91*9e965d6fSRomain Jobredeaux    fail("No matching min_sdk_floor for %s" % fqn)
92*9e965d6fSRomain Jobredeaux
93*9e965d6fSRomain Jobredeauxdef _in_aar_import_deps_checker(fqn):
94*9e965d6fSRomain Jobredeaux    return not matches(fqn, AAR_IMPORT_DEPS_CHECKER_FALLBACK_DICT) and matches(fqn, AAR_IMPORT_DEPS_CHECKER_ROLLOUT_DICT)
95*9e965d6fSRomain Jobredeaux
96*9e965d6fSRomain Jobredeauxdef _in_aar_import_explicit_exports_manifest(fqn):
97*9e965d6fSRomain Jobredeaux    return matches(fqn, AAR_IMPORT_EXPLICIT_EXPORTS_MANIFEST_DICT)
98*9e965d6fSRomain Jobredeaux
99*9e965d6fSRomain Jobredeauxdef _in_aar_import_exports_r_java(fqn):
100*9e965d6fSRomain Jobredeaux    return matches(fqn, AAR_IMPORT_EXPORTS_R_JAVA_DICT)
101*9e965d6fSRomain Jobredeaux
102*9e965d6fSRomain Jobredeauxdef _in_aar_propagate_resources(fqn):
103*9e965d6fSRomain Jobredeaux    # AOSP-only change.
104*9e965d6fSRomain Jobredeaux    return True
105*9e965d6fSRomain Jobredeaux
106*9e965d6fSRomain Jobredeauxdef _in_android_archive_dogfood(fqn):
107*9e965d6fSRomain Jobredeaux    return matches(fqn, ANDROID_ARCHIVE_DOGFOOD_DICT)
108*9e965d6fSRomain Jobredeaux
109*9e965d6fSRomain Jobredeauxdef _in_android_archive_excluded_deps_denylist(fqn):
110*9e965d6fSRomain Jobredeaux    return matches(fqn, ANDROID_ARCHIVE_EXCLUDED_DEPS_DENYLIST_DICT)
111*9e965d6fSRomain Jobredeaux
112*9e965d6fSRomain Jobredeauxdef _in_android_device_plugin_rollout(fqn):
113*9e965d6fSRomain Jobredeaux    return not matches(fqn, ANDROID_DEVICE_PLUGIN_FALLBACK_DICT) and matches(fqn, ANDROID_DEVICE_PLUGIN_ROLLOUT_DICT)
114*9e965d6fSRomain Jobredeaux
115*9e965d6fSRomain Jobredeauxdef _in_android_instrumentation_binary_starlark_resources(fqn):
116*9e965d6fSRomain Jobredeaux    return not matches(fqn, ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_FALLBACK_DICT) and matches(fqn, ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_ROLLOUT_DICT)
117*9e965d6fSRomain Jobredeaux
118*9e965d6fSRomain Jobredeauxdef _in_android_binary_starlark_javac(fqn):
119*9e965d6fSRomain Jobredeaux    return not matches(fqn, ANDROID_BINARY_STARLARK_JAVAC_FALLBACK_DICT) and matches(fqn, ANDROID_BINARY_STARLARK_JAVAC_ROLLOUT_DICT)
120*9e965d6fSRomain Jobredeaux
121*9e965d6fSRomain Jobredeauxdef _in_android_binary_starlark_split_transition(fqn):
122*9e965d6fSRomain Jobredeaux    return not matches(fqn, ANDROID_BINARY_STARLARK_SPLIT_TRANSITION_FALLBACK_DICT) and matches(fqn, ANDROID_BINARY_STARLARK_SPLIT_TRANSITION_ROLLOUT_DICT)
123*9e965d6fSRomain Jobredeaux
124*9e965d6fSRomain Jobredeauxdef _in_android_binary_with_sandboxed_sdks_allowlist(fqn):
125*9e965d6fSRomain Jobredeaux    return matches(fqn, ANDROID_BINARY_WITH_SANDBOXED_SDKS_ALLOWLIST_DICT)
126*9e965d6fSRomain Jobredeaux
127*9e965d6fSRomain Jobredeauxdef _in_android_feature_splits_dogfood(fqn):
128*9e965d6fSRomain Jobredeaux    return matches(fqn, ANDROID_FEATURE_SPLITS_DOGFOOD_DICT)
129*9e965d6fSRomain Jobredeaux
130*9e965d6fSRomain Jobredeauxdef _in_android_lint_checks_rollout(fqn):
131*9e965d6fSRomain Jobredeaux    return not matches(fqn, ANDROID_LINT_CHECKS_FALLBACK_DICT) and matches(fqn, ANDROID_LINT_CHECKS_ROLLOUT_DICT)
132*9e965d6fSRomain Jobredeaux
133*9e965d6fSRomain Jobredeauxdef _in_android_lint_rollout(fqn):
134*9e965d6fSRomain Jobredeaux    return not matches(fqn, ANDROID_LINT_FALLBACK_DICT) and matches(fqn, ANDROID_LINT_ROLLOUT_DICT)
135*9e965d6fSRomain Jobredeaux
136*9e965d6fSRomain Jobredeauxdef _in_lint_registry_rollout(fqn):
137*9e965d6fSRomain Jobredeaux    return not matches(fqn, LINT_REGISTRY_FALLBACK_DICT) and matches(fqn, LINT_REGISTRY_ROLLOUT_DICT)
138*9e965d6fSRomain Jobredeaux
139*9e965d6fSRomain Jobredeauxdef _in_android_build_stamping_rollout(fqn):
140*9e965d6fSRomain Jobredeaux    return not matches(fqn, ANDROID_BUILD_STAMPING_FALLBACK_DICT) and matches(fqn, ANDROID_BUILD_STAMPING_ROLLOUT_DICT)
141*9e965d6fSRomain Jobredeaux
142*9e965d6fSRomain Jobredeauxdef _in_android_test_lockdown_allowlist(fqn, generator):
143*9e965d6fSRomain Jobredeaux    if generator == "android_test":
144*9e965d6fSRomain Jobredeaux        return matches(fqn, ANDROID_TEST_LOCKDOWN_TARGETS)
145*9e965d6fSRomain Jobredeaux    return generator in ANDROID_TEST_LOCKDOWN_GENERATOR_FUNCTIONS_DICT
146*9e965d6fSRomain Jobredeaux
147*9e965d6fSRomain Jobredeauxdef _in_b122039567(fqn):
148*9e965d6fSRomain Jobredeaux    return matches(fqn, B122039567_DICT)
149*9e965d6fSRomain Jobredeaux
150*9e965d6fSRomain Jobredeauxdef _in_b123854163(fqn):
151*9e965d6fSRomain Jobredeaux    return matches(fqn, B123854163_DICT)
152*9e965d6fSRomain Jobredeaux
153*9e965d6fSRomain Jobredeauxdef _in_android_library_resources_without_srcs(fqn):
154*9e965d6fSRomain Jobredeaux    return matches(fqn, ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS_DICT)
155*9e965d6fSRomain Jobredeaux
156*9e965d6fSRomain Jobredeauxdef _in_android_library_resources_without_srcs_generator_functions(gfn):
157*9e965d6fSRomain Jobredeaux    return gfn in ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS_GENERATOR_FUNCTIONS_DICT
158*9e965d6fSRomain Jobredeaux
159*9e965d6fSRomain Jobredeauxdef _in_android_library_starlark_resource_outputs_rollout(fqn):
160*9e965d6fSRomain Jobredeaux    return not matches(fqn, ANDROID_LIBRARY_STARLARK_RESOURCE_OUTPUTS_FALLBACK_DICT) and matches(fqn, ANDROID_LIBRARY_STARLARK_RESOURCE_OUTPUTS_ROLLOUT_DICT)
161*9e965d6fSRomain Jobredeaux
162*9e965d6fSRomain Jobredeauxdef _in_android_library_use_aosp_aidl_compiler_allowlist(fqn):
163*9e965d6fSRomain Jobredeaux    return matches(fqn, ANDROID_LIBRARY_USE_AOSP_AIDL_COMPILER_ALLOWLIST_DICT)
164*9e965d6fSRomain Jobredeaux
165*9e965d6fSRomain Jobredeauxdef _in_app_installation_snapshot(fqn):
166*9e965d6fSRomain Jobredeaux    return not matches(fqn, APP_INSTALLATION_SNAPSHOT_FALLBACK_DICT) and matches(fqn, APP_INSTALLATION_SNAPSHOT_DICT)
167*9e965d6fSRomain Jobredeaux
168*9e965d6fSRomain Jobredeauxdef _in_databinding_allowed(fqn):
169*9e965d6fSRomain Jobredeaux    return not matches(fqn, DATABINDING_DISALLOWED_DICT) and matches(fqn, DATABINDING_ALLOWED_DICT)
170*9e965d6fSRomain Jobredeaux
171*9e965d6fSRomain Jobredeauxdef _in_dex2oat_opts(fqn):
172*9e965d6fSRomain Jobredeaux    return matches(fqn, CAN_USE_DEX2OAT_OPTIONS_DICT)
173*9e965d6fSRomain Jobredeaux
174*9e965d6fSRomain Jobredeauxdef _in_fix_export_exporting_rollout(fqn):
175*9e965d6fSRomain Jobredeaux    return not matches(fqn, FIX_EXPORT_EXPORTING_FALLBACK_DICT) and matches(fqn, FIX_EXPORT_EXPORTING_ROLLOUT_DICT)
176*9e965d6fSRomain Jobredeaux
177*9e965d6fSRomain Jobredeauxdef _in_fix_resource_transivity_rollout(fqn):
178*9e965d6fSRomain Jobredeaux    return not matches(fqn, FIX_RESOURCE_TRANSIVITY_FALLBACK_DICT) and matches(fqn, FIX_RESOURCE_TRANSIVITY_ROLLOUT_DICT)
179*9e965d6fSRomain Jobredeaux
180*9e965d6fSRomain Jobredeauxdef _in_host_dex2oat_rollout(fqn):
181*9e965d6fSRomain Jobredeaux    return not matches(fqn, AIT_USE_HOST_DEX2OAT_ROLLOUT_FALLBACK_DICT) and matches(fqn, AIT_USE_HOST_DEX2OAT_ROLLOUT_DICT)
182*9e965d6fSRomain Jobredeaux
183*9e965d6fSRomain Jobredeauxdef _in_install_apps_in_data(fqn):
184*9e965d6fSRomain Jobredeaux    return matches(fqn, AIT_INSTALL_APPS_IN_DATA_DICT)
185*9e965d6fSRomain Jobredeaux
186*9e965d6fSRomain Jobredeauxdef _in_local_test_multi_proto(fqn):
187*9e965d6fSRomain Jobredeaux    return matches(fqn, LOCAL_TEST_MULTI_PROTO_PKG_DICT)
188*9e965d6fSRomain Jobredeaux
189*9e965d6fSRomain Jobredeauxdef _in_local_test_rollout(fqn):
190*9e965d6fSRomain Jobredeaux    return not matches(fqn, LOCAL_TEST_FALLBACK_DICT) and matches(fqn, LOCAL_TEST_ROLLOUT_DICT)
191*9e965d6fSRomain Jobredeaux
192*9e965d6fSRomain Jobredeauxdef _in_local_test_starlark_resources(fqn):
193*9e965d6fSRomain Jobredeaux    return not matches(fqn, LOCAL_TEST_STARLARK_RESOURCES_FALLBACK_DICT) and matches(fqn, LOCAL_TEST_STARLARK_RESOURCES_ROLLOUT_DICT)
194*9e965d6fSRomain Jobredeaux
195*9e965d6fSRomain Jobredeauxdef _in_android_test_platform_rollout(fqn):
196*9e965d6fSRomain Jobredeaux    return not matches(fqn, ANDROID_TEST_PLATFORM_FALLBACK_DICT) and matches(fqn, ANDROID_TEST_PLATFORM_ROLLOUT_DICT)
197*9e965d6fSRomain Jobredeaux
198*9e965d6fSRomain Jobredeauxdef _in_test_to_instrument_test_rollout(fqn):
199*9e965d6fSRomain Jobredeaux    return not matches(fqn, TEST_TO_INSTRUMENT_TEST_FALLBACK_DICT) and matches(fqn, TEST_TO_INSTRUMENT_TEST_ROLLOUT_DICT)
200*9e965d6fSRomain Jobredeaux
201*9e965d6fSRomain Jobredeauxdef _in_allow_resource_conflicts(fqn):
202*9e965d6fSRomain Jobredeaux    return matches(fqn, ALLOW_RESOURCE_CONFLICTS_DICT)
203*9e965d6fSRomain Jobredeaux
204*9e965d6fSRomain Jobredeauxdef _in_partial_jetification_targets(fqn):
205*9e965d6fSRomain Jobredeaux    return not matches(fqn, PARTIAL_JETIFICATION_TARGETS_FALLBACK_DICT) and matches(fqn, PARTIAL_JETIFICATION_TARGETS_ROLLOUT_DICT)
206*9e965d6fSRomain Jobredeaux
207*9e965d6fSRomain Jobredeauxdef _in_android_instrumentation_test_manifest_check_rollout(fqn):
208*9e965d6fSRomain Jobredeaux    return not matches(fqn, ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_FALLBACK_DICT) and matches(fqn, ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_ROLLOUT_DICT)
209*9e965d6fSRomain Jobredeaux
210*9e965d6fSRomain Jobredeauxdef _in_android_instrumentation_test_prebuilt_test_apk(fqn):
211*9e965d6fSRomain Jobredeaux    return matches(fqn, ANDROID_INSTRUMENTATION_TEST_PREBUILT_TEST_APK_ROLLOUT_DICT) and not matches(fqn, ANDROID_INSTRUMENTATION_TEST_PREBUILT_TEST_APK_FALLBACK_DICT)
212*9e965d6fSRomain Jobredeaux
213*9e965d6fSRomain Jobredeauxdef _get_android_archive_exposed_package_allowlist(fqn):
214*9e965d6fSRomain Jobredeaux    return ANDROID_ARCHIVE_EXPOSED_PACKAGE_ALLOWLIST.get(fqn, [])
215*9e965d6fSRomain Jobredeaux
216*9e965d6fSRomain Jobredeauxdef _in_baseline_profiles_rollout(fqn):
217*9e965d6fSRomain Jobredeaux    return matches(fqn, BASELINE_PROFILES_ROLLOUT)
218*9e965d6fSRomain Jobredeaux
219*9e965d6fSRomain Jobredeauxdef _in_baseline_profiles_optimizer_integration(fqn):
220*9e965d6fSRomain Jobredeaux    return matches(fqn, BASELINE_PROFILES_OPTIMIZER_INTEGRATION)
221*9e965d6fSRomain Jobredeaux
222*9e965d6fSRomain Jobredeauxdef _in_android_apk_to_bundle_features(fqn):
223*9e965d6fSRomain Jobredeaux    return matches(fqn, ANDROID_APK_TO_BUNDLE_FEATURES_DICT)
224*9e965d6fSRomain Jobredeaux
225*9e965d6fSRomain Jobredeauxdef _get_android_archive_duplicate_class_allowlist(fqn):
226*9e965d6fSRomain Jobredeaux    return ANDROID_ARCHIVE_DUPLICATE_CLASS_ALLOWLIST.get(fqn, [])
227*9e965d6fSRomain Jobredeaux
228*9e965d6fSRomain Jobredeauxdef _in_android_local_test_jdk_sts_rollout(fqn):
229*9e965d6fSRomain Jobredeaux    return not matches(fqn, ANDROID_LOCAL_TEST_JDK_STS_FALLBACK_DICT) and matches(fqn, ANDROID_LOCAL_TEST_JDK_STS_ROLLOUT_DICT)
230*9e965d6fSRomain Jobredeaux
231*9e965d6fSRomain Jobredeauxdef _in_shared_library_resource_linking_allowlist(fqn):
232*9e965d6fSRomain Jobredeaux    return matches(fqn, SHARED_LIBRARY_RESOURCE_LINKING_DICT)
233*9e965d6fSRomain Jobredeaux
234*9e965d6fSRomain Jobredeauxdef _in_android_binary_starlark_dex_desugar_proguard(fqn):
235*9e965d6fSRomain Jobredeaux    return not matches(fqn, ANDROID_BINARY_STARLARK_DEX_DESUGAR_PROGUARD_FALLBACK_DICT) and matches(fqn, ANDROID_BINARY_STARLARK_DEX_DESUGAR_PROGUARD_ROLLOUT_DICT)
236*9e965d6fSRomain Jobredeaux
237*9e965d6fSRomain Jobredeauxdef _in_android_binary_min_sdk_version_attribute_allowlist(fqn):
238*9e965d6fSRomain Jobredeaux    return matches(fqn, ANDROID_BINARY_MIN_SDK_VERSION_ATTRIBUTE_DICT)
239*9e965d6fSRomain Jobredeaux
240*9e965d6fSRomain Jobredeauxdef _in_android_binary_raw_access_to_resource_paths_allowlist(fqn):
241*9e965d6fSRomain Jobredeaux    return matches(fqn, ANDROID_BINARY_RAW_ACCESS_TO_RESOURCE_PATHS_ALLOWLIST_DICT)
242*9e965d6fSRomain Jobredeaux
243*9e965d6fSRomain Jobredeauxdef _in_android_binary_resource_name_obfuscation_opt_out_allowlist(fqn):
244*9e965d6fSRomain Jobredeaux    return matches(fqn, ANDROID_BINARY_RESOURCE_NAME_OBFUSCATION_OPT_OUT_ALLOWLIST_DICT)
245*9e965d6fSRomain Jobredeaux
246*9e965d6fSRomain Jobredeauxdef _in_allow_proguard_apply_mapping(fqn):
247*9e965d6fSRomain Jobredeaux    return matches(fqn, ALLOW_PROGUARD_APPLY_MAPPING_DICT)
248*9e965d6fSRomain Jobredeaux
249*9e965d6fSRomain Jobredeauxdef _use_r8(fqn):
250*9e965d6fSRomain Jobredeaux    return matches(fqn, USE_R8_DICT)
251*9e965d6fSRomain Jobredeaux
252*9e965d6fSRomain Jobredeauxdef make_dict(lst):
253*9e965d6fSRomain Jobredeaux    """Do not use this method outside of acls directory."""
254*9e965d6fSRomain Jobredeaux    return {t: True for t in lst}
255*9e965d6fSRomain Jobredeaux
256*9e965d6fSRomain Jobredeauxdef make_min_sdk_dict(dict_of_lists):
257*9e965d6fSRomain Jobredeaux    res = {}
258*9e965d6fSRomain Jobredeaux    for k in dict_of_lists.keys():
259*9e965d6fSRomain Jobredeaux        res[k] = make_dict(dict_of_lists[k])
260*9e965d6fSRomain Jobredeaux    return res
261*9e965d6fSRomain Jobredeaux
262*9e965d6fSRomain JobredeauxAAR_IMPORT_DEPS_CHECKER_FALLBACK_DICT = make_dict(AAR_IMPORT_DEPS_CHECKER_FALLBACK)
263*9e965d6fSRomain JobredeauxAAR_IMPORT_DEPS_CHECKER_ROLLOUT_DICT = make_dict(AAR_IMPORT_DEPS_CHECKER_ROLLOUT)
264*9e965d6fSRomain JobredeauxAAR_IMPORT_EXPLICIT_EXPORTS_MANIFEST_DICT = make_dict(AAR_IMPORT_EXPLICIT_EXPORTS_MANIFEST)
265*9e965d6fSRomain JobredeauxAAR_IMPORT_EXPORTS_R_JAVA_DICT = make_dict(AAR_IMPORT_EXPORTS_R_JAVA)
266*9e965d6fSRomain JobredeauxAAR_PROPAGATE_RESOURCES_FALLBACK_DICT = make_dict(AAR_PROPAGATE_RESOURCES_FALLBACK)
267*9e965d6fSRomain JobredeauxAAR_PROPAGATE_RESOURCES_ROLLOUT_DICT = make_dict(AAR_PROPAGATE_RESOURCES_ROLLOUT)
268*9e965d6fSRomain JobredeauxANDROID_ARCHIVE_DOGFOOD_DICT = make_dict(ANDROID_ARCHIVE_DOGFOOD)
269*9e965d6fSRomain JobredeauxANDROID_ARCHIVE_EXCLUDED_DEPS_DENYLIST_DICT = make_dict(ANDROID_ARCHIVE_EXCLUDED_DEPS_DENYLIST)
270*9e965d6fSRomain JobredeauxANDROID_DEVICE_PLUGIN_ROLLOUT_DICT = make_dict(ANDROID_DEVICE_PLUGIN_ROLLOUT)
271*9e965d6fSRomain JobredeauxANDROID_DEVICE_PLUGIN_FALLBACK_DICT = make_dict(ANDROID_DEVICE_PLUGIN_FALLBACK)
272*9e965d6fSRomain JobredeauxANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_ROLLOUT_DICT = make_dict(ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_ROLLOUT)
273*9e965d6fSRomain JobredeauxANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_FALLBACK_DICT = make_dict(ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_FALLBACK)
274*9e965d6fSRomain JobredeauxANDROID_BINARY_STARLARK_JAVAC_ROLLOUT_DICT = make_dict(ANDROID_BINARY_STARLARK_JAVAC_ROLLOUT)
275*9e965d6fSRomain JobredeauxANDROID_BINARY_STARLARK_JAVAC_FALLBACK_DICT = make_dict(ANDROID_BINARY_STARLARK_JAVAC_FALLBACK)
276*9e965d6fSRomain JobredeauxANDROID_BINARY_STARLARK_SPLIT_TRANSITION_ROLLOUT_DICT = make_dict(ANDROID_BINARY_STARLARK_SPLIT_TRANSITION_ROLLOUT)
277*9e965d6fSRomain JobredeauxANDROID_BINARY_STARLARK_SPLIT_TRANSITION_FALLBACK_DICT = make_dict(ANDROID_BINARY_STARLARK_SPLIT_TRANSITION_FALLBACK)
278*9e965d6fSRomain JobredeauxANDROID_BINARY_WITH_SANDBOXED_SDKS_ALLOWLIST_DICT = make_dict(ANDROID_BINARY_WITH_SANDBOXED_SDKS_ALLOWLIST)
279*9e965d6fSRomain JobredeauxANDROID_FEATURE_SPLITS_DOGFOOD_DICT = make_dict(ANDROID_FEATURE_SPLITS_DOGFOOD)
280*9e965d6fSRomain JobredeauxANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS_DICT = make_dict(ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS)
281*9e965d6fSRomain JobredeauxANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS_GENERATOR_FUNCTIONS_DICT = make_dict(ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS_GENERATOR_FUNCTIONS)
282*9e965d6fSRomain JobredeauxANDROID_LIBRARY_STARLARK_RESOURCE_OUTPUTS_FALLBACK_DICT = make_dict(ANDROID_LIBRARY_STARLARK_RESOURCE_OUTPUTS_FALLBACK)
283*9e965d6fSRomain JobredeauxANDROID_LIBRARY_STARLARK_RESOURCE_OUTPUTS_ROLLOUT_DICT = make_dict(ANDROID_LIBRARY_STARLARK_RESOURCE_OUTPUTS_ROLLOUT)
284*9e965d6fSRomain JobredeauxANDROID_LINT_CHECKS_FALLBACK_DICT = make_dict(ANDROID_LINT_CHECKS_FALLBACK)
285*9e965d6fSRomain JobredeauxANDROID_LINT_CHECKS_ROLLOUT_DICT = make_dict(ANDROID_LINT_CHECKS_ROLLOUT)
286*9e965d6fSRomain JobredeauxANDROID_LINT_FALLBACK_DICT = make_dict(ANDROID_LINT_FALLBACK)
287*9e965d6fSRomain JobredeauxANDROID_LINT_ROLLOUT_DICT = make_dict(ANDROID_LINT_ROLLOUT)
288*9e965d6fSRomain Jobredeaux
289*9e965d6fSRomain JobredeauxLINT_REGISTRY_FALLBACK_DICT = make_dict(LINT_REGISTRY_FALLBACK)
290*9e965d6fSRomain JobredeauxLINT_REGISTRY_ROLLOUT_DICT = make_dict(LINT_REGISTRY_ROLLOUT)
291*9e965d6fSRomain JobredeauxANDROID_BUILD_STAMPING_ROLLOUT_DICT = make_dict(ANDROID_BUILD_STAMPING_ROLLOUT)
292*9e965d6fSRomain JobredeauxANDROID_BUILD_STAMPING_FALLBACK_DICT = make_dict(ANDROID_BUILD_STAMPING_FALLBACK)
293*9e965d6fSRomain JobredeauxANDROID_TEST_LOCKDOWN_GENERATOR_FUNCTIONS_DICT = make_dict(ANDROID_TEST_LOCKDOWN_GENERATOR_FUNCTIONS)
294*9e965d6fSRomain JobredeauxANDROID_TEST_LOCKDOWN_TARGETS_DICT = make_dict(ANDROID_TEST_LOCKDOWN_TARGETS)
295*9e965d6fSRomain JobredeauxAPP_INSTALLATION_SNAPSHOT_DICT = make_dict(APP_INSTALLATION_SNAPSHOT)
296*9e965d6fSRomain JobredeauxAPP_INSTALLATION_SNAPSHOT_FALLBACK_DICT = make_dict(APP_INSTALLATION_SNAPSHOT_FALLBACK)
297*9e965d6fSRomain JobredeauxB122039567_DICT = make_dict(B122039567)
298*9e965d6fSRomain JobredeauxB123854163_DICT = make_dict(B123854163)
299*9e965d6fSRomain JobredeauxCAN_USE_DEX2OAT_OPTIONS_DICT = make_dict(CAN_USE_DEX2OAT_OPTIONS)
300*9e965d6fSRomain JobredeauxFIX_RESOURCE_TRANSIVITY_FALLBACK_DICT = make_dict(FIX_RESOURCE_TRANSITIVITY_FALLBACK)
301*9e965d6fSRomain JobredeauxFIX_RESOURCE_TRANSIVITY_ROLLOUT_DICT = make_dict(FIX_RESOURCE_TRANSITIVITY_ROLLOUT)
302*9e965d6fSRomain JobredeauxFIX_EXPORT_EXPORTING_FALLBACK_DICT = make_dict(FIX_EXPORT_EXPORTING_FALLBACK)
303*9e965d6fSRomain JobredeauxFIX_EXPORT_EXPORTING_ROLLOUT_DICT = make_dict(FIX_EXPORT_EXPORTING_ROLLOUT)
304*9e965d6fSRomain JobredeauxAIT_USE_HOST_DEX2OAT_ROLLOUT_DICT = make_dict(AIT_USE_HOST_DEX2OAT_ROLLOUT)
305*9e965d6fSRomain JobredeauxAIT_USE_HOST_DEX2OAT_ROLLOUT_FALLBACK_DICT = make_dict(AIT_USE_HOST_DEX2OAT_ROLLOUT_FALLBACK)
306*9e965d6fSRomain JobredeauxAIT_INSTALL_APPS_IN_DATA_DICT = make_dict(INSTALL_APPS_IN_DATA)
307*9e965d6fSRomain JobredeauxLOCAL_TEST_MULTI_PROTO_PKG_DICT = make_dict(LOCAL_TEST_MULTI_PROTO_PKG)
308*9e965d6fSRomain JobredeauxLOCAL_TEST_FALLBACK_DICT = make_dict(LOCAL_TEST_FALLBACK)
309*9e965d6fSRomain JobredeauxLOCAL_TEST_ROLLOUT_DICT = make_dict(LOCAL_TEST_ROLLOUT)
310*9e965d6fSRomain JobredeauxLOCAL_TEST_STARLARK_RESOURCES_FALLBACK_DICT = make_dict(LOCAL_TEST_STARLARK_RESOURCES_FALLBACK)
311*9e965d6fSRomain JobredeauxLOCAL_TEST_STARLARK_RESOURCES_ROLLOUT_DICT = make_dict(LOCAL_TEST_STARLARK_RESOURCES_ROLLOUT)
312*9e965d6fSRomain JobredeauxANDROID_TEST_PLATFORM_FALLBACK_DICT = make_dict(ANDROID_TEST_PLATFORM_FALLBACK)
313*9e965d6fSRomain JobredeauxANDROID_TEST_PLATFORM_ROLLOUT_DICT = make_dict(ANDROID_TEST_PLATFORM_ROLLOUT)
314*9e965d6fSRomain JobredeauxTEST_TO_INSTRUMENT_TEST_FALLBACK_DICT = make_dict(TEST_TO_INSTRUMENT_TEST_FALLBACK)
315*9e965d6fSRomain JobredeauxTEST_TO_INSTRUMENT_TEST_ROLLOUT_DICT = make_dict(TEST_TO_INSTRUMENT_TEST_ROLLOUT)
316*9e965d6fSRomain JobredeauxALLOW_RESOURCE_CONFLICTS_DICT = make_dict(ALLOW_RESOURCE_CONFLICTS)
317*9e965d6fSRomain JobredeauxPARTIAL_JETIFICATION_TARGETS_ROLLOUT_DICT = make_dict(PARTIAL_JETIFICATION_TARGETS_ROLLOUT)
318*9e965d6fSRomain JobredeauxPARTIAL_JETIFICATION_TARGETS_FALLBACK_DICT = make_dict(PARTIAL_JETIFICATION_TARGETS_FALLBACK)
319*9e965d6fSRomain JobredeauxANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_ROLLOUT_DICT = make_dict(ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_ROLLOUT)
320*9e965d6fSRomain JobredeauxANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_FALLBACK_DICT = make_dict(ANDROID_INSTRUMENTATION_TEST_MANIFEST_CHECK_FALLBACK)
321*9e965d6fSRomain JobredeauxANDROID_INSTRUMENTATION_TEST_PREBUILT_TEST_APK_ROLLOUT_DICT = make_dict(ANDROID_INSTRUMENTATION_TEST_PREBUILT_TEST_APK_ROLLOUT)
322*9e965d6fSRomain JobredeauxANDROID_INSTRUMENTATION_TEST_PREBUILT_TEST_APK_FALLBACK_DICT = make_dict(ANDROID_INSTRUMENTATION_TEST_PREBUILT_TEST_APK_FALLBACK)
323*9e965d6fSRomain JobredeauxBASELINE_PROFILES_ROLLOUT_DICT = make_dict(BASELINE_PROFILES_ROLLOUT)
324*9e965d6fSRomain JobredeauxBASELINE_PROFILES_OPTIMIZER_INTEGRATION_DICT = make_dict(BASELINE_PROFILES_OPTIMIZER_INTEGRATION)
325*9e965d6fSRomain JobredeauxMIN_SDK_FLOORS_DICT = make_min_sdk_dict(MIN_SDK_FLOORS)
326*9e965d6fSRomain JobredeauxANDROID_APK_TO_BUNDLE_FEATURES_DICT = make_dict(ANDROID_APK_TO_BUNDLE_FEATURES)
327*9e965d6fSRomain JobredeauxANDROID_LIBRARY_USE_AOSP_AIDL_COMPILER_ALLOWLIST_DICT = make_dict(ANDROID_LIBRARY_USE_AOSP_AIDL_COMPILER_ALLOWLIST)
328*9e965d6fSRomain JobredeauxANDROID_LOCAL_TEST_JDK_STS_FALLBACK_DICT = make_dict(ANDROID_LOCAL_TEST_JDK_STS_FALLBACK)
329*9e965d6fSRomain JobredeauxANDROID_LOCAL_TEST_JDK_STS_ROLLOUT_DICT = make_dict(ANDROID_LOCAL_TEST_JDK_STS_ROLLOUT)
330*9e965d6fSRomain JobredeauxDATABINDING_ALLOWED_DICT = make_dict(DATABINDING_ALLOWED)
331*9e965d6fSRomain JobredeauxDATABINDING_DISALLOWED_DICT = make_dict(DATABINDING_DISALLOWED)
332*9e965d6fSRomain JobredeauxSHARED_LIBRARY_RESOURCE_LINKING_DICT = make_dict(SHARED_LIBRARY_RESOURCE_LINKING_ALLOWLIST)
333*9e965d6fSRomain JobredeauxANDROID_BINARY_STARLARK_DEX_DESUGAR_PROGUARD_ROLLOUT_DICT = make_dict(ANDROID_BINARY_STARLARK_DEX_DESUGAR_PROGUARD_ROLLOUT)
334*9e965d6fSRomain JobredeauxANDROID_BINARY_STARLARK_DEX_DESUGAR_PROGUARD_FALLBACK_DICT = make_dict(ANDROID_BINARY_STARLARK_DEX_DESUGAR_PROGUARD_FALLBACK)
335*9e965d6fSRomain JobredeauxANDROID_BINARY_MIN_SDK_VERSION_ATTRIBUTE_DICT = make_dict(ANDROID_BINARY_MIN_SDK_VERSION_ATTRIBUTE_ALLOWLIST)
336*9e965d6fSRomain JobredeauxANDROID_BINARY_RAW_ACCESS_TO_RESOURCE_PATHS_ALLOWLIST_DICT = make_dict(ANDROID_BINARY_RAW_ACCESS_TO_RESOURCE_PATHS_ALLOWLIST)
337*9e965d6fSRomain JobredeauxANDROID_BINARY_RESOURCE_NAME_OBFUSCATION_OPT_OUT_ALLOWLIST_DICT = make_dict(ANDROID_BINARY_RESOURCE_NAME_OBFUSCATION_OPT_OUT_ALLOWLIST)
338*9e965d6fSRomain JobredeauxALLOW_PROGUARD_APPLY_MAPPING_DICT = make_dict(ALLOW_PROGUARD_APPLY_MAPPING)
339*9e965d6fSRomain JobredeauxUSE_R8_DICT = make_dict(USE_R8)
340*9e965d6fSRomain Jobredeaux
341*9e965d6fSRomain Jobredeauxdef matches(fqn, dct):
342*9e965d6fSRomain Jobredeaux    # Labels with workspace names ("@workspace//pkg:target") are not supported.
343*9e965d6fSRomain Jobredeaux    # For now, default external dependency ACLs to True to enable rollout features for all
344*9e965d6fSRomain Jobredeaux    # external users. See https://github.com/bazelbuild/rules_android/issues/68
345*9e965d6fSRomain Jobredeaux    # Note that this only affects Bazel builds with OSS rules_android.
346*9e965d6fSRomain Jobredeaux    if fqn.startswith("@"):
347*9e965d6fSRomain Jobredeaux        return True
348*9e965d6fSRomain Jobredeaux
349*9e965d6fSRomain Jobredeaux    if not fqn.startswith("//"):
350*9e965d6fSRomain Jobredeaux        fail("Fully qualified target should start with '//', got: " + fqn)
351*9e965d6fSRomain Jobredeaux
352*9e965d6fSRomain Jobredeaux    if fqn in dct:
353*9e965d6fSRomain Jobredeaux        return True
354*9e965d6fSRomain Jobredeaux
355*9e965d6fSRomain Jobredeaux    pkg_and_target = fqn.split(":")
356*9e965d6fSRomain Jobredeaux    if len(pkg_and_target) != 2:
357*9e965d6fSRomain Jobredeaux        fail("Expected fully qualified target, got: " + fqn)
358*9e965d6fSRomain Jobredeaux    pkg = pkg_and_target[0]
359*9e965d6fSRomain Jobredeaux
360*9e965d6fSRomain Jobredeaux    if (pkg + ":__pkg__") in dct:
361*9e965d6fSRomain Jobredeaux        return True
362*9e965d6fSRomain Jobredeaux
363*9e965d6fSRomain Jobredeaux    pkg = pkg.lstrip("//")
364*9e965d6fSRomain Jobredeaux    pkg_parts = pkg.split("/")
365*9e965d6fSRomain Jobredeaux    ancestor_pkg = "//"
366*9e965d6fSRomain Jobredeaux
367*9e965d6fSRomain Jobredeaux    if (ancestor_pkg + ":__subpackages__") in dct:
368*9e965d6fSRomain Jobredeaux        return True
369*9e965d6fSRomain Jobredeaux
370*9e965d6fSRomain Jobredeaux    for pkg_part in pkg_parts:
371*9e965d6fSRomain Jobredeaux        ancestor_pkg = (
372*9e965d6fSRomain Jobredeaux            (ancestor_pkg + "/" + pkg_part) if ancestor_pkg != "//" else ("//" + pkg_part)
373*9e965d6fSRomain Jobredeaux        )
374*9e965d6fSRomain Jobredeaux        if (ancestor_pkg + ":__subpackages__") in dct:
375*9e965d6fSRomain Jobredeaux            return True
376*9e965d6fSRomain Jobredeaux
377*9e965d6fSRomain Jobredeaux    return False
378*9e965d6fSRomain Jobredeaux
379*9e965d6fSRomain Jobredeauxacls = struct(
380*9e965d6fSRomain Jobredeaux    get_android_archive_duplicate_class_allowlist = _get_android_archive_duplicate_class_allowlist,
381*9e965d6fSRomain Jobredeaux    get_android_archive_exposed_package_allowlist = _get_android_archive_exposed_package_allowlist,
382*9e965d6fSRomain Jobredeaux    get_min_sdk_floor = _get_min_sdk_floor,
383*9e965d6fSRomain Jobredeaux    in_aar_import_deps_checker = _in_aar_import_deps_checker,
384*9e965d6fSRomain Jobredeaux    in_aar_import_explicit_exports_manifest = _in_aar_import_explicit_exports_manifest,
385*9e965d6fSRomain Jobredeaux    in_aar_import_exports_r_java = _in_aar_import_exports_r_java,
386*9e965d6fSRomain Jobredeaux    in_aar_propagate_resources = _in_aar_propagate_resources,
387*9e965d6fSRomain Jobredeaux    in_b122039567 = _in_b122039567,
388*9e965d6fSRomain Jobredeaux    in_b123854163 = _in_b123854163,
389*9e965d6fSRomain Jobredeaux    in_android_archive_dogfood = _in_android_archive_dogfood,
390*9e965d6fSRomain Jobredeaux    in_android_archive_excluded_deps_denylist = _in_android_archive_excluded_deps_denylist,
391*9e965d6fSRomain Jobredeaux    in_android_device_plugin_rollout = _in_android_device_plugin_rollout,
392*9e965d6fSRomain Jobredeaux    in_android_instrumentation_binary_starlark_resources = _in_android_instrumentation_binary_starlark_resources,
393*9e965d6fSRomain Jobredeaux    in_android_binary_starlark_javac = _in_android_binary_starlark_javac,
394*9e965d6fSRomain Jobredeaux    in_android_binary_starlark_split_transition = _in_android_binary_starlark_split_transition,
395*9e965d6fSRomain Jobredeaux    in_android_binary_with_sandboxed_sdks_allowlist = _in_android_binary_with_sandboxed_sdks_allowlist,
396*9e965d6fSRomain Jobredeaux    in_android_feature_splits_dogfood = _in_android_feature_splits_dogfood,
397*9e965d6fSRomain Jobredeaux    in_android_library_starlark_resource_outputs_rollout = _in_android_library_starlark_resource_outputs_rollout,
398*9e965d6fSRomain Jobredeaux    in_android_library_resources_without_srcs = _in_android_library_resources_without_srcs,
399*9e965d6fSRomain Jobredeaux    in_android_library_resources_without_srcs_generator_functions = _in_android_library_resources_without_srcs_generator_functions,
400*9e965d6fSRomain Jobredeaux    in_android_library_use_aosp_aidl_compiler_allowlist = _in_android_library_use_aosp_aidl_compiler_allowlist,
401*9e965d6fSRomain Jobredeaux    in_android_lint_checks_rollout = _in_android_lint_checks_rollout,
402*9e965d6fSRomain Jobredeaux    in_android_lint_rollout = _in_android_lint_rollout,
403*9e965d6fSRomain Jobredeaux    in_lint_registry_rollout = _in_lint_registry_rollout,
404*9e965d6fSRomain Jobredeaux    in_android_build_stamping_rollout = _in_android_build_stamping_rollout,
405*9e965d6fSRomain Jobredeaux    in_android_test_lockdown_allowlist = _in_android_test_lockdown_allowlist,
406*9e965d6fSRomain Jobredeaux    in_app_installation_snapshot = _in_app_installation_snapshot,
407*9e965d6fSRomain Jobredeaux    in_databinding_allowed = _in_databinding_allowed,
408*9e965d6fSRomain Jobredeaux    in_dex2oat_opts = _in_dex2oat_opts,
409*9e965d6fSRomain Jobredeaux    in_fix_export_exporting_rollout = _in_fix_export_exporting_rollout,
410*9e965d6fSRomain Jobredeaux    in_fix_resource_transivity_rollout = _in_fix_resource_transivity_rollout,
411*9e965d6fSRomain Jobredeaux    in_host_dex2oat_rollout = _in_host_dex2oat_rollout,
412*9e965d6fSRomain Jobredeaux    in_install_apps_in_data = _in_install_apps_in_data,
413*9e965d6fSRomain Jobredeaux    in_local_test_multi_proto = _in_local_test_multi_proto,
414*9e965d6fSRomain Jobredeaux    in_local_test_rollout = _in_local_test_rollout,
415*9e965d6fSRomain Jobredeaux    in_local_test_starlark_resources = _in_local_test_starlark_resources,
416*9e965d6fSRomain Jobredeaux    in_android_test_platform_rollout = _in_android_test_platform_rollout,
417*9e965d6fSRomain Jobredeaux    in_test_to_instrument_test_rollout = _in_test_to_instrument_test_rollout,
418*9e965d6fSRomain Jobredeaux    in_allow_resource_conflicts = _in_allow_resource_conflicts,
419*9e965d6fSRomain Jobredeaux    in_partial_jetification_targets = _in_partial_jetification_targets,
420*9e965d6fSRomain Jobredeaux    in_android_instrumentation_test_manifest_check_rollout = _in_android_instrumentation_test_manifest_check_rollout,
421*9e965d6fSRomain Jobredeaux    in_android_instrumentation_test_prebuilt_test_apk = _in_android_instrumentation_test_prebuilt_test_apk,
422*9e965d6fSRomain Jobredeaux    in_baseline_profiles_rollout = _in_baseline_profiles_rollout,
423*9e965d6fSRomain Jobredeaux    in_baseline_profiles_optimizer_integration = _in_baseline_profiles_optimizer_integration,
424*9e965d6fSRomain Jobredeaux    in_android_apk_to_bundle_features = _in_android_apk_to_bundle_features,
425*9e965d6fSRomain Jobredeaux    in_android_local_test_jdk_sts_rollout = _in_android_local_test_jdk_sts_rollout,
426*9e965d6fSRomain Jobredeaux    in_shared_library_resource_linking_allowlist = _in_shared_library_resource_linking_allowlist,
427*9e965d6fSRomain Jobredeaux    in_android_binary_starlark_dex_desugar_proguard = _in_android_binary_starlark_dex_desugar_proguard,
428*9e965d6fSRomain Jobredeaux    in_android_binary_min_sdk_version_attribute_allowlist = _in_android_binary_min_sdk_version_attribute_allowlist,
429*9e965d6fSRomain Jobredeaux    in_android_binary_raw_access_to_resource_paths_allowlist = _in_android_binary_raw_access_to_resource_paths_allowlist,
430*9e965d6fSRomain Jobredeaux    in_android_binary_resource_name_obfuscation_opt_out_allowlist = _in_android_binary_resource_name_obfuscation_opt_out_allowlist,
431*9e965d6fSRomain Jobredeaux    in_allow_proguard_apply_mapping = _in_allow_proguard_apply_mapping,
432*9e965d6fSRomain Jobredeaux    use_r8 = _use_r8,
433*9e965d6fSRomain Jobredeaux)
434*9e965d6fSRomain Jobredeaux
435*9e965d6fSRomain Jobredeaux# Visible for testing
436*9e965d6fSRomain Jobredeauxtesting = struct(
437*9e965d6fSRomain Jobredeaux    matches = matches,
438*9e965d6fSRomain Jobredeaux    make_dict = make_dict,
439*9e965d6fSRomain Jobredeaux)
440