1// 2// Copyright (C) 2019 The Android Open Source Project 3// 4// Licensed under the Apache License, Version 2.0 (the "License"); 5// you may not use this file except in compliance with the License. 6// You may obtain a copy of the License at 7// 8// http://www.apache.org/licenses/LICENSE-2.0 9// 10// Unless required by applicable law or agreed to in writing, software 11// distributed under the License is distributed on an "AS IS" BASIS, 12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13// See the License for the specific language governing permissions and 14// limitations under the License. 15// 16 17package { 18 default_team: "trendy_team_android_permissions", 19 default_applicable_licenses: [ 20 "packages_modules_Permission_PermissionController_license", 21 ], 22} 23 24// Added automatically by a large-scale-change 25// See: http://go/android-license-faq 26license { 27 name: "packages_modules_Permission_PermissionController_license", 28 visibility: [":__subpackages__"], 29 license_kinds: [ 30 "SPDX-license-identifier-Apache-2.0", 31 ], 32 license_text: [ 33 "NOTICE", 34 ], 35} 36 37genrule { 38 name: "statslog-permissioncontroller-java-gen", 39 tools: ["stats-log-api-gen"], 40 cmd: "$(location stats-log-api-gen) --java $(out) --module permissioncontroller" + 41 " --javaPackage com.android.permissioncontroller" + 42 " --javaClass PermissionControllerStatsLog --minApiLevel 30", 43 out: ["com/android/permissioncontroller/PermissionControllerStatsLog.java"], 44} 45 46java_library { 47 name: "permissioncontroller-statsd", 48 sdk_version: "system_current", 49 min_sdk_version: "30", 50 apex_available: [ 51 "com.android.permission", 52 ], 53 srcs: [ 54 ":statslog-permissioncontroller-java-gen", 55 ], 56} 57 58java_library { 59 name: "permissioncontroller-protos", 60 sdk_version: "system_current", 61 min_sdk_version: "30", 62 srcs: [ 63 "src/**/*.proto", 64 ], 65 proto: { 66 type: "lite", 67 include_dirs: ["packages/modules/Permission/PermissionController/src/com/android/permissioncontroller"], 68 }, 69 apex_available: [ 70 "//apex_available:platform", 71 "com.android.permission", 72 ], 73} 74 75filegroup { 76 name: "PermissionController-jarjar-rules", 77 srcs: ["jarjar-rules.txt"], 78} 79 80android_library { 81 name: "PermissionController-lib", 82 sdk_version: "system_current", 83 min_sdk_version: "30", 84 use_resource_processor: true, 85 manifest: "AndroidManifest-lib.xml", 86 srcs: [ 87 "src/**/*.java", 88 "src/**/*.kt", 89 ], 90 91 //javacflags: ["-Werror"], 92 kotlincflags: [ 93 "-Werror", 94 "-opt-in=kotlinx.coroutines.DelicateCoroutinesApi", 95 "-Xjvm-default=all", 96 ], 97 98 libs: [ 99 "android.car-stubs", 100 "safety-center-annotations", 101 ], 102 103 static_libs: [ 104 "permissioncontroller-protos", 105 "iconloader_sc_mainline_prod", 106 "com.google.android.material_material", 107 "androidx.transition_transition", 108 "androidx-constraintlayout_constraintlayout", 109 "androidx.core_core", 110 "androidx.media_media", 111 "androidx.legacy_legacy-support-core-utils", 112 "androidx.legacy_legacy-support-core-ui", 113 "androidx.fragment_fragment", 114 "androidx.appcompat_appcompat", 115 "androidx.preference_preference", 116 "androidx.recyclerview_recyclerview", 117 "androidx.legacy_legacy-preference-v14", 118 "androidx.leanback_leanback", 119 "androidx.leanback_leanback-preference", 120 "androidx.lifecycle_lifecycle-common-java8", 121 "kotlin-stdlib", 122 "kotlinx-coroutines-android", 123 "androidx.navigation_navigation-common-ktx", 124 "androidx.navigation_navigation-fragment-ktx", 125 "androidx.navigation_navigation-runtime-ktx", 126 "androidx.navigation_navigation-ui-ktx", 127 "SettingsLibHelpUtils", 128 "SettingsLibRestrictedLockUtils", 129 "SettingsLibAppPreference", 130 "SettingsLibSearchWidget", 131 "SettingsLibLayoutPreference", 132 "SettingsLibBarChartPreference", 133 "SettingsLibActionBarShadow", 134 "SettingsLibProgressBar", 135 "SettingsLibCollapsingToolbarBaseActivity", 136 "SettingsLibActivityEmbedding", 137 "SettingsLibSettingsTheme", 138 "SettingsLibFooterPreference", 139 "SettingsLibSelectorWithWidgetPreference", 140 "SettingsLibTwoTargetPreference", 141 "SettingsLibIllustrationPreference", 142 "androidx.annotation_annotation", 143 "permissioncontroller-statsd", 144 "car-ui-lib", 145 "libprotobuf-java-lite", 146 "safety-center-internal-data", 147 "safety-center-pending-intents", 148 "SettingsLibUtils", 149 "modules-utils-build_system", 150 "safety-center-resources-lib", 151 "lottie", 152 "safety-label", 153 "role-controller", 154 "android.permission.flags-aconfig-java-export", 155 "com.android.permission.flags-aconfig-java-export", 156 "androidx.compose.foundation_foundation", 157 "androidx.compose.runtime_runtime", 158 "androidx.compose.runtime_runtime-livedata", 159 "androidx.compose.ui_ui", 160 "androidx.wear.compose_compose-material", 161 "androidx.wear.compose_compose-material3", 162 "android.content.pm.flags-aconfig-java-export", 163 "android.os.flags-aconfig-java-export", 164 ], 165 166 lint: { 167 error_checks: ["Recycle"], 168 baseline_filename: "lint-baseline.xml", 169 }, 170 171 apex_available: [ 172 "//apex_available:platform", 173 "com.android.permission", 174 ], 175 176 // TODO(b/313706381): Remove jarjar once flagging lib is fixed 177 jarjar_rules: ":PermissionController-jarjar-rules", 178} 179 180android_app { 181 name: "PermissionController", 182 // Compiling against "module_current" would allow using non-APIs within the permission APEX 183 // boundaries, which may be unsafe because PermissionController is also shipped as a standalone 184 // artifact. See also b/209458854. 185 sdk_version: "system_current", 186 min_sdk_version: "30", 187 updatable: true, 188 privileged: true, 189 certificate: "platform", 190 use_resource_processor: true, 191 rename_resources_package: false, 192 privapp_allowlist: ":privapp_allowlist_com.android.permissioncontroller.xml", 193 194 static_libs: ["PermissionController-lib"], 195 196 lint: { 197 error_checks: ["Recycle"], 198 }, 199 200 optimize: { 201 proguard_compatibility: false, // TODO(b/215530220): remove when this is default behavior 202 proguard_flags_files: ["proguard.flags"], 203 }, 204 205 apex_available: [ 206 "//apex_available:platform", 207 "com.android.permission", 208 ], 209} 210