| Dongwon Kang | b188ad8 | 2018-11-09 16:05:43 -0800 | [diff] [blame] | 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 |  | 
| Bob Badour | 56786ac | 2021-02-25 15:24:36 -0800 | [diff] [blame] | 15 | package { | 
|  | 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 Kang | 28052d5 | 2019-02-14 21:49:08 -0800 | [diff] [blame] | 24 | apex_defaults { | 
|  | 25 | name: "com.android.media-defaults", | 
| satayev | 26a0e1a | 2021-05-12 15:50:11 +0100 | [diff] [blame] | 26 | bootclasspath_fragments: ["com.android.media-bootclasspath-fragment"], | 
| satayev | 95eb9de | 2021-05-18 14:33:22 +0100 | [diff] [blame] | 27 | systemserverclasspath_fragments: ["com.android.media-systemserverclasspath-fragment"], | 
| Dongwon Kang | 8bd93d3 | 2019-05-03 14:58:08 +0000 | [diff] [blame] | 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 | ], | 
| Chong Zhang | a2e3a04 | 2020-10-26 11:58:11 -0700 | [diff] [blame] | 44 | // Transcoding service only run with primary ABI. | 
|  | 45 | binaries: [ | 
|  | 46 | "mediatranscoding", | 
|  | 47 | ], | 
| Dongwon Kang | 8bd93d3 | 2019-05-03 14:58:08 +0000 | [diff] [blame] | 48 | }, | 
|  | 49 | }, | 
| Santiago Seifert | ef893d4 | 2020-11-13 17:36:40 +0000 | [diff] [blame] | 50 | // JNI | 
| Ray Essick | 1831f7b | 2021-03-15 16:10:51 -0700 | [diff] [blame] | 51 | native_shared_libs: [ | 
|  | 52 | "libmediaparser-jni", | 
|  | 53 | "libmediaformatshaper", | 
|  | 54 | ], | 
| Santiago Seifert | ef893d4 | 2020-11-13 17:36:40 +0000 | [diff] [blame] | 55 | compile_multilib: "both", | 
| Marco Nelissen | 80e1a6d | 2019-04-30 15:52:10 -0700 | [diff] [blame] | 56 | prebuilts: [ | 
| Ray Essick | 4457486 | 2020-02-13 12:39:14 -0800 | [diff] [blame] | 57 | "code_coverage.policy", | 
| Chong Zhang | a2e3a04 | 2020-10-26 11:58:11 -0700 | [diff] [blame] | 58 | "com.android.media-mediatranscoding.rc", | 
| Ray Essick | 8cd6d14 | 2022-03-25 12:01:29 -0700 | [diff] [blame] | 59 | "com.android.media-mediatranscoding.32rc", | 
| Ray Essick | 4457486 | 2020-02-13 12:39:14 -0800 | [diff] [blame] | 60 | "crash_dump.policy", | 
| Chong Zhang | a2e3a04 | 2020-10-26 11:58:11 -0700 | [diff] [blame] | 61 | "mediaextractor.policy", | 
|  | 62 | "media-linker-config", | 
| Marco Nelissen | 80e1a6d | 2019-04-30 15:52:10 -0700 | [diff] [blame] | 63 | ], | 
| Dongwon Kang | 1d3b2e7 | 2018-11-13 13:58:38 -0800 | [diff] [blame] | 64 | key: "com.android.media.key", | 
| Jiyong Park | 3ef4f71 | 2019-02-11 11:00:31 +0900 | [diff] [blame] | 65 | certificate: ":com.android.media.certificate", | 
| Jeff Hamilton | 0bce0c6 | 2019-03-06 22:23:40 -0500 | [diff] [blame] | 66 |  | 
|  | 67 | // Use a custom AndroidManifest.xml used for API targeting. | 
|  | 68 | androidManifest: ":com.android.media-androidManifest", | 
| Jooyung Han | 97d7b65 | 2020-03-12 18:22:20 +0900 | [diff] [blame] | 69 |  | 
| Nada Hussein | 2ec0547 | 2022-09-28 14:07:03 +0000 | [diff] [blame] | 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): | 
| Jooyung Han | 97d7b65 | 2020-03-12 18:22:20 +0900 | [diff] [blame] | 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. | 
| Nada Hussein | 2ec0547 | 2022-09-28 14:07:03 +0000 | [diff] [blame] | 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"], | 
| Nikita Ioffe | 9235328 | 2021-02-04 01:20:01 +0000 | [diff] [blame] | 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, | 
| Dongwon Kang | b188ad8 | 2018-11-09 16:05:43 -0800 | [diff] [blame] | 82 | } | 
|  | 83 |  | 
| Chong Zhang | 0b83feb | 2018-12-20 17:44:13 -0800 | [diff] [blame] | 84 | apex { | 
| Dongwon Kang | 28052d5 | 2019-02-14 21:49:08 -0800 | [diff] [blame] | 85 | name: "com.android.media", | 
|  | 86 | manifest: "manifest.json", | 
|  | 87 | defaults: ["com.android.media-defaults"], | 
| Anton Hansson | 8aad6e5 | 2021-05-20 18:00:07 +0100 | [diff] [blame] | 88 | prebuilts: ["current_sdkinfo"], | 
| Kiyoung Kim | 0c5ccf4 | 2020-09-09 14:17:30 +0900 | [diff] [blame] | 89 | } | 
|  | 90 |  | 
| Kiyoung Kim | b5aa33d | 2020-10-06 17:43:40 +0900 | [diff] [blame] | 91 | linker_config { | 
| Kiyoung Kim | 0c5ccf4 | 2020-09-09 14:17:30 +0900 | [diff] [blame] | 92 | name: "media-linker-config", | 
| Kiyoung Kim | b5aa33d | 2020-10-06 17:43:40 +0900 | [diff] [blame] | 93 | src: "linker.config.json", | 
| Kiyoung Kim | 0c5ccf4 | 2020-09-09 14:17:30 +0900 | [diff] [blame] | 94 | installable: false, | 
| Dongwon Kang | 28052d5 | 2019-02-14 21:49:08 -0800 | [diff] [blame] | 95 | } | 
|  | 96 |  | 
| satayev | 26a0e1a | 2021-05-12 15:50:11 +0100 | [diff] [blame] | 97 | // Encapsulate the contributions made by the com.android.media to the bootclasspath. | 
|  | 98 | bootclasspath_fragment { | 
|  | 99 | name: "com.android.media-bootclasspath-fragment", | 
|  | 100 | contents: ["updatable-media"], | 
|  | 101 | apex_available: ["com.android.media"], | 
| Paul Duffin | 4451776 | 2021-06-29 01:58:33 +0100 | [diff] [blame] | 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"], | 
| Paul Duffin | 820590b | 2022-03-21 16:25:55 +0000 | [diff] [blame] | 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 | ], | 
| Paul Duffin | 4451776 | 2021-06-29 01:58:33 +0100 | [diff] [blame] | 150 | }, | 
| satayev | 26a0e1a | 2021-05-12 15:50:11 +0100 | [diff] [blame] | 151 | } | 
|  | 152 |  | 
| satayev | 95eb9de | 2021-05-18 14:33:22 +0100 | [diff] [blame] | 153 | // Encapsulate the contributions made by the com.android.media to the systemserverclasspath. | 
|  | 154 | systemserverclasspath_fragment { | 
|  | 155 | name: "com.android.media-systemserverclasspath-fragment", | 
|  | 156 | contents: ["service-media-s"], | 
|  | 157 | apex_available: ["com.android.media"], | 
|  | 158 | } | 
|  | 159 |  | 
| Jeff Hamilton | 0bce0c6 | 2019-03-06 22:23:40 -0500 | [diff] [blame] | 160 | filegroup { | 
|  | 161 | name: "com.android.media-androidManifest", | 
|  | 162 | srcs: ["AndroidManifest-media.xml"], | 
|  | 163 | } | 
|  | 164 |  | 
|  | 165 | filegroup { | 
|  | 166 | name: "com.android.media.swcodec-androidManifest", | 
|  | 167 | srcs: ["AndroidManifest-swcodec.xml"], | 
|  | 168 | } | 
|  | 169 |  | 
| Dongwon Kang | 28052d5 | 2019-02-14 21:49:08 -0800 | [diff] [blame] | 170 | apex_defaults { | 
|  | 171 | name: "com.android.media.swcodec-defaults", | 
| Chong Zhang | 9bda452 | 2019-02-27 13:43:50 -0800 | [diff] [blame] | 172 | binaries: [ | 
|  | 173 | "mediaswcodec", | 
|  | 174 | ], | 
| Chong Zhang | 9206c3a | 2020-12-15 10:00:00 -0800 | [diff] [blame] | 175 | native_shared_libs: [ | 
| Wonsik Kim | a5a1ad1 | 2021-02-19 12:09:38 -0800 | [diff] [blame] | 176 | "libcodec2_hidl@1.0", | 
|  | 177 | "libcodec2_hidl@1.1", | 
| Sungtak Lee | 8577dab | 2021-03-12 02:25:50 -0800 | [diff] [blame] | 178 | "libcodec2_hidl@1.2", | 
| Chong Zhang | 9206c3a | 2020-12-15 10:00:00 -0800 | [diff] [blame] | 179 | "libstagefright_foundation", | 
|  | 180 | ], | 
| Chong Zhang | 9bda452 | 2019-02-27 13:43:50 -0800 | [diff] [blame] | 181 | prebuilts: [ | 
|  | 182 | "com.android.media.swcodec-mediaswcodec.rc", | 
| Ray Essick | 8cd6d14 | 2022-03-25 12:01:29 -0700 | [diff] [blame] | 183 | "com.android.media.swcodec-mediaswcodec.32rc", | 
| Chong Zhang | 9bda452 | 2019-02-27 13:43:50 -0800 | [diff] [blame] | 184 | "com.android.media.swcodec-ld.config.txt", | 
|  | 185 | "mediaswcodec.policy", | 
| Ray Essick | 4457486 | 2020-02-13 12:39:14 -0800 | [diff] [blame] | 186 | "code_coverage.policy", | 
|  | 187 | "crash_dump.policy", | 
| Lajos Molnar | 882d238 | 2019-04-08 17:47:33 -0700 | [diff] [blame] | 188 | "mediaswcodec.xml", | 
| Chong Zhang | 0b83feb | 2018-12-20 17:44:13 -0800 | [diff] [blame] | 189 | ], | 
| Chong Zhang | 0b83feb | 2018-12-20 17:44:13 -0800 | [diff] [blame] | 190 | key: "com.android.media.swcodec.key", | 
| Jiyong Park | 7705791 | 2019-02-11 12:30:20 +0900 | [diff] [blame] | 191 | certificate: ":com.android.media.swcodec.certificate", | 
| Jeff Hamilton | 0bce0c6 | 2019-03-06 22:23:40 -0500 | [diff] [blame] | 192 |  | 
|  | 193 | // Use a custom AndroidManifest.xml used for API targeting. | 
|  | 194 | androidManifest: ":com.android.media.swcodec-androidManifest", | 
| Jooyung Han | 97d7b65 | 2020-03-12 18:22:20 +0900 | [diff] [blame] | 195 |  | 
| Nada Hussein | 2ec0547 | 2022-09-28 14:07:03 +0000 | [diff] [blame] | 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): | 
| Jooyung Han | 97d7b65 | 2020-03-12 18:22:20 +0900 | [diff] [blame] | 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. | 
| Nada Hussein | 2ec0547 | 2022-09-28 14:07:03 +0000 | [diff] [blame] | 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"], | 
| Nikita Ioffe | 9235328 | 2021-02-04 01:20:01 +0000 | [diff] [blame] | 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, | 
| Chong Zhang | 0b83feb | 2018-12-20 17:44:13 -0800 | [diff] [blame] | 208 | } | 
|  | 209 |  | 
| Ray Essick | 8cd6d14 | 2022-03-25 12:01:29 -0700 | [diff] [blame] | 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 |  | 
| Chong Zhang | 9bda452 | 2019-02-27 13:43:50 -0800 | [diff] [blame] | 213 | prebuilt_etc { | 
| Chong Zhang | a2e3a04 | 2020-10-26 11:58:11 -0700 | [diff] [blame] | 214 | name: "com.android.media-mediatranscoding.rc", | 
|  | 215 | src: "mediatranscoding.rc", | 
| Ray Essick | 8cd6d14 | 2022-03-25 12:01:29 -0700 | [diff] [blame] | 216 | filename: "mediatranscoding.rc", | 
|  | 217 | installable: false, | 
|  | 218 | } | 
|  | 219 |  | 
|  | 220 | prebuilt_etc { | 
|  | 221 | name: "com.android.media-mediatranscoding.32rc", | 
|  | 222 | src: "mediatranscoding.32rc", | 
|  | 223 | filename: "mediatranscoding.32rc", | 
| Chong Zhang | a2e3a04 | 2020-10-26 11:58:11 -0700 | [diff] [blame] | 224 | installable: false, | 
|  | 225 | } | 
|  | 226 |  | 
|  | 227 | prebuilt_etc { | 
| Chong Zhang | 9bda452 | 2019-02-27 13:43:50 -0800 | [diff] [blame] | 228 | name: "com.android.media.swcodec-mediaswcodec.rc", | 
|  | 229 | src: "mediaswcodec.rc", | 
| Ray Essick | 8cd6d14 | 2022-03-25 12:01:29 -0700 | [diff] [blame] | 230 | filename: "mediaswcodec.rc", | 
|  | 231 | installable: false, | 
|  | 232 | } | 
|  | 233 |  | 
|  | 234 | prebuilt_etc { | 
|  | 235 | name: "com.android.media.swcodec-mediaswcodec.32rc", | 
|  | 236 | src: "mediaswcodec.32rc", | 
|  | 237 | filename: "mediaswcodec.32rc", | 
| Chong Zhang | 9bda452 | 2019-02-27 13:43:50 -0800 | [diff] [blame] | 238 | installable: false, | 
|  | 239 | } | 
|  | 240 |  | 
|  | 241 | prebuilt_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 Kang | 28052d5 | 2019-02-14 21:49:08 -0800 | [diff] [blame] | 248 | apex { | 
|  | 249 | name: "com.android.media.swcodec", | 
|  | 250 | manifest: "manifest_codec.json", | 
|  | 251 | defaults: ["com.android.media.swcodec-defaults"], | 
|  | 252 | } | 
|  | 253 |  | 
| Dongwon Kang | b188ad8 | 2018-11-09 16:05:43 -0800 | [diff] [blame] | 254 | apex_key { | 
| Dongwon Kang | 1d3b2e7 | 2018-11-13 13:58:38 -0800 | [diff] [blame] | 255 | name: "com.android.media.key", | 
| Jiyong Park | 7733ba6 | 2018-11-22 16:28:07 +0900 | [diff] [blame] | 256 | public_key: "com.android.media.avbpubkey", | 
|  | 257 | private_key: "com.android.media.pem", | 
| Dongwon Kang | b188ad8 | 2018-11-09 16:05:43 -0800 | [diff] [blame] | 258 | } | 
| Chong Zhang | 0b83feb | 2018-12-20 17:44:13 -0800 | [diff] [blame] | 259 |  | 
|  | 260 | apex_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 Park | 3ef4f71 | 2019-02-11 11:00:31 +0900 | [diff] [blame] | 265 |  | 
|  | 266 | android_app_certificate { | 
|  | 267 | name: "com.android.media.certificate", | 
|  | 268 | certificate: "com.android.media", | 
|  | 269 | } | 
| Jiyong Park | 7705791 | 2019-02-11 12:30:20 +0900 | [diff] [blame] | 270 |  | 
|  | 271 | android_app_certificate { | 
|  | 272 | name: "com.android.media.swcodec.certificate", | 
|  | 273 | certificate: "com.android.media.swcodec", | 
|  | 274 | } |