1# Copyright 2020 The Bazel Authors. All rights reserved. 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 15"""Access Control Lists. 16 17To create a new list: 18 1. Create new .bzl file in this directory with a list of targets. 19 2. Create matching method in this file. 20 3. Add matching method to struct. 21 22To check an ACL: 23 1. Import the `acls` struct. 24 2. Check `acls.list_name(fqn)` using the //fully/qualified:target 25 26To update a list: 27 1. Directly add/remove/edit targets in the appropriate .bzl file 28""" 29 30load("@rules_android//rules/acls:aar_import_deps_checker.bzl", "AAR_IMPORT_DEPS_CHECKER_FALLBACK", "AAR_IMPORT_DEPS_CHECKER_ROLLOUT") 31load("@rules_android//rules/acls:aar_import_explicit_exports_manifest.bzl", "AAR_IMPORT_EXPLICIT_EXPORTS_MANIFEST") 32load("@rules_android//rules/acls:aar_import_exports_r_java.bzl", "AAR_IMPORT_EXPORTS_R_JAVA") 33load("@rules_android//rules/acls:aar_import_package_check.bzl", "AAR_IMPORT_PKG_CHECK_FALLBACK", "AAR_IMPORT_PKG_CHECK_ROLLOUT") 34load("@rules_android//rules/acls:aar_propagate_resources.bzl", "AAR_PROPAGATE_RESOURCES_FALLBACK", "AAR_PROPAGATE_RESOURCES_ROLLOUT") 35load("@rules_android//rules/acls:ait_install_snapshots.bzl", "APP_INSTALLATION_SNAPSHOT", "APP_INSTALLATION_SNAPSHOT_FALLBACK") 36load("@rules_android//rules/acls:ait_virtual_device.bzl", "AIT_VIRTUAL_DEVICE_FALLBACK", "AIT_VIRTUAL_DEVICE_ROLLOUT") 37load("@rules_android//rules/acls:allow_resource_conflicts.bzl", "ALLOW_RESOURCE_CONFLICTS") 38load("@rules_android//rules/acls:android_archive_dogfood.bzl", "ANDROID_ARCHIVE_DOGFOOD") 39load("@rules_android//rules/acls:android_test_lockdown.bzl", "ANDROID_TEST_LOCKDOWN_GENERATOR_FUNCTIONS", "ANDROID_TEST_LOCKDOWN_TARGETS") 40load("@rules_android//rules/acls:android_device_plugin_rollout.bzl", "ANDROID_DEVICE_PLUGIN_FALLBACK", "ANDROID_DEVICE_PLUGIN_ROLLOUT") 41load("@rules_android//rules/acls:android_instrumentation_binary_starlark_resources.bzl", "ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_FALLBACK", "ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_ROLLOUT") 42load("@rules_android//rules/acls:android_feature_splits_dogfood.bzl", "ANDROID_FEATURE_SPLITS_DOGFOOD") 43load("@rules_android//rules/acls:android_library_implicit_exports.bzl", "ANDROID_LIBRARY_IMPLICIT_EXPORTS", "ANDROID_LIBRARY_IMPLICIT_EXPORTS_GENERATOR_FUNCTIONS") 44load("@rules_android//rules/acls:android_library_resources_without_srcs.bzl", "ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS", "ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS_GENERATOR_FUNCTIONS") 45load("@rules_android//rules/acls:android_lint_rollout.bzl", "ANDROID_LINT_ROLLOUT") 46load("@rules_android//rules/acls:android_build_stamping_rollout.bzl", "ANDROID_BUILD_STAMPING_FALLBACK", "ANDROID_BUILD_STAMPING_ROLLOUT") 47load("@rules_android//rules/acls:b122039567.bzl", "B122039567") 48load("@rules_android//rules/acls:b123854163.bzl", "B123854163") 49load("@rules_android//rules/acls:dex2oat_opts.bzl", "CAN_USE_DEX2OAT_OPTIONS") 50load("@rules_android//rules/acls:fix_application_id.bzl", "FIX_APPLICATION_ID_FALLBACK", "FIX_APPLICATION_ID_ROLLOUT") 51load("@rules_android//rules/acls:fix_export_exporting_rollout.bzl", "FIX_EXPORT_EXPORTING_FALLBACK", "FIX_EXPORT_EXPORTING_ROLLOUT") 52load("@rules_android//rules/acls:fix_resource_transitivity_rollout.bzl", "FIX_RESOURCE_TRANSITIVITY_FALLBACK", "FIX_RESOURCE_TRANSITIVITY_ROLLOUT") 53load("@rules_android//rules/acls:host_dex2oat_rollout.bzl", "AIT_USE_HOST_DEX2OAT_ROLLOUT", "AIT_USE_HOST_DEX2OAT_ROLLOUT_FALLBACK") 54load("@rules_android//rules/acls:install_apps_in_data.bzl", "INSTALL_APPS_IN_DATA") 55load("@rules_android//rules/acls:local_test_multi_proto.bzl", "LOCAL_TEST_MULTI_PROTO_PKG") 56load("@rules_android//rules/acls:local_test_rollout.bzl", "LOCAL_TEST_FALLBACK", "LOCAL_TEST_ROLLOUT") 57load("@rules_android//rules/acls:local_test_starlark_resources.bzl", "LOCAL_TEST_STARLARK_RESOURCES_FALLBACK", "LOCAL_TEST_STARLARK_RESOURCES_ROLLOUT") 58load("@rules_android//rules/acls:nitrogen_test_runner_rollout.bzl", "NITROGEN_AT_TEST_RUNNER_ROLLOUT", "NITROGEN_TEST_RUNNER_FALLBACK", "NITROGEN_TEST_RUNNER_ROLLOUT") 59load("@rules_android//rules/acls:android_test_platform_rollout.bzl", "ANDROID_TEST_PLATFORM_FALLBACK", "ANDROID_TEST_PLATFORM_ROLLOUT") 60load("@rules_android//rules/acls:sourceless_binary_rollout.bzl", "SOURCELESS_BINARY_FALLBACK", "SOURCELESS_BINARY_ROLLOUT") 61load("@rules_android//rules/acls:test_to_instrument_test_rollout.bzl", "TEST_TO_INSTRUMENT_TEST_FALLBACK", "TEST_TO_INSTRUMENT_TEST_ROLLOUT") 62load( 63 "@rules_android//rules/acls:partial_jetification_targets.bzl", 64 "PARTIAL_JETIFICATION_TARGETS_FALLBACK", 65 "PARTIAL_JETIFICATION_TARGETS_ROLLOUT", 66) 67load("@rules_android//rules/acls:kt_android_library_rollout.bzl", "KT_ANDROID_LIBRARY_FALLBACK", "KT_ANDROID_LIBRARY_ROLLOUT") 68 69def _in_aar_import_deps_checker(fqn): 70 return not _matches(fqn, AAR_IMPORT_DEPS_CHECKER_FALLBACK_DICT) and _matches(fqn, AAR_IMPORT_DEPS_CHECKER_ROLLOUT_DICT) 71 72def _in_aar_import_explicit_exports_manifest(fqn): 73 return _matches(fqn, AAR_IMPORT_EXPLICIT_EXPORTS_MANIFEST_DICT) 74 75def _in_aar_import_exports_r_java(fqn): 76 return _matches(fqn, AAR_IMPORT_EXPORTS_R_JAVA_DICT) 77 78def _in_aar_import_pkg_check(fqn): 79 return not _matches(fqn, AAR_IMPORT_PKG_CHECK_FALLBACK_DICT) and _matches(fqn, AAR_IMPORT_PKG_CHECK_ROLLOUT_DICT) 80 81def _in_aar_propagate_resources(fqn): 82 return not _matches(fqn, AAR_PROPAGATE_RESOURCES_FALLBACK_DICT) and _matches(fqn, AAR_PROPAGATE_RESOURCES_ROLLOUT_DICT) 83 84def _in_ait_virtual_device(fqn): 85 return not _matches(fqn, AIT_VIRTUAL_DEVICE_FALLBACK_DICT) and _matches(fqn, AIT_VIRTUAL_DEVICE_ROLLOUT_DICT) 86 87def _in_android_archive_dogfood(fqn): 88 return _matches(fqn, ANDROID_ARCHIVE_DOGFOOD_DICT) 89 90def _in_android_device_plugin_rollout(fqn): 91 return not _matches(fqn, ANDROID_DEVICE_PLUGIN_FALLBACK_DICT) and _matches(fqn, ANDROID_DEVICE_PLUGIN_ROLLOUT_DICT) 92 93def _in_android_instrumentation_binary_starlark_resources(fqn): 94 return not _matches(fqn, ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_FALLBACK_DICT) and _matches(fqn, ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_ROLLOUT_DICT) 95 96def _in_android_feature_splits_dogfood(fqn): 97 return _matches(fqn, ANDROID_FEATURE_SPLITS_DOGFOOD_DICT) 98 99def _in_android_lint_rollout(fqn): 100 return _matches(fqn, ANDROID_LINT_ROLLOUT_DICT) 101 102def _in_android_build_stamping_rollout(fqn): 103 return not _matches(fqn, ANDROID_BUILD_STAMPING_FALLBACK_DICT) and _matches(fqn, ANDROID_BUILD_STAMPING_ROLLOUT_DICT) 104 105def _in_android_test_lockdown_allowlist(fqn, generator): 106 return _matches(fqn, ANDROID_TEST_LOCKDOWN_TARGETS_DICT) or generator in ANDROID_TEST_LOCKDOWN_GENERATOR_FUNCTIONS_DICT 107 108def _in_b122039567(fqn): 109 return _matches(fqn, B122039567_DICT) 110 111def _in_b123854163(fqn): 112 return _matches(fqn, B123854163_DICT) 113 114def _in_android_library_implicit_exports(fqn): 115 return _matches(fqn, ANDROID_LIBRARY_IMPLICIT_EXPORTS_DICT) 116 117def _in_android_library_implicit_exports_generator_functions(gfn): 118 return gfn in ANDROID_LIBRARY_IMPLICIT_EXPORTS_GENERATOR_FUNCTIONS_DICT 119 120def _in_android_library_resources_without_srcs(fqn): 121 return _matches(fqn, ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS_DICT) 122 123def _in_android_library_resources_without_srcs_generator_functions(gfn): 124 return gfn in ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS_GENERATOR_FUNCTIONS_DICT 125 126def _in_app_installation_snapshot(fqn): 127 return not _matches(fqn, APP_INSTALLATION_SNAPSHOT_FALLBACK_DICT) and _matches(fqn, APP_INSTALLATION_SNAPSHOT_DICT) 128 129def _in_dex2oat_opts(fqn): 130 return _matches(fqn, CAN_USE_DEX2OAT_OPTIONS_DICT) 131 132def _in_fix_application_id(fqn): 133 return not _matches(fqn, FIX_APPLICATION_ID_FALLBACK_DICT) and _matches(fqn, FIX_APPLICATION_ID_ROLLOUT_DICT) 134 135def _in_fix_export_exporting_rollout(fqn): 136 return not _matches(fqn, FIX_EXPORT_EXPORTING_FALLBACK_DICT) and _matches(fqn, FIX_EXPORT_EXPORTING_ROLLOUT_DICT) 137 138def _in_fix_resource_transivity_rollout(fqn): 139 return not _matches(fqn, FIX_RESOURCE_TRANSIVITY_FALLBACK_DICT) and _matches(fqn, FIX_RESOURCE_TRANSIVITY_ROLLOUT_DICT) 140 141def _in_host_dex2oat_rollout(fqn): 142 return not _matches(fqn, AIT_USE_HOST_DEX2OAT_ROLLOUT_FALLBACK_DICT) and _matches(fqn, AIT_USE_HOST_DEX2OAT_ROLLOUT_DICT) 143 144def _in_install_apps_in_data(fqn): 145 return _matches(fqn, AIT_INSTALL_APPS_IN_DATA_DICT) 146 147def _in_local_test_multi_proto(fqn): 148 return _matches(fqn, LOCAL_TEST_MULTI_PROTO_PKG_DICT) 149 150def _in_local_test_rollout(fqn): 151 return not _matches(fqn, LOCAL_TEST_FALLBACK_DICT) and _matches(fqn, LOCAL_TEST_ROLLOUT_DICT) 152 153def _in_local_test_starlark_resources(fqn): 154 return not _matches(fqn, LOCAL_TEST_STARLARK_RESOURCES_FALLBACK_DICT) and _matches(fqn, LOCAL_TEST_STARLARK_RESOURCES_ROLLOUT_DICT) 155 156def _in_nitrogen_test_runner_rollout(fqn): 157 return not _matches(fqn, NITROGEN_TEST_RUNNER_FALLBACK_DICT) and _matches(fqn, NITROGEN_TEST_RUNNER_ROLLOUT_DICT) 158 159def _in_nitrogen_at_test_runner_rollout(fqn): 160 return not _matches(fqn, NITROGEN_TEST_RUNNER_FALLBACK_DICT) and _matches(fqn, NITROGEN_AT_TEST_RUNNER_ROLLOUT_DICT) 161 162def _in_android_test_platform_rollout(fqn): 163 return not _matches(fqn, ANDROID_TEST_PLATFORM_FALLBACK_DICT) and _matches(fqn, ANDROID_TEST_PLATFORM_ROLLOUT_DICT) 164 165def _in_sourceless_binary_rollout(fqn): 166 return not _matches(fqn, SOURCELESS_BINARY_FALLBACK_DICT) and _matches(fqn, SOURCELESS_BINARY_ROLLOUT_DICT) 167 168def _in_test_to_instrument_test_rollout(fqn): 169 return not _matches(fqn, TEST_TO_INSTRUMENT_TEST_FALLBACK_DICT) and _matches(fqn, TEST_TO_INSTRUMENT_TEST_ROLLOUT_DICT) 170 171def _in_allow_resource_conflicts(fqn): 172 return _matches(fqn, ALLOW_RESOURCE_CONFLICTS_DICT) 173 174def _in_partial_jetification_targets(fqn): 175 return not _matches(fqn, PARTIAL_JETIFICATION_TARGETS_FALLBACK_DICT) and _matches(fqn, PARTIAL_JETIFICATION_TARGETS_ROLLOUT_DICT) 176 177def _in_kt_android_library_rollout(fqn): 178 return not _matches(fqn, KT_ANDROID_LIBRARY_FALLBACK_DICT) and _matches(fqn, KT_ANDROID_LIBRARY_ROLLOUT_DICT) 179 180def _make_dict(lst): 181 """Do not use this method outside of this file.""" 182 return {t: True for t in lst} 183 184AAR_IMPORT_DEPS_CHECKER_FALLBACK_DICT = _make_dict(AAR_IMPORT_DEPS_CHECKER_FALLBACK) 185AAR_IMPORT_DEPS_CHECKER_ROLLOUT_DICT = _make_dict(AAR_IMPORT_DEPS_CHECKER_ROLLOUT) 186AAR_IMPORT_EXPLICIT_EXPORTS_MANIFEST_DICT = _make_dict(AAR_IMPORT_EXPLICIT_EXPORTS_MANIFEST) 187AAR_IMPORT_EXPORTS_R_JAVA_DICT = _make_dict(AAR_IMPORT_EXPORTS_R_JAVA) 188AAR_IMPORT_PKG_CHECK_FALLBACK_DICT = _make_dict(AAR_IMPORT_PKG_CHECK_FALLBACK) 189AAR_IMPORT_PKG_CHECK_ROLLOUT_DICT = _make_dict(AAR_IMPORT_PKG_CHECK_ROLLOUT) 190AAR_PROPAGATE_RESOURCES_FALLBACK_DICT = _make_dict(AAR_PROPAGATE_RESOURCES_FALLBACK) 191AAR_PROPAGATE_RESOURCES_ROLLOUT_DICT = _make_dict(AAR_PROPAGATE_RESOURCES_ROLLOUT) 192AIT_VIRTUAL_DEVICE_FALLBACK_DICT = _make_dict(AIT_VIRTUAL_DEVICE_FALLBACK) 193AIT_VIRTUAL_DEVICE_ROLLOUT_DICT = _make_dict(AIT_VIRTUAL_DEVICE_ROLLOUT) 194ANDROID_ARCHIVE_DOGFOOD_DICT = _make_dict(ANDROID_ARCHIVE_DOGFOOD) 195ANDROID_DEVICE_PLUGIN_ROLLOUT_DICT = _make_dict(ANDROID_DEVICE_PLUGIN_ROLLOUT) 196ANDROID_DEVICE_PLUGIN_FALLBACK_DICT = _make_dict(ANDROID_DEVICE_PLUGIN_FALLBACK) 197ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_ROLLOUT_DICT = _make_dict(ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_ROLLOUT) 198ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_FALLBACK_DICT = _make_dict(ANDROID_INSTRUMENTATION_BINARY_STARLARK_RESOURCES_FALLBACK) 199ANDROID_FEATURE_SPLITS_DOGFOOD_DICT = _make_dict(ANDROID_FEATURE_SPLITS_DOGFOOD) 200ANDROID_LIBRARY_IMPLICIT_EXPORTS_DICT = _make_dict(ANDROID_LIBRARY_IMPLICIT_EXPORTS) 201ANDROID_LIBRARY_IMPLICIT_EXPORTS_GENERATOR_FUNCTIONS_DICT = _make_dict(ANDROID_LIBRARY_IMPLICIT_EXPORTS_GENERATOR_FUNCTIONS) 202ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS_DICT = _make_dict(ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS) 203ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS_GENERATOR_FUNCTIONS_DICT = _make_dict(ANDROID_LIBRARY_RESOURCES_WITHOUT_SRCS_GENERATOR_FUNCTIONS) 204ANDROID_LINT_ROLLOUT_DICT = _make_dict(ANDROID_LINT_ROLLOUT) 205ANDROID_BUILD_STAMPING_ROLLOUT_DICT = _make_dict(ANDROID_BUILD_STAMPING_ROLLOUT) 206ANDROID_BUILD_STAMPING_FALLBACK_DICT = _make_dict(ANDROID_BUILD_STAMPING_FALLBACK) 207ANDROID_TEST_LOCKDOWN_GENERATOR_FUNCTIONS_DICT = _make_dict(ANDROID_TEST_LOCKDOWN_GENERATOR_FUNCTIONS) 208ANDROID_TEST_LOCKDOWN_TARGETS_DICT = _make_dict(ANDROID_TEST_LOCKDOWN_TARGETS) 209APP_INSTALLATION_SNAPSHOT_DICT = _make_dict(APP_INSTALLATION_SNAPSHOT) 210APP_INSTALLATION_SNAPSHOT_FALLBACK_DICT = _make_dict(APP_INSTALLATION_SNAPSHOT_FALLBACK) 211B122039567_DICT = _make_dict(B122039567) 212B123854163_DICT = _make_dict(B123854163) 213CAN_USE_DEX2OAT_OPTIONS_DICT = _make_dict(CAN_USE_DEX2OAT_OPTIONS) 214FIX_APPLICATION_ID_FALLBACK_DICT = _make_dict(FIX_APPLICATION_ID_FALLBACK) 215FIX_APPLICATION_ID_ROLLOUT_DICT = _make_dict(FIX_APPLICATION_ID_ROLLOUT) 216FIX_RESOURCE_TRANSIVITY_FALLBACK_DICT = _make_dict(FIX_RESOURCE_TRANSITIVITY_FALLBACK) 217FIX_RESOURCE_TRANSIVITY_ROLLOUT_DICT = _make_dict(FIX_RESOURCE_TRANSITIVITY_ROLLOUT) 218FIX_EXPORT_EXPORTING_FALLBACK_DICT = _make_dict(FIX_EXPORT_EXPORTING_FALLBACK) 219FIX_EXPORT_EXPORTING_ROLLOUT_DICT = _make_dict(FIX_EXPORT_EXPORTING_ROLLOUT) 220AIT_USE_HOST_DEX2OAT_ROLLOUT_DICT = _make_dict(AIT_USE_HOST_DEX2OAT_ROLLOUT) 221AIT_USE_HOST_DEX2OAT_ROLLOUT_FALLBACK_DICT = _make_dict(AIT_USE_HOST_DEX2OAT_ROLLOUT_FALLBACK) 222AIT_INSTALL_APPS_IN_DATA_DICT = _make_dict(INSTALL_APPS_IN_DATA) 223LOCAL_TEST_MULTI_PROTO_PKG_DICT = _make_dict(LOCAL_TEST_MULTI_PROTO_PKG) 224LOCAL_TEST_FALLBACK_DICT = _make_dict(LOCAL_TEST_FALLBACK) 225LOCAL_TEST_ROLLOUT_DICT = _make_dict(LOCAL_TEST_ROLLOUT) 226LOCAL_TEST_STARLARK_RESOURCES_FALLBACK_DICT = _make_dict(LOCAL_TEST_STARLARK_RESOURCES_FALLBACK) 227LOCAL_TEST_STARLARK_RESOURCES_ROLLOUT_DICT = _make_dict(LOCAL_TEST_STARLARK_RESOURCES_ROLLOUT) 228NITROGEN_TEST_RUNNER_FALLBACK_DICT = _make_dict(NITROGEN_TEST_RUNNER_FALLBACK) 229NITROGEN_TEST_RUNNER_ROLLOUT_DICT = _make_dict(NITROGEN_TEST_RUNNER_ROLLOUT) 230NITROGEN_AT_TEST_RUNNER_ROLLOUT_DICT = _make_dict(NITROGEN_AT_TEST_RUNNER_ROLLOUT) 231ANDROID_TEST_PLATFORM_FALLBACK_DICT = _make_dict(ANDROID_TEST_PLATFORM_FALLBACK) 232ANDROID_TEST_PLATFORM_ROLLOUT_DICT = _make_dict(ANDROID_TEST_PLATFORM_ROLLOUT) 233SOURCELESS_BINARY_FALLBACK_DICT = _make_dict(SOURCELESS_BINARY_FALLBACK) 234SOURCELESS_BINARY_ROLLOUT_DICT = _make_dict(SOURCELESS_BINARY_ROLLOUT) 235TEST_TO_INSTRUMENT_TEST_FALLBACK_DICT = _make_dict(TEST_TO_INSTRUMENT_TEST_FALLBACK) 236TEST_TO_INSTRUMENT_TEST_ROLLOUT_DICT = _make_dict(TEST_TO_INSTRUMENT_TEST_ROLLOUT) 237ALLOW_RESOURCE_CONFLICTS_DICT = _make_dict(ALLOW_RESOURCE_CONFLICTS) 238PARTIAL_JETIFICATION_TARGETS_ROLLOUT_DICT = _make_dict(PARTIAL_JETIFICATION_TARGETS_ROLLOUT) 239PARTIAL_JETIFICATION_TARGETS_FALLBACK_DICT = _make_dict(PARTIAL_JETIFICATION_TARGETS_FALLBACK) 240KT_ANDROID_LIBRARY_ROLLOUT_DICT = _make_dict(KT_ANDROID_LIBRARY_ROLLOUT) 241KT_ANDROID_LIBRARY_FALLBACK_DICT = _make_dict(KT_ANDROID_LIBRARY_FALLBACK) 242 243def _matches(fqn, dct): 244 if not fqn.startswith("//"): 245 fail("Fully qualified target should start with '//', got: " + fqn) 246 247 if fqn in dct: 248 return True 249 250 pkg_and_target = fqn.split(":") 251 if len(pkg_and_target) != 2: 252 fail("Expected fully qualified target, got: " + fqn) 253 pkg = pkg_and_target[0] 254 255 if (pkg + ":__pkg__") in dct: 256 return True 257 258 pkg = pkg.lstrip("//") 259 pkg_parts = pkg.split("/") 260 ancestor_pkg = "//" 261 262 if (ancestor_pkg + ":__subpackages__") in dct: 263 return True 264 265 for pkg_part in pkg_parts: 266 ancestor_pkg = ( 267 (ancestor_pkg + "/" + pkg_part) if ancestor_pkg != "//" else ("//" + pkg_part) 268 ) 269 if (ancestor_pkg + ":__subpackages__") in dct: 270 return True 271 272 return False 273 274acls = struct( 275 in_aar_import_deps_checker = _in_aar_import_deps_checker, 276 in_aar_import_pkg_check = _in_aar_import_pkg_check, 277 in_aar_import_explicit_exports_manifest = _in_aar_import_explicit_exports_manifest, 278 in_aar_import_exports_r_java = _in_aar_import_exports_r_java, 279 in_aar_propagate_resources = _in_aar_propagate_resources, 280 in_ait_virtual_device = _in_ait_virtual_device, 281 in_b122039567 = _in_b122039567, 282 in_b123854163 = _in_b123854163, 283 in_android_archive_dogfood = _in_android_archive_dogfood, 284 in_android_device_plugin_rollout = _in_android_device_plugin_rollout, 285 in_android_instrumentation_binary_starlark_resources = _in_android_instrumentation_binary_starlark_resources, 286 in_android_feature_splits_dogfood = _in_android_feature_splits_dogfood, 287 in_android_library_implicit_exports = _in_android_library_implicit_exports, 288 in_android_library_implicit_exports_generator_functions = _in_android_library_implicit_exports_generator_functions, 289 in_android_library_resources_without_srcs = _in_android_library_resources_without_srcs, 290 in_android_library_resources_without_srcs_generator_functions = _in_android_library_resources_without_srcs_generator_functions, 291 in_android_lint_rollout = _in_android_lint_rollout, 292 in_android_build_stamping_rollout = _in_android_build_stamping_rollout, 293 in_android_test_lockdown_allowlist = _in_android_test_lockdown_allowlist, 294 in_app_installation_snapshot = _in_app_installation_snapshot, 295 in_dex2oat_opts = _in_dex2oat_opts, 296 in_fix_application_id = _in_fix_application_id, 297 in_fix_export_exporting_rollout = _in_fix_export_exporting_rollout, 298 in_fix_resource_transivity_rollout = _in_fix_resource_transivity_rollout, 299 in_host_dex2oat_rollout = _in_host_dex2oat_rollout, 300 in_install_apps_in_data = _in_install_apps_in_data, 301 in_local_test_multi_proto = _in_local_test_multi_proto, 302 in_local_test_rollout = _in_local_test_rollout, 303 in_local_test_starlark_resources = _in_local_test_starlark_resources, 304 in_nitrogen_test_runner_rollout = _in_nitrogen_test_runner_rollout, 305 in_nitrogen_at_test_runner_rollout = _in_nitrogen_at_test_runner_rollout, 306 in_android_test_platform_rollout = _in_android_test_platform_rollout, 307 in_sourceless_binary_rollout = _in_sourceless_binary_rollout, 308 in_test_to_instrument_test_rollout = _in_test_to_instrument_test_rollout, 309 in_allow_resource_conflicts = _in_allow_resource_conflicts, 310 in_partial_jetification_targets = _in_partial_jetification_targets, 311 in_kt_android_library_rollout = _in_kt_android_library_rollout, 312) 313 314# Visible for testing 315testing = struct( 316 matches = _matches, 317 make_dict = _make_dict, 318) 319