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.
32cc_binary {
33    name: "android.hardware.media.c2@1.1-default-service",
34    vendor: true,
35    relative_install_path: "hw",
36
37    init_rc: ["android.hardware.media.c2@1.1-default-service.rc"],
38
39    defaults: ["libcodec2-hidl-defaults"],
40    srcs: [
41        "vendor.cpp",
42    ],
43
44    // minijail is used to protect against unexpected system calls.
45    shared_libs: [
46        "libavservices_minijail_vendor",
47        "libbinder",
48    ],
49    required: ["android.hardware.media.c2@1.1-default-seccomp_policy"],
50
51    // The content in manifest_media_c2_V1_1_default.xml can be included
52    // directly in the main device manifest.xml file or via vintf_fragments.
53    // (Remove the line below if the entry is already in the main manifest.)
54    vintf_fragments: ["manifest_media_c2_V1_1_default.xml"],
55}
56
57// seccomp policy file.
58//
59// This should be modified to suit the target device and architecture.
60//
61// Files in the "seccomp_policy" subdirectory are only provided as examples.
62// They may not work on some devices and/or architectures without modification.
63prebuilt_etc {
64    name: "android.hardware.media.c2@1.1-default-seccomp_policy",
65    vendor: true,
66    sub_dir: "seccomp_policy",
67
68    // If a specific architecture is targeted, multiple choices are not needed.
69    arch: {
70        arm: {
71            src: "seccomp_policy/android.hardware.media.c2@1.1-default-arm.policy",
72        },
73        arm64: {
74            src: "seccomp_policy/android.hardware.media.c2@1.1-default-arm64.policy",
75        },
76        x86: {
77            src: "seccomp_policy/android.hardware.media.c2@1.1-default-x86.policy",
78        },
79        x86_64: {
80            src: "seccomp_policy/android.hardware.media.c2@1.1-default-x86_64.policy",
81        },
82    },
83
84    // This may be removed.
85    required: ["crash_dump.policy"],
86}
87
88