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