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 "SettingsLibSelectorWithWidgetPreference", 37 "mediaprovider_flags_java_lib", 38 "androidx.media3.media3-common", 39 "androidx.media3.media3-transformer", 40 ], 41 42 libs: [ 43 "unsupportedappusage", 44 "app-compat-annotations", 45 "framework-annotations-lib", 46 "framework-configinfrastructure.stubs.module_lib", 47 "framework-mediaprovider.impl", 48 "framework-media.stubs.module_lib", 49 "framework-statsd.stubs.module_lib", 50 "keepanno-annotations", 51 ], 52 53 jni_libs: [ 54 "libfuse_jni", 55 "libfuse", 56 "libleveldb_jni", 57 ], 58 use_embedded_native_libs: true, 59 60 resource_dirs: [ 61 "res", 62 ], 63 srcs: [ 64 ":mediaprovider-sources", 65 ], 66 67 optimize: { 68 shrink: true, 69 optimize: false, 70 obfuscate: false, 71 shrink_resources: true, 72 proguard_flags_files: ["proguard.flags"], 73 }, 74 75 plugins: [ 76 "error_prone_mediaprovider", 77 "glide-annotation-processor", 78 ], 79 jarjar_rules: "jarjar-rules.txt", 80 sdk_version: "module_current", 81 min_sdk_version: "30", 82 83 certificate: "media", 84 privileged: true, 85 privapp_allowlist: ":privapp_allowlist_com.android.providers.media.module.xml", 86 87 aaptflags: ["--custom-package com.android.providers.media"], 88 89 errorprone: { 90 javacflags: [ 91 "-Xep:FallThrough:ERROR", 92 "-Xep:GuardedBy:ERROR", 93 "-Xep:StreamResourceLeak:ERROR", 94 95 // Local checkers specific to this module 96 "-Xep:MediaProviderLocaleRoot:ERROR", 97 "-Xep:MediaProviderMimeType:ERROR", 98 ], 99 }, 100 101 lint: { 102 baseline_filename: "lint-baseline.xml", 103 }, 104 105 apex_available: [ 106 "com.android.mediaprovider", 107 ], 108 updatable: true, 109} 110 111// Used by MediaProvider and MediaProviderTests 112filegroup { 113 name: "mediaprovider-sources", 114 srcs: [ 115 "src/**/*.aidl", 116 "src/**/*.java", 117 ":statslog-mediaprovider-java-gen", 118 ], 119} 120 121// This is defined to give LegacyMediaProvider the bare minimum it needs 122// to keep the legacy database schema working while also building 123// against "system_current" 124java_library { 125 name: "mediaprovider-database", 126 srcs: [ 127 "src/com/android/providers/media/util/DatabaseUtils.java", 128 "src/com/android/providers/media/util/FileUtils.java", 129 "src/com/android/providers/media/util/ForegroundThread.java", 130 "src/com/android/providers/media/util/Logging.java", 131 "src/com/android/providers/media/util/MimeUtils.java", 132 "src/com/android/providers/media/util/StringUtils.java", 133 "src/com/android/providers/media/playlist/*.java", 134 "src/com/android/providers/media/dao/*.java", 135 ], 136 sdk_version: "module_current", 137 min_sdk_version: "30", 138 static_libs: [ 139 "modules-utils-backgroundthread", 140 "modules-utils-build", 141 "guava", 142 ], 143 libs: [ 144 "androidx.annotation_annotation", 145 "framework-annotations-lib", 146 "framework-mediaprovider.stubs.module_lib", 147 ], 148 lint: { 149 baseline_filename: "lint-baseline2.xml", 150 }, 151} 152 153platform_compat_config { 154 name: "media-provider-platform-compat-config", 155 src: ":MediaProvider", 156} 157 158genrule { 159 name: "statslog-mediaprovider-java-gen", 160 tools: ["stats-log-api-gen"], 161 cmd: "$(location stats-log-api-gen) --java $(out) --module mediaprovider" + 162 " --javaPackage com.android.providers.media --javaClass MediaProviderStatsLog" + 163 " --minApiLevel 30", 164 out: ["com/android/providers/media/MediaProviderStatsLog.java"], 165} 166 167prebuilt_etc { 168 name: "preinstalled-packages-com.android.providers.media.module.xml", 169 src: "preinstalled-packages-com.android.providers.media.module.xml", 170 sub_dir: "sysconfig", 171} 172 173sh_binary { 174 name: "media_provider", 175 src: "cli/media_provider_cli_wrapper.sh", 176} 177 178aconfig_declarations { 179 name: "mediaprovider_flags", 180 package: "com.android.providers.media.flags", 181 container: "com.android.mediaprovider", 182 srcs: ["mediaprovider_flags.aconfig"], 183 exportable: true, 184} 185 186java_aconfig_library { 187 name: "mediaprovider_flags_java_lib", 188 aconfig_declarations: "mediaprovider_flags", 189 min_sdk_version: "30", 190 sdk_version: "module_current", 191 libs: ["framework-configinfrastructure.stubs.module_lib"], 192 apex_available: [ 193 "com.android.mediaprovider", 194 ], 195} 196