1/*
2 * Copyright 2019 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17// This is an example of an empty Codec2.0 service.
18//
19// To use this, make a copy of this whole directory and rename modules
20// accordingly. The contents of "vendor.cpp" and files in the subdirectory
21// "seccomp_policy" may also need to be modified.
22
23// Binary file for the service.
24//
25// The init_rc file contains the absolute path to this binary on the device.
26// If the name of this module is modified, the content of the init_rc file has
27// to be modified accordingly.
28//
29// The seccomp_policy file name and its content can be modified, but note that
30// vendor.cpp also needs to be updated because it needs the absolute path to the
31// seccomp policy file on the device.
32package {
33    // See: http://go/android-license-faq
34    // A large-scale-change added 'default_applicable_licenses' to import
35    // all of the 'license_kinds' from "frameworks_av_license"
36    // to get the below license kinds:
37    //   SPDX-license-identifier-Apache-2.0
38    default_applicable_licenses: ["frameworks_av_license"],
39}
40
41cc_binary {
42    name: "android.hardware.media.c2@1.2-default-service",
43    vendor: true,
44    relative_install_path: "hw",
45
46    init_rc: ["android.hardware.media.c2@1.2-default-service.rc"],
47
48    defaults: ["libcodec2-hidl-defaults"],
49    srcs: [
50        "vendor.cpp",
51    ],
52
53    // minijail is used to protect against unexpected system calls.
54    shared_libs: [
55        "libavservices_minijail_vendor",
56        "libbinder",
57    ],
58    required: ["android.hardware.media.c2@1.2-default-seccomp_policy"],
59
60    // The content in manifest_media_c2_V1_1_default.xml can be included
61    // directly in the main device manifest.xml file or via vintf_fragments.
62    // (Remove the line below if the entry is already in the main manifest.)
63    vintf_fragments: ["manifest_media_c2_V1_1_default.xml"],
64
65    // Remove this line to enable this module.
66    enabled: false,
67}
68
69// seccomp policy file.
70//
71// This should be modified to suit the target device and architecture.
72//
73// Files in the "seccomp_policy" subdirectory are only provided as examples.
74// They may not work on some devices and/or architectures without modification.
75prebuilt_etc {
76    name: "android.hardware.media.c2@1.2-default-seccomp_policy",
77    vendor: true,
78    sub_dir: "seccomp_policy",
79
80    // If a specific architecture is targeted, multiple choices are not needed.
81    arch: {
82        arm: {
83            src: "seccomp_policy/android.hardware.media.c2@1.2-default-arm.policy",
84        },
85        arm64: {
86            src: "seccomp_policy/android.hardware.media.c2@1.2-default-arm64.policy",
87        },
88        x86: {
89            src: "seccomp_policy/android.hardware.media.c2@1.2-default-x86.policy",
90        },
91        x86_64: {
92            src: "seccomp_policy/android.hardware.media.c2@1.2-default-x86_64.policy",
93        },
94    },
95
96    // This may be removed.
97    required: ["crash_dump.policy"],
98}
99