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
15apex_defaults {
16    name: "com.android.media-defaults",
17    updatable: true,
18    java_libs: ["updatable-media"],
19    multilib: {
20        first: {
21            // Extractor process runs only with the primary ABI.
22            native_shared_libs: [
23                // Extractor plugins
24                "libaacextractor",
25                "libamrextractor",
26                "libflacextractor",
27                "libmidiextractor",
28                "libmkvextractor",
29                "libmp3extractor",
30                "libmp4extractor",
31                "libmpeg2extractor",
32                "liboggextractor",
33                "libwavextractor",
34            ],
35        },
36    },
37    prebuilts: [
38        "mediaextractor.policy",
39        "code_coverage.policy",
40        "crash_dump.policy",
41    ],
42    key: "com.android.media.key",
43    certificate: ":com.android.media.certificate",
44
45    // Use a custom AndroidManifest.xml used for API targeting.
46    androidManifest: ":com.android.media-androidManifest",
47
48    // IMPORTANT: For the APEX to be installed on Android 10 (API 29),
49    // min_sdk_version should be 29. This enables the build system to make
50    // sure the package compatible to Android 10 in two ways:
51    // - build the APEX package compatible to Android 10
52    //   so that the package can be installed.
53    // - build artifacts (lib/javalib/bin) against Android 10 SDK
54    //   so that the artifacts can run.
55    min_sdk_version: "29",
56}
57
58apex {
59    name: "com.android.media",
60    manifest: "manifest.json",
61    defaults: ["com.android.media-defaults"],
62}
63
64filegroup {
65    name: "com.android.media-androidManifest",
66    srcs: ["AndroidManifest-media.xml"],
67}
68
69filegroup {
70    name: "com.android.media.swcodec-androidManifest",
71    srcs: ["AndroidManifest-swcodec.xml"],
72}
73
74apex_defaults {
75    name: "com.android.media.swcodec-defaults",
76    updatable: true,
77    binaries: [
78        "mediaswcodec",
79    ],
80    prebuilts: [
81        "com.android.media.swcodec-mediaswcodec.rc",
82        "com.android.media.swcodec-ld.config.txt",
83        "mediaswcodec.policy",
84        "code_coverage.policy",
85        "crash_dump.policy",
86        "mediaswcodec.xml",
87    ],
88    use_vendor: true,
89    key: "com.android.media.swcodec.key",
90    certificate: ":com.android.media.swcodec.certificate",
91
92    // Use a custom AndroidManifest.xml used for API targeting.
93    androidManifest: ":com.android.media.swcodec-androidManifest",
94
95    // IMPORTANT: For the APEX to be installed on Android 10 (API 29),
96    // min_sdk_version should be 29. This enables the build system to make
97    // sure the package compatible to Android 10 in two ways:
98    // - build the APEX package compatible to Android 10
99    //   so that the package can be installed.
100    // - build artifacts (lib/javalib/bin) against Android 10 SDK
101    //   so that the artifacts can run.
102    min_sdk_version: "29",
103}
104
105prebuilt_etc {
106    name: "com.android.media.swcodec-mediaswcodec.rc",
107    src: "mediaswcodec.rc",
108    filename: "init.rc",
109    installable: false,
110}
111
112prebuilt_etc {
113    name: "com.android.media.swcodec-ld.config.txt",
114    src: "ld.config.txt",
115    filename: "ld.config.txt",
116    installable: false,
117}
118
119apex {
120    name: "com.android.media.swcodec",
121    manifest: "manifest_codec.json",
122    defaults: ["com.android.media.swcodec-defaults"],
123}
124
125apex_key {
126    name: "com.android.media.key",
127    public_key: "com.android.media.avbpubkey",
128    private_key: "com.android.media.pem",
129}
130
131apex_key {
132    name: "com.android.media.swcodec.key",
133    public_key: "com.android.media.swcodec.avbpubkey",
134    private_key: "com.android.media.swcodec.pem",
135}
136
137android_app_certificate {
138    name: "com.android.media.certificate",
139    certificate: "com.android.media",
140}
141
142android_app_certificate {
143    name: "com.android.media.swcodec.certificate",
144    certificate: "com.android.media.swcodec",
145}
146