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