1// 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 15package { 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 24apex_defaults { 25 name: "com.android.media-defaults", 26 bootclasspath_fragments: ["com.android.media-bootclasspath-fragment"], 27 systemserverclasspath_fragments: ["com.android.media-systemserverclasspath-fragment"], 28 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 ], 44 // Transcoding service only run with primary ABI. 45 binaries: [ 46 "mediatranscoding", 47 ], 48 }, 49 }, 50 // JNI 51 native_shared_libs: [ 52 "libmediaparser-jni", 53 "libmediaformatshaper", 54 ], 55 compile_multilib: "both", 56 prebuilts: [ 57 "code_coverage.policy", 58 "com.android.media-mediatranscoding.rc", 59 "com.android.media-mediatranscoding.32rc", 60 "crash_dump.policy", 61 "mediaextractor.policy", 62 "media-linker-config", 63 ], 64 key: "com.android.media.key", 65 certificate: ":com.android.media.certificate", 66 67 // Use a custom AndroidManifest.xml used for API targeting. 68 androidManifest: ":com.android.media-androidManifest", 69 70 // 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): 73 // - 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. 77 // If the flag is not set, the package is built to be compatible with Android 12. 78 defaults: ["q-launched-dcla-enabled-apex-module"], 79 // 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, 82} 83 84apex { 85 name: "com.android.media", 86 manifest: "manifest.json", 87 defaults: ["com.android.media-defaults"], 88 prebuilts: ["current_sdkinfo"], 89} 90 91linker_config { 92 name: "media-linker-config", 93 src: "linker.config.json", 94 installable: false, 95} 96 97// 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"], 102 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"], 130 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 ], 150 }, 151} 152 153// 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 160filegroup { 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 170apex_defaults { 171 name: "com.android.media.swcodec-defaults", 172 binaries: [ 173 "mediaswcodec", 174 ], 175 native_shared_libs: [ 176 "libcodec2_hidl@1.0", 177 "libcodec2_hidl@1.1", 178 "libcodec2_hidl@1.2", 179 "libstagefright_foundation", 180 ], 181 prebuilts: [ 182 "com.android.media.swcodec-mediaswcodec.rc", 183 "com.android.media.swcodec-mediaswcodec.32rc", 184 "com.android.media.swcodec-ld.config.txt", 185 "mediaswcodec.policy", 186 "code_coverage.policy", 187 "crash_dump.policy", 188 "mediaswcodec.xml", 189 ], 190 key: "com.android.media.swcodec.key", 191 certificate: ":com.android.media.swcodec.certificate", 192 193 // Use a custom AndroidManifest.xml used for API targeting. 194 androidManifest: ":com.android.media.swcodec-androidManifest", 195 196 // 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): 199 // - 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. 203 // If the flag is not set, the package is built to be compatible with Android 12. 204 defaults: ["q-launched-dcla-enabled-apex-module"], 205 // 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, 208} 209 210// 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 213prebuilt_etc { 214 name: "com.android.media-mediatranscoding.rc", 215 src: "mediatranscoding.rc", 216 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", 224 installable: false, 225} 226 227prebuilt_etc { 228 name: "com.android.media.swcodec-mediaswcodec.rc", 229 src: "mediaswcodec.rc", 230 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", 238 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 248apex { 249 name: "com.android.media.swcodec", 250 manifest: "manifest_codec.json", 251 defaults: ["com.android.media.swcodec-defaults"], 252} 253 254apex_key { 255 name: "com.android.media.key", 256 public_key: "com.android.media.avbpubkey", 257 private_key: "com.android.media.pem", 258} 259 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} 265 266android_app_certificate { 267 name: "com.android.media.certificate", 268 certificate: "com.android.media", 269} 270 271android_app_certificate { 272 name: "com.android.media.swcodec.certificate", 273 certificate: "com.android.media.swcodec", 274} 275