1package { 2 // See: http://go/android-license-faq 3 default_applicable_licenses: ["Android-Apache-2.0"], 4 default_team: "trendy_team_android_storage", 5} 6 7android_app { 8 name: "MediaProvider", 9 manifest: "AndroidManifest.xml", 10 11 static_libs: [ 12 "modules-utils-backgroundthread", 13 "androidx.appcompat_appcompat", 14 "androidx.core_core", 15 "androidx.legacy_legacy-support-core-ui", 16 "androidx.lifecycle_lifecycle-extensions", 17 "androidx.preference_preference", 18 "androidx.recyclerview_recyclerview", 19 "com.google.android.material_material", 20 "guava", 21 "modules-utils-build", 22 "modules-utils-uieventlogger-interface", 23 "glide-prebuilt", 24 "glide-integration-recyclerview-prebuilt", 25 "glide-integration-webpdecoder-prebuilt", 26 "glide-gifdecoder-prebuilt", 27 "glide-disklrucache-prebuilt", 28 "glide-annotation-and-compiler-prebuilt", 29 "androidx.fragment_fragment", 30 "androidx.vectordrawable_vectordrawable-animated", 31 "androidx.exifinterface_exifinterface", 32 "androidx.work_work-runtime", 33 "exoplayer-mediaprovider-ui", 34 "modules-utils-shell-command-handler", 35 "SettingsLibProfileSelector", 36 "SettingsLibTopIntroPreference", 37 "SettingsLibCollapsingToolbarBaseActivity", 38 "SettingsLibSelectorWithWidgetPreference", 39 "mediaprovider_flags_java_lib", 40 "androidx.media3.media3-common", 41 "androidx.media3.media3-transformer", 42 ], 43 44 libs: [ 45 "unsupportedappusage", 46 "app-compat-annotations", 47 "framework-annotations-lib", 48 "framework-configinfrastructure.stubs.module_lib", 49 "framework-mediaprovider.impl", 50 "framework-media.stubs.module_lib", 51 "framework-statsd.stubs.module_lib", 52 "keepanno-annotations", 53 ], 54 55 jni_libs: [ 56 "libfuse_jni", 57 "libfuse", 58 "libleveldb_jni", 59 ], 60 use_embedded_native_libs: true, 61 62 resource_dirs: [ 63 "res", 64 "photopicker/res", 65 ], 66 srcs: [ 67 ":mediaprovider-sources", 68 ], 69 70 optimize: { 71 shrink: true, 72 optimize: false, 73 obfuscate: false, 74 shrink_resources: true, 75 proguard_flags_files: ["proguard.flags"], 76 }, 77 78 plugins: [ 79 "error_prone_mediaprovider", 80 "glide-annotation-processor", 81 ], 82 jarjar_rules: "jarjar-rules.txt", 83 sdk_version: "module_current", 84 min_sdk_version: "30", 85 86 certificate: "media", 87 privileged: true, 88 privapp_allowlist: ":privapp_allowlist_com.android.providers.media.module.xml", 89 90 aaptflags: ["--custom-package com.android.providers.media"], 91 92 errorprone: { 93 javacflags: [ 94 "-Xep:FallThrough:ERROR", 95 "-Xep:GuardedBy:ERROR", 96 "-Xep:StreamResourceLeak:ERROR", 97 98 // Local checkers specific to this module 99 "-Xep:MediaProviderLocaleRoot:ERROR", 100 "-Xep:MediaProviderMimeType:ERROR", 101 ], 102 }, 103 104 lint: { 105 baseline_filename: "lint-baseline.xml", 106 }, 107 108 apex_available: [ 109 "com.android.mediaprovider", 110 ], 111 updatable: true, 112} 113 114// Used by MediaProvider and MediaProviderTests 115filegroup { 116 name: "mediaprovider-sources", 117 srcs: [ 118 "src/**/*.aidl", 119 "src/**/*.java", 120 ":statslog-mediaprovider-java-gen", 121 ], 122} 123 124// This is defined to give LegacyMediaProvider the bare minimum it needs 125// to keep the legacy database schema working while also building 126// against "system_current" 127java_library { 128 name: "mediaprovider-database", 129 srcs: [ 130 "legacy/src/com/android/providers/media/util/LegacyDatabaseUtils.java", 131 "legacy/src/com/android/providers/media/util/LegacyFileUtils.java", 132 "legacy/src/com/android/providers/media/util/LegacyForegroundThread.java", 133 "legacy/src/com/android/providers/media/util/LegacyLogging.java", 134 "legacy/src/com/android/providers/media/util/LegacyMimeUtils.java", 135 "legacy/src/com/android/providers/media/util/LegacyStringUtils.java", 136 ], 137 sdk_version: "module_current", 138 min_sdk_version: "30", 139 static_libs: [ 140 "modules-utils-backgroundthread", 141 "modules-utils-build", 142 "guava", 143 ], 144 libs: [ 145 "androidx.annotation_annotation", 146 "framework-annotations-lib", 147 "framework-mediaprovider.stubs.module_lib", 148 ], 149 lint: { 150 baseline_filename: "lint-baseline2.xml", 151 }, 152} 153 154platform_compat_config { 155 name: "media-provider-platform-compat-config", 156 src: ":MediaProvider", 157} 158 159genrule { 160 name: "statslog-mediaprovider-java-gen", 161 tools: ["stats-log-api-gen"], 162 cmd: "$(location stats-log-api-gen) --java $(out) --module mediaprovider" + 163 " --javaPackage com.android.providers.media --javaClass MediaProviderStatsLog" + 164 " --minApiLevel 30", 165 out: ["com/android/providers/media/MediaProviderStatsLog.java"], 166} 167 168prebuilt_etc { 169 name: "preinstalled-packages-com.android.providers.media.module.xml", 170 src: "preinstalled-packages-com.android.providers.media.module.xml", 171 sub_dir: "sysconfig", 172} 173 174sh_binary { 175 name: "media_provider", 176 src: "cli/media_provider_cli_wrapper.sh", 177} 178 179aconfig_declarations { 180 name: "mediaprovider_flags", 181 package: "com.android.providers.media.flags", 182 container: "com.android.mediaprovider", 183 srcs: ["mediaprovider_flags.aconfig"], 184 exportable: true, 185} 186 187java_aconfig_library { 188 name: "mediaprovider_flags_java_lib", 189 aconfig_declarations: "mediaprovider_flags", 190 min_sdk_version: "30", 191 sdk_version: "module_current", 192 libs: ["framework-configinfrastructure.stubs.module_lib"], 193 apex_available: [ 194 "com.android.mediaprovider", 195 ], 196} 197