// // Copyright (C) 2019 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // package { default_applicable_licenses: [ "packages_modules_Permission_PermissionController_license", ], } // Added automatically by a large-scale-change // See: http://go/android-license-faq license { name: "packages_modules_Permission_PermissionController_license", visibility: [":__subpackages__"], license_kinds: [ "SPDX-license-identifier-Apache-2.0", ], license_text: [ "NOTICE", ], } genrule { name: "statslog-permissioncontroller-java-gen", tools: ["stats-log-api-gen"], cmd: "$(location stats-log-api-gen) --java $(out) --module permissioncontroller" + " --javaPackage com.android.permissioncontroller" + " --javaClass PermissionControllerStatsLog --minApiLevel 30", out: ["com/android/permissioncontroller/PermissionControllerStatsLog.java"], } java_library { name: "permissioncontroller-statsd", sdk_version: "system_current", min_sdk_version: "30", apex_available: [ "com.android.permission", ], srcs: [ ":statslog-permissioncontroller-java-gen", ], } // File to be included by permission controller app an mocking tests filegroup { name: "permissioncontroller-sources", srcs: [ "src/**/*.java", "src/**/*.kt", ":permissioncontroller-protos", ], } filegroup { name: "permissioncontroller-protos", srcs: [ "src/**/*.proto", ], } android_app { name: "PermissionController", // Compiling against "module_current" would allow using non-APIs within the permission APEX // boundaries, which may be unsafe because PermissionController is also shipped as a standalone // artifact. See also b/209458854. sdk_version: "system_current", min_sdk_version: "30", updatable: true, privileged: true, certificate: "platform", rename_resources_package: false, required: ["privapp_allowlist_com.android.permissioncontroller.xml"], srcs: [":permissioncontroller-sources"], //javacflags: ["-Werror"], kotlincflags: [ "-Werror", "-opt-in=kotlinx.coroutines.DelicateCoroutinesApi", "-Xjvm-default=all" ], libs: [ "android.car-stubs", // Soong fails to automatically add this dependency because all the // *.kt sources are inside a filegroup. "kotlin-annotations", "safety-center-annotations", ], static_libs: [ "iconloader_sc_mainline_prod", "com.google.android.material_material", "androidx.transition_transition", "androidx-constraintlayout_constraintlayout", "androidx.core_core", "androidx.media_media", "androidx.legacy_legacy-support-core-utils", "androidx.legacy_legacy-support-core-ui", "androidx.fragment_fragment", "androidx.appcompat_appcompat", "androidx.preference_preference", "androidx.recyclerview_recyclerview", "androidx.legacy_legacy-preference-v14", "androidx.leanback_leanback", "androidx.leanback_leanback-preference", "androidx.lifecycle_lifecycle-extensions", "androidx.lifecycle_lifecycle-common-java8", "kotlin-stdlib", "kotlinx-coroutines-android", "androidx.navigation_navigation-common-ktx", "androidx.navigation_navigation-fragment-ktx", "androidx.navigation_navigation-runtime-ktx", "androidx.navigation_navigation-ui-ktx", "SettingsLibHelpUtils", "SettingsLibRestrictedLockUtils", "SettingsLibAppPreference", "SettingsLibSearchWidget", "SettingsLibLayoutPreference", "SettingsLibBarChartPreference", "SettingsLibActionBarShadow", "SettingsLibProgressBar", "SettingsLibCollapsingToolbarBaseActivity", "SettingsLibActivityEmbedding", "SettingsLibSettingsTheme", "SettingsLibFooterPreference", "SettingsLibSelectorWithWidgetPreference", "SettingsLibTwoTargetPreference", "SettingsLibIllustrationPreference", "androidx.annotation_annotation", "permissioncontroller-statsd", "car-ui-lib", "libprotobuf-java-lite", "safety-center-internal-data", "safety-center-pending-intents", "SettingsLibUtils", "modules-utils-build_system", "safety-center-resources-lib", "lottie", "safety-label", "role-controller", ], proto: { type: "lite", include_dirs: ["packages/modules/Permission/PermissionController/src/com/android/permissioncontroller"], }, lint: { strict_updatability_linting: true, }, optimize: { proguard_flags_files: ["proguard.flags"], }, apex_available: [ "//apex_available:platform", "com.android.permission", ], }