xref: /aosp_15_r20/frameworks/av/apex/Android.bp (revision ec779b8e0859a360c3d303172224686826e6e0e1)
1*ec779b8eSAndroid Build Coastguard Worker// Copyright (C) 2018 The Android Open Source Project
2*ec779b8eSAndroid Build Coastguard Worker//
3*ec779b8eSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*ec779b8eSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*ec779b8eSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*ec779b8eSAndroid Build Coastguard Worker//
7*ec779b8eSAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*ec779b8eSAndroid Build Coastguard Worker//
9*ec779b8eSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*ec779b8eSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*ec779b8eSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*ec779b8eSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*ec779b8eSAndroid Build Coastguard Worker// limitations under the License.
14*ec779b8eSAndroid Build Coastguard Worker
15*ec779b8eSAndroid Build Coastguard Workerpackage {
16*ec779b8eSAndroid Build Coastguard Worker    // See: http://go/android-license-faq
17*ec779b8eSAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
18*ec779b8eSAndroid Build Coastguard Worker    // all of the 'license_kinds' from "frameworks_av_license"
19*ec779b8eSAndroid Build Coastguard Worker    // to get the below license kinds:
20*ec779b8eSAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
21*ec779b8eSAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_av_license"],
22*ec779b8eSAndroid Build Coastguard Worker}
23*ec779b8eSAndroid Build Coastguard Worker
24*ec779b8eSAndroid Build Coastguard Workerapex_defaults {
25*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media-defaults",
26*ec779b8eSAndroid Build Coastguard Worker    bootclasspath_fragments: ["com.android.media-bootclasspath-fragment"],
27*ec779b8eSAndroid Build Coastguard Worker    systemserverclasspath_fragments: ["com.android.media-systemserverclasspath-fragment"],
28*ec779b8eSAndroid Build Coastguard Worker    multilib: {
29*ec779b8eSAndroid Build Coastguard Worker        first: {
30*ec779b8eSAndroid Build Coastguard Worker            // Extractor process runs only with the primary ABI.
31*ec779b8eSAndroid Build Coastguard Worker            native_shared_libs: [
32*ec779b8eSAndroid Build Coastguard Worker                // Extractor plugins
33*ec779b8eSAndroid Build Coastguard Worker                "libaacextractor",
34*ec779b8eSAndroid Build Coastguard Worker                "libamrextractor",
35*ec779b8eSAndroid Build Coastguard Worker                "libflacextractor",
36*ec779b8eSAndroid Build Coastguard Worker                "libmidiextractor",
37*ec779b8eSAndroid Build Coastguard Worker                "libmkvextractor",
38*ec779b8eSAndroid Build Coastguard Worker                "libmp3extractor",
39*ec779b8eSAndroid Build Coastguard Worker                "libmp4extractor",
40*ec779b8eSAndroid Build Coastguard Worker                "libmpeg2extractor",
41*ec779b8eSAndroid Build Coastguard Worker                "liboggextractor",
42*ec779b8eSAndroid Build Coastguard Worker                "libwavextractor",
43*ec779b8eSAndroid Build Coastguard Worker            ],
44*ec779b8eSAndroid Build Coastguard Worker            // Transcoding service only run with primary ABI.
45*ec779b8eSAndroid Build Coastguard Worker            binaries: [
46*ec779b8eSAndroid Build Coastguard Worker                "mediatranscoding",
47*ec779b8eSAndroid Build Coastguard Worker            ],
48*ec779b8eSAndroid Build Coastguard Worker        },
49*ec779b8eSAndroid Build Coastguard Worker    },
50*ec779b8eSAndroid Build Coastguard Worker    // JNI
51*ec779b8eSAndroid Build Coastguard Worker    native_shared_libs: [
52*ec779b8eSAndroid Build Coastguard Worker        "libmediaparser-jni",
53*ec779b8eSAndroid Build Coastguard Worker        "libmediaformatshaper",
54*ec779b8eSAndroid Build Coastguard Worker    ],
55*ec779b8eSAndroid Build Coastguard Worker    compile_multilib: "both",
56*ec779b8eSAndroid Build Coastguard Worker    prebuilts: [
57*ec779b8eSAndroid Build Coastguard Worker        "code_coverage.policy",
58*ec779b8eSAndroid Build Coastguard Worker        "com.android.media-mediatranscoding.rc",
59*ec779b8eSAndroid Build Coastguard Worker        "com.android.media-mediatranscoding.32rc",
60*ec779b8eSAndroid Build Coastguard Worker        "crash_dump.policy",
61*ec779b8eSAndroid Build Coastguard Worker        "mediaextractor.policy",
62*ec779b8eSAndroid Build Coastguard Worker        "media-linker-config",
63*ec779b8eSAndroid Build Coastguard Worker    ],
64*ec779b8eSAndroid Build Coastguard Worker    key: "com.android.media.key",
65*ec779b8eSAndroid Build Coastguard Worker    certificate: ":com.android.media.certificate",
66*ec779b8eSAndroid Build Coastguard Worker
67*ec779b8eSAndroid Build Coastguard Worker    // Use a custom AndroidManifest.xml used for API targeting.
68*ec779b8eSAndroid Build Coastguard Worker    androidManifest: ":com.android.media-androidManifest",
69*ec779b8eSAndroid Build Coastguard Worker
70*ec779b8eSAndroid Build Coastguard Worker    // IMPORTANT: q-launched-dcla-enabled-apex-module enables the build system to make
71*ec779b8eSAndroid Build Coastguard Worker    // sure the package compatible to Android 10 in two ways(if flag APEX_BUILD_FOR_PRE_S_DEVICES=1
72*ec779b8eSAndroid Build Coastguard Worker    // is set):
73*ec779b8eSAndroid Build Coastguard Worker    // - build the APEX package compatible to Android 10
74*ec779b8eSAndroid Build Coastguard Worker    //   so that the package can be installed.
75*ec779b8eSAndroid Build Coastguard Worker    // - build artifacts (lib/javalib/bin) against Android 10 SDK
76*ec779b8eSAndroid Build Coastguard Worker    //   so that the artifacts can run.
77*ec779b8eSAndroid Build Coastguard Worker    // If the flag is not set, the package is built to be compatible with Android 12.
78*ec779b8eSAndroid Build Coastguard Worker    defaults: ["q-launched-dcla-enabled-apex-module"],
79*ec779b8eSAndroid Build Coastguard Worker    // Indicates that pre-installed version of this apex can be compressed.
80*ec779b8eSAndroid Build Coastguard Worker    // Whether it actually will be compressed is controlled on per-device basis.
81*ec779b8eSAndroid Build Coastguard Worker    compressible: true,
82*ec779b8eSAndroid Build Coastguard Worker}
83*ec779b8eSAndroid Build Coastguard Worker
84*ec779b8eSAndroid Build Coastguard Workerapex {
85*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media",
86*ec779b8eSAndroid Build Coastguard Worker    manifest: "manifest.json",
87*ec779b8eSAndroid Build Coastguard Worker    defaults: ["com.android.media-defaults"],
88*ec779b8eSAndroid Build Coastguard Worker    prebuilts: ["current_sdkinfo"],
89*ec779b8eSAndroid Build Coastguard Worker}
90*ec779b8eSAndroid Build Coastguard Worker
91*ec779b8eSAndroid Build Coastguard Workerlinker_config {
92*ec779b8eSAndroid Build Coastguard Worker    name: "media-linker-config",
93*ec779b8eSAndroid Build Coastguard Worker    src: "linker.config.json",
94*ec779b8eSAndroid Build Coastguard Worker    installable: false,
95*ec779b8eSAndroid Build Coastguard Worker}
96*ec779b8eSAndroid Build Coastguard Worker
97*ec779b8eSAndroid Build Coastguard Worker// Encapsulate the contributions made by the com.android.media to the bootclasspath.
98*ec779b8eSAndroid Build Coastguard Workerbootclasspath_fragment {
99*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media-bootclasspath-fragment",
100*ec779b8eSAndroid Build Coastguard Worker    contents: ["updatable-media"],
101*ec779b8eSAndroid Build Coastguard Worker    apex_available: ["com.android.media"],
102*ec779b8eSAndroid Build Coastguard Worker
103*ec779b8eSAndroid Build Coastguard Worker    api: {
104*ec779b8eSAndroid Build Coastguard Worker        stub_libs: [
105*ec779b8eSAndroid Build Coastguard Worker            // Stubs for the APIs provided by updatable-media. This has to be
106*ec779b8eSAndroid Build Coastguard Worker            // specified explicitly because updatable-media is not a
107*ec779b8eSAndroid Build Coastguard Worker            // java_sdk_library.
108*ec779b8eSAndroid Build Coastguard Worker            "framework-media",
109*ec779b8eSAndroid Build Coastguard Worker        ],
110*ec779b8eSAndroid Build Coastguard Worker    },
111*ec779b8eSAndroid Build Coastguard Worker
112*ec779b8eSAndroid Build Coastguard Worker    // The bootclasspath_fragments that provide APIs on which this depends.
113*ec779b8eSAndroid Build Coastguard Worker    fragments: [
114*ec779b8eSAndroid Build Coastguard Worker        {
115*ec779b8eSAndroid Build Coastguard Worker            apex: "com.android.art",
116*ec779b8eSAndroid Build Coastguard Worker            module: "art-bootclasspath-fragment",
117*ec779b8eSAndroid Build Coastguard Worker        },
118*ec779b8eSAndroid Build Coastguard Worker    ],
119*ec779b8eSAndroid Build Coastguard Worker
120*ec779b8eSAndroid Build Coastguard Worker    // Additional stubs libraries that this fragment's contents use which are
121*ec779b8eSAndroid Build Coastguard Worker    // not provided by another bootclasspath_fragment.
122*ec779b8eSAndroid Build Coastguard Worker    additional_stubs: [
123*ec779b8eSAndroid Build Coastguard Worker        "android-non-updatable",
124*ec779b8eSAndroid Build Coastguard Worker    ],
125*ec779b8eSAndroid Build Coastguard Worker
126*ec779b8eSAndroid Build Coastguard Worker    // Additional hidden API flag files to override the defaults. This must only be
127*ec779b8eSAndroid Build Coastguard Worker    // modified by the Soong or platform compat team.
128*ec779b8eSAndroid Build Coastguard Worker    hidden_api: {
129*ec779b8eSAndroid Build Coastguard Worker        max_target_o_low_priority: ["hiddenapi/hiddenapi-max-target-o-low-priority.txt"],
130*ec779b8eSAndroid Build Coastguard Worker
131*ec779b8eSAndroid Build Coastguard Worker        // The following packages contain classes from other modules on the
132*ec779b8eSAndroid Build Coastguard Worker        // bootclasspath. That means that the hidden API flags for this module
133*ec779b8eSAndroid Build Coastguard Worker        // has to explicitly list every single class this module provides in
134*ec779b8eSAndroid Build Coastguard Worker        // that package to differentiate them from the classes provided by other
135*ec779b8eSAndroid Build Coastguard Worker        // modules. That can include private classes that are not part of the
136*ec779b8eSAndroid Build Coastguard Worker        // API.
137*ec779b8eSAndroid Build Coastguard Worker        split_packages: [
138*ec779b8eSAndroid Build Coastguard Worker            "android.media",
139*ec779b8eSAndroid Build Coastguard Worker        ],
140*ec779b8eSAndroid Build Coastguard Worker
141*ec779b8eSAndroid Build Coastguard Worker        // The following packages and all their subpackages currently only
142*ec779b8eSAndroid Build Coastguard Worker        // contain classes from this bootclasspath_fragment. Listing a package
143*ec779b8eSAndroid Build Coastguard Worker        // here won't prevent other bootclasspath modules from adding classes in
144*ec779b8eSAndroid Build Coastguard Worker        // any of those packages but it will prevent them from adding those
145*ec779b8eSAndroid Build Coastguard Worker        // classes into an API surface, e.g. public, system, etc.. Doing so will
146*ec779b8eSAndroid Build Coastguard Worker        // result in a build failure due to inconsistent flags.
147*ec779b8eSAndroid Build Coastguard Worker        package_prefixes: [
148*ec779b8eSAndroid Build Coastguard Worker            "android.media.internal",
149*ec779b8eSAndroid Build Coastguard Worker        ],
150*ec779b8eSAndroid Build Coastguard Worker    },
151*ec779b8eSAndroid Build Coastguard Worker}
152*ec779b8eSAndroid Build Coastguard Worker
153*ec779b8eSAndroid Build Coastguard Worker// Encapsulate the contributions made by the com.android.media to the systemserverclasspath.
154*ec779b8eSAndroid Build Coastguard Workersystemserverclasspath_fragment {
155*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media-systemserverclasspath-fragment",
156*ec779b8eSAndroid Build Coastguard Worker    contents: ["service-media-s"],
157*ec779b8eSAndroid Build Coastguard Worker    apex_available: ["com.android.media"],
158*ec779b8eSAndroid Build Coastguard Worker}
159*ec779b8eSAndroid Build Coastguard Worker
160*ec779b8eSAndroid Build Coastguard Workerfilegroup {
161*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media-androidManifest",
162*ec779b8eSAndroid Build Coastguard Worker    srcs: ["AndroidManifest-media.xml"],
163*ec779b8eSAndroid Build Coastguard Worker}
164*ec779b8eSAndroid Build Coastguard Worker
165*ec779b8eSAndroid Build Coastguard Workerfilegroup {
166*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media.swcodec-androidManifest",
167*ec779b8eSAndroid Build Coastguard Worker    srcs: ["AndroidManifest-swcodec.xml"],
168*ec779b8eSAndroid Build Coastguard Worker}
169*ec779b8eSAndroid Build Coastguard Worker
170*ec779b8eSAndroid Build Coastguard Workerapex_defaults {
171*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media.swcodec-defaults",
172*ec779b8eSAndroid Build Coastguard Worker    binaries: [
173*ec779b8eSAndroid Build Coastguard Worker        "mediaswcodec",
174*ec779b8eSAndroid Build Coastguard Worker    ],
175*ec779b8eSAndroid Build Coastguard Worker    native_shared_libs: [
176*ec779b8eSAndroid Build Coastguard Worker        "libapexcodecs",
177*ec779b8eSAndroid Build Coastguard Worker        "[email protected]",
178*ec779b8eSAndroid Build Coastguard Worker        "[email protected]",
179*ec779b8eSAndroid Build Coastguard Worker        "[email protected]",
180*ec779b8eSAndroid Build Coastguard Worker        "libstagefright_foundation",
181*ec779b8eSAndroid Build Coastguard Worker    ],
182*ec779b8eSAndroid Build Coastguard Worker    prebuilts: [
183*ec779b8eSAndroid Build Coastguard Worker        "com.android.media.swcodec-mediaswcodec.rc",
184*ec779b8eSAndroid Build Coastguard Worker        "com.android.media.swcodec-mediaswcodec.32rc",
185*ec779b8eSAndroid Build Coastguard Worker        "com.android.media.swcodec-ld.config.txt",
186*ec779b8eSAndroid Build Coastguard Worker        "mediaswcodec.policy",
187*ec779b8eSAndroid Build Coastguard Worker        "code_coverage.policy",
188*ec779b8eSAndroid Build Coastguard Worker        "crash_dump.policy",
189*ec779b8eSAndroid Build Coastguard Worker        "mediaswcodec.xml",
190*ec779b8eSAndroid Build Coastguard Worker    ],
191*ec779b8eSAndroid Build Coastguard Worker    key: "com.android.media.swcodec.key",
192*ec779b8eSAndroid Build Coastguard Worker    certificate: ":com.android.media.swcodec.certificate",
193*ec779b8eSAndroid Build Coastguard Worker
194*ec779b8eSAndroid Build Coastguard Worker    // Use a custom AndroidManifest.xml used for API targeting.
195*ec779b8eSAndroid Build Coastguard Worker    androidManifest: ":com.android.media.swcodec-androidManifest",
196*ec779b8eSAndroid Build Coastguard Worker
197*ec779b8eSAndroid Build Coastguard Worker    // IMPORTANT: q-launched-dcla-enabled-apex-module enables the build system to make
198*ec779b8eSAndroid Build Coastguard Worker    // sure the package compatible to Android 10 in two ways(if flag APEX_BUILD_FOR_PRE_S_DEVICES=1
199*ec779b8eSAndroid Build Coastguard Worker    // is set):
200*ec779b8eSAndroid Build Coastguard Worker    // - build the APEX package compatible to Android 10
201*ec779b8eSAndroid Build Coastguard Worker    //   so that the package can be installed.
202*ec779b8eSAndroid Build Coastguard Worker    // - build artifacts (lib/javalib/bin) against Android 10 SDK
203*ec779b8eSAndroid Build Coastguard Worker    //   so that the artifacts can run.
204*ec779b8eSAndroid Build Coastguard Worker    // If the flag is not set, the package is built to be compatible with Android 12.
205*ec779b8eSAndroid Build Coastguard Worker    defaults: ["q-launched-dcla-enabled-apex-module"],
206*ec779b8eSAndroid Build Coastguard Worker    // Indicates that pre-installed version of this apex can be compressed.
207*ec779b8eSAndroid Build Coastguard Worker    // Whether it actually will be compressed is controlled on per-device basis.
208*ec779b8eSAndroid Build Coastguard Worker    compressible: true,
209*ec779b8eSAndroid Build Coastguard Worker}
210*ec779b8eSAndroid Build Coastguard Worker
211*ec779b8eSAndroid Build Coastguard Worker// install as mediatranscoding.* and mediaswcodec.* instead of init.*
212*ec779b8eSAndroid Build Coastguard Worker// so we are ready for day we have more than 1 *rc file within the apex.
213*ec779b8eSAndroid Build Coastguard Worker
214*ec779b8eSAndroid Build Coastguard Workerprebuilt_etc {
215*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media-mediatranscoding.rc",
216*ec779b8eSAndroid Build Coastguard Worker    src: "mediatranscoding.rc",
217*ec779b8eSAndroid Build Coastguard Worker    filename: "mediatranscoding.rc",
218*ec779b8eSAndroid Build Coastguard Worker    installable: false,
219*ec779b8eSAndroid Build Coastguard Worker}
220*ec779b8eSAndroid Build Coastguard Worker
221*ec779b8eSAndroid Build Coastguard Workerprebuilt_etc {
222*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media-mediatranscoding.32rc",
223*ec779b8eSAndroid Build Coastguard Worker    src: "mediatranscoding.32rc",
224*ec779b8eSAndroid Build Coastguard Worker    filename: "mediatranscoding.32rc",
225*ec779b8eSAndroid Build Coastguard Worker    installable: false,
226*ec779b8eSAndroid Build Coastguard Worker}
227*ec779b8eSAndroid Build Coastguard Worker
228*ec779b8eSAndroid Build Coastguard Workerprebuilt_etc {
229*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media.swcodec-mediaswcodec.rc",
230*ec779b8eSAndroid Build Coastguard Worker    src: "mediaswcodec.rc",
231*ec779b8eSAndroid Build Coastguard Worker    filename: "mediaswcodec.rc",
232*ec779b8eSAndroid Build Coastguard Worker    installable: false,
233*ec779b8eSAndroid Build Coastguard Worker}
234*ec779b8eSAndroid Build Coastguard Worker
235*ec779b8eSAndroid Build Coastguard Workerprebuilt_etc {
236*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media.swcodec-mediaswcodec.32rc",
237*ec779b8eSAndroid Build Coastguard Worker    src: "mediaswcodec.32rc",
238*ec779b8eSAndroid Build Coastguard Worker    filename: "mediaswcodec.32rc",
239*ec779b8eSAndroid Build Coastguard Worker    installable: false,
240*ec779b8eSAndroid Build Coastguard Worker}
241*ec779b8eSAndroid Build Coastguard Worker
242*ec779b8eSAndroid Build Coastguard Workerprebuilt_etc {
243*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media.swcodec-ld.config.txt",
244*ec779b8eSAndroid Build Coastguard Worker    src: "ld.config.txt",
245*ec779b8eSAndroid Build Coastguard Worker    filename: "ld.config.txt",
246*ec779b8eSAndroid Build Coastguard Worker    installable: false,
247*ec779b8eSAndroid Build Coastguard Worker}
248*ec779b8eSAndroid Build Coastguard Worker
249*ec779b8eSAndroid Build Coastguard Workerapex {
250*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media.swcodec",
251*ec779b8eSAndroid Build Coastguard Worker    manifest: "manifest_codec.json",
252*ec779b8eSAndroid Build Coastguard Worker    defaults: ["com.android.media.swcodec-defaults"],
253*ec779b8eSAndroid Build Coastguard Worker}
254*ec779b8eSAndroid Build Coastguard Worker
255*ec779b8eSAndroid Build Coastguard Workerapex_key {
256*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media.key",
257*ec779b8eSAndroid Build Coastguard Worker    public_key: "com.android.media.avbpubkey",
258*ec779b8eSAndroid Build Coastguard Worker    private_key: "com.android.media.pem",
259*ec779b8eSAndroid Build Coastguard Worker}
260*ec779b8eSAndroid Build Coastguard Worker
261*ec779b8eSAndroid Build Coastguard Workerapex_key {
262*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media.swcodec.key",
263*ec779b8eSAndroid Build Coastguard Worker    public_key: "com.android.media.swcodec.avbpubkey",
264*ec779b8eSAndroid Build Coastguard Worker    private_key: "com.android.media.swcodec.pem",
265*ec779b8eSAndroid Build Coastguard Worker}
266*ec779b8eSAndroid Build Coastguard Worker
267*ec779b8eSAndroid Build Coastguard Workerandroid_app_certificate {
268*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media.certificate",
269*ec779b8eSAndroid Build Coastguard Worker    certificate: "com.android.media",
270*ec779b8eSAndroid Build Coastguard Worker}
271*ec779b8eSAndroid Build Coastguard Worker
272*ec779b8eSAndroid Build Coastguard Workerandroid_app_certificate {
273*ec779b8eSAndroid Build Coastguard Worker    name: "com.android.media.swcodec.certificate",
274*ec779b8eSAndroid Build Coastguard Worker    certificate: "com.android.media.swcodec",
275*ec779b8eSAndroid Build Coastguard Worker}
276