blob: b0d7c02eea7e9367a5c12914adecb59e661e7236 [file] [log] [blame]
Dongwon Kangb188ad82018-11-09 16:05:43 -08001// Copyright (C) 2018 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Bob Badour56786ac2021-02-25 15:24:36 -080015package {
16 // See: http://go/android-license-faq
17 // A large-scale-change added 'default_applicable_licenses' to import
18 // all of the 'license_kinds' from "frameworks_av_license"
19 // to get the below license kinds:
20 // SPDX-license-identifier-Apache-2.0
21 default_applicable_licenses: ["frameworks_av_license"],
22}
23
Dongwon Kang28052d52019-02-14 21:49:08 -080024apex_defaults {
25 name: "com.android.media-defaults",
satayev26a0e1a2021-05-12 15:50:11 +010026 bootclasspath_fragments: ["com.android.media-bootclasspath-fragment"],
satayev95eb9de2021-05-18 14:33:22 +010027 systemserverclasspath_fragments: ["com.android.media-systemserverclasspath-fragment"],
Dongwon Kang8bd93d32019-05-03 14:58:08 +000028 multilib: {
29 first: {
30 // Extractor process runs only with the primary ABI.
31 native_shared_libs: [
32 // Extractor plugins
33 "libaacextractor",
34 "libamrextractor",
35 "libflacextractor",
36 "libmidiextractor",
37 "libmkvextractor",
38 "libmp3extractor",
39 "libmp4extractor",
40 "libmpeg2extractor",
41 "liboggextractor",
42 "libwavextractor",
43 ],
Chong Zhanga2e3a042020-10-26 11:58:11 -070044 // Transcoding service only run with primary ABI.
45 binaries: [
46 "mediatranscoding",
47 ],
Dongwon Kang8bd93d32019-05-03 14:58:08 +000048 },
49 },
Santiago Seifertef893d42020-11-13 17:36:40 +000050 // JNI
Ray Essick1831f7b2021-03-15 16:10:51 -070051 native_shared_libs: [
52 "libmediaparser-jni",
53 "libmediaformatshaper",
54 ],
Santiago Seifertef893d42020-11-13 17:36:40 +000055 compile_multilib: "both",
Marco Nelissen80e1a6d2019-04-30 15:52:10 -070056 prebuilts: [
Ray Essick44574862020-02-13 12:39:14 -080057 "code_coverage.policy",
Chong Zhanga2e3a042020-10-26 11:58:11 -070058 "com.android.media-mediatranscoding.rc",
Ray Essick8cd6d142022-03-25 12:01:29 -070059 "com.android.media-mediatranscoding.32rc",
Ray Essick44574862020-02-13 12:39:14 -080060 "crash_dump.policy",
Chong Zhanga2e3a042020-10-26 11:58:11 -070061 "mediaextractor.policy",
62 "media-linker-config",
Marco Nelissen80e1a6d2019-04-30 15:52:10 -070063 ],
Dongwon Kang1d3b2e72018-11-13 13:58:38 -080064 key: "com.android.media.key",
Jiyong Park3ef4f712019-02-11 11:00:31 +090065 certificate: ":com.android.media.certificate",
Jeff Hamilton0bce0c62019-03-06 22:23:40 -050066
67 // Use a custom AndroidManifest.xml used for API targeting.
68 androidManifest: ":com.android.media-androidManifest",
Jooyung Han97d7b652020-03-12 18:22:20 +090069
Nada Hussein2ec05472022-09-28 14:07:03 +000070 // IMPORTANT: q-launched-dcla-enabled-apex-module enables the build system to make
71 // sure the package compatible to Android 10 in two ways(if flag APEX_BUILD_FOR_PRE_S_DEVICES=1
72 // is set):
Jooyung Han97d7b652020-03-12 18:22:20 +090073 // - build the APEX package compatible to Android 10
74 // so that the package can be installed.
75 // - build artifacts (lib/javalib/bin) against Android 10 SDK
76 // so that the artifacts can run.
Nada Hussein2ec05472022-09-28 14:07:03 +000077 // If the flag is not set, the package is built to be compatible with Android 12.
78 defaults: ["q-launched-dcla-enabled-apex-module"],
Nikita Ioffe92353282021-02-04 01:20:01 +000079 // Indicates that pre-installed version of this apex can be compressed.
80 // Whether it actually will be compressed is controlled on per-device basis.
81 compressible: true,
Dongwon Kangb188ad82018-11-09 16:05:43 -080082}
83
Chong Zhang0b83feb2018-12-20 17:44:13 -080084apex {
Dongwon Kang28052d52019-02-14 21:49:08 -080085 name: "com.android.media",
86 manifest: "manifest.json",
87 defaults: ["com.android.media-defaults"],
Anton Hansson8aad6e52021-05-20 18:00:07 +010088 prebuilts: ["current_sdkinfo"],
Kiyoung Kim0c5ccf42020-09-09 14:17:30 +090089}
90
Kiyoung Kimb5aa33d2020-10-06 17:43:40 +090091linker_config {
Kiyoung Kim0c5ccf42020-09-09 14:17:30 +090092 name: "media-linker-config",
Kiyoung Kimb5aa33d2020-10-06 17:43:40 +090093 src: "linker.config.json",
Kiyoung Kim0c5ccf42020-09-09 14:17:30 +090094 installable: false,
Dongwon Kang28052d52019-02-14 21:49:08 -080095}
96
satayev26a0e1a2021-05-12 15:50:11 +010097// Encapsulate the contributions made by the com.android.media to the bootclasspath.
98bootclasspath_fragment {
99 name: "com.android.media-bootclasspath-fragment",
100 contents: ["updatable-media"],
101 apex_available: ["com.android.media"],
Paul Duffin44517762021-06-29 01:58:33 +0100102
103 api: {
104 stub_libs: [
105 // Stubs for the APIs provided by updatable-media. This has to be
106 // specified explicitly because updatable-media is not a
107 // java_sdk_library.
108 "framework-media",
109 ],
110 },
111
112 // The bootclasspath_fragments that provide APIs on which this depends.
113 fragments: [
114 {
115 apex: "com.android.art",
116 module: "art-bootclasspath-fragment",
117 },
118 ],
119
120 // Additional stubs libraries that this fragment's contents use which are
121 // not provided by another bootclasspath_fragment.
122 additional_stubs: [
123 "android-non-updatable",
124 ],
125
126 // Additional hidden API flag files to override the defaults. This must only be
127 // modified by the Soong or platform compat team.
128 hidden_api: {
129 max_target_o_low_priority: ["hiddenapi/hiddenapi-max-target-o-low-priority.txt"],
Paul Duffin820590b2022-03-21 16:25:55 +0000130
131 // The following packages contain classes from other modules on the
132 // bootclasspath. That means that the hidden API flags for this module
133 // has to explicitly list every single class this module provides in
134 // that package to differentiate them from the classes provided by other
135 // modules. That can include private classes that are not part of the
136 // API.
137 split_packages: [
138 "android.media",
139 ],
140
141 // The following packages and all their subpackages currently only
142 // contain classes from this bootclasspath_fragment. Listing a package
143 // here won't prevent other bootclasspath modules from adding classes in
144 // any of those packages but it will prevent them from adding those
145 // classes into an API surface, e.g. public, system, etc.. Doing so will
146 // result in a build failure due to inconsistent flags.
147 package_prefixes: [
148 "android.media.internal",
149 ],
Paul Duffin44517762021-06-29 01:58:33 +0100150 },
satayev26a0e1a2021-05-12 15:50:11 +0100151}
152
satayev95eb9de2021-05-18 14:33:22 +0100153// Encapsulate the contributions made by the com.android.media to the systemserverclasspath.
154systemserverclasspath_fragment {
155 name: "com.android.media-systemserverclasspath-fragment",
156 contents: ["service-media-s"],
157 apex_available: ["com.android.media"],
158}
159
Jeff Hamilton0bce0c62019-03-06 22:23:40 -0500160filegroup {
161 name: "com.android.media-androidManifest",
162 srcs: ["AndroidManifest-media.xml"],
163}
164
165filegroup {
166 name: "com.android.media.swcodec-androidManifest",
167 srcs: ["AndroidManifest-swcodec.xml"],
168}
169
Dongwon Kang28052d52019-02-14 21:49:08 -0800170apex_defaults {
171 name: "com.android.media.swcodec-defaults",
Chong Zhang9bda4522019-02-27 13:43:50 -0800172 binaries: [
173 "mediaswcodec",
174 ],
Chong Zhang9206c3a2020-12-15 10:00:00 -0800175 native_shared_libs: [
Wonsik Kima5a1ad12021-02-19 12:09:38 -0800176 "libcodec2_hidl@1.0",
177 "libcodec2_hidl@1.1",
Sungtak Lee8577dab2021-03-12 02:25:50 -0800178 "libcodec2_hidl@1.2",
Chong Zhang9206c3a2020-12-15 10:00:00 -0800179 "libstagefright_foundation",
180 ],
Chong Zhang9bda4522019-02-27 13:43:50 -0800181 prebuilts: [
182 "com.android.media.swcodec-mediaswcodec.rc",
Ray Essick8cd6d142022-03-25 12:01:29 -0700183 "com.android.media.swcodec-mediaswcodec.32rc",
Chong Zhang9bda4522019-02-27 13:43:50 -0800184 "com.android.media.swcodec-ld.config.txt",
185 "mediaswcodec.policy",
Ray Essick44574862020-02-13 12:39:14 -0800186 "code_coverage.policy",
187 "crash_dump.policy",
Lajos Molnar882d2382019-04-08 17:47:33 -0700188 "mediaswcodec.xml",
Chong Zhang0b83feb2018-12-20 17:44:13 -0800189 ],
Chong Zhang0b83feb2018-12-20 17:44:13 -0800190 key: "com.android.media.swcodec.key",
Jiyong Park77057912019-02-11 12:30:20 +0900191 certificate: ":com.android.media.swcodec.certificate",
Jeff Hamilton0bce0c62019-03-06 22:23:40 -0500192
193 // Use a custom AndroidManifest.xml used for API targeting.
194 androidManifest: ":com.android.media.swcodec-androidManifest",
Jooyung Han97d7b652020-03-12 18:22:20 +0900195
Nada Hussein2ec05472022-09-28 14:07:03 +0000196 // IMPORTANT: q-launched-dcla-enabled-apex-module enables the build system to make
197 // sure the package compatible to Android 10 in two ways(if flag APEX_BUILD_FOR_PRE_S_DEVICES=1
198 // is set):
Jooyung Han97d7b652020-03-12 18:22:20 +0900199 // - build the APEX package compatible to Android 10
200 // so that the package can be installed.
201 // - build artifacts (lib/javalib/bin) against Android 10 SDK
202 // so that the artifacts can run.
Nada Hussein2ec05472022-09-28 14:07:03 +0000203 // If the flag is not set, the package is built to be compatible with Android 12.
204 defaults: ["q-launched-dcla-enabled-apex-module"],
Nikita Ioffe92353282021-02-04 01:20:01 +0000205 // Indicates that pre-installed version of this apex can be compressed.
206 // Whether it actually will be compressed is controlled on per-device basis.
207 compressible: true,
Chong Zhang0b83feb2018-12-20 17:44:13 -0800208}
209
Ray Essick8cd6d142022-03-25 12:01:29 -0700210// install as mediatranscoding.* and mediaswcodec.* instead of init.*
211// so we are ready for day we have more than 1 *rc file within the apex.
212
Chong Zhang9bda4522019-02-27 13:43:50 -0800213prebuilt_etc {
Chong Zhanga2e3a042020-10-26 11:58:11 -0700214 name: "com.android.media-mediatranscoding.rc",
215 src: "mediatranscoding.rc",
Ray Essick8cd6d142022-03-25 12:01:29 -0700216 filename: "mediatranscoding.rc",
217 installable: false,
218}
219
220prebuilt_etc {
221 name: "com.android.media-mediatranscoding.32rc",
222 src: "mediatranscoding.32rc",
223 filename: "mediatranscoding.32rc",
Chong Zhanga2e3a042020-10-26 11:58:11 -0700224 installable: false,
225}
226
227prebuilt_etc {
Chong Zhang9bda4522019-02-27 13:43:50 -0800228 name: "com.android.media.swcodec-mediaswcodec.rc",
229 src: "mediaswcodec.rc",
Ray Essick8cd6d142022-03-25 12:01:29 -0700230 filename: "mediaswcodec.rc",
231 installable: false,
232}
233
234prebuilt_etc {
235 name: "com.android.media.swcodec-mediaswcodec.32rc",
236 src: "mediaswcodec.32rc",
237 filename: "mediaswcodec.32rc",
Chong Zhang9bda4522019-02-27 13:43:50 -0800238 installable: false,
239}
240
241prebuilt_etc {
242 name: "com.android.media.swcodec-ld.config.txt",
243 src: "ld.config.txt",
244 filename: "ld.config.txt",
245 installable: false,
246}
247
Dongwon Kang28052d52019-02-14 21:49:08 -0800248apex {
249 name: "com.android.media.swcodec",
250 manifest: "manifest_codec.json",
251 defaults: ["com.android.media.swcodec-defaults"],
252}
253
Dongwon Kangb188ad82018-11-09 16:05:43 -0800254apex_key {
Dongwon Kang1d3b2e72018-11-13 13:58:38 -0800255 name: "com.android.media.key",
Jiyong Park7733ba62018-11-22 16:28:07 +0900256 public_key: "com.android.media.avbpubkey",
257 private_key: "com.android.media.pem",
Dongwon Kangb188ad82018-11-09 16:05:43 -0800258}
Chong Zhang0b83feb2018-12-20 17:44:13 -0800259
260apex_key {
261 name: "com.android.media.swcodec.key",
262 public_key: "com.android.media.swcodec.avbpubkey",
263 private_key: "com.android.media.swcodec.pem",
264}
Jiyong Park3ef4f712019-02-11 11:00:31 +0900265
266android_app_certificate {
267 name: "com.android.media.certificate",
268 certificate: "com.android.media",
269}
Jiyong Park77057912019-02-11 12:30:20 +0900270
271android_app_certificate {
272 name: "com.android.media.swcodec.certificate",
273 certificate: "com.android.media.swcodec",
274}