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