xref: /aosp_15_r20/system/hwservicemanager/Android.bp (revision ee3b7b6295061e544d3520b965ea91a90424af41)
1*ee3b7b62SAndroid Build Coastguard Worker// Copyright (C) 2016 The Android Open Source Project
2*ee3b7b62SAndroid Build Coastguard Worker//
3*ee3b7b62SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*ee3b7b62SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*ee3b7b62SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*ee3b7b62SAndroid Build Coastguard Worker//
7*ee3b7b62SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*ee3b7b62SAndroid Build Coastguard Worker//
9*ee3b7b62SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*ee3b7b62SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*ee3b7b62SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*ee3b7b62SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*ee3b7b62SAndroid Build Coastguard Worker// limitations under the License.
14*ee3b7b62SAndroid Build Coastguard Worker
15*ee3b7b62SAndroid Build Coastguard Workerpackage {
16*ee3b7b62SAndroid Build Coastguard Worker    default_team: "trendy_team_android_hardware_backed_security",
17*ee3b7b62SAndroid Build Coastguard Worker    default_applicable_licenses: ["system_hwservicemanager_license"],
18*ee3b7b62SAndroid Build Coastguard Worker}
19*ee3b7b62SAndroid Build Coastguard Worker
20*ee3b7b62SAndroid Build Coastguard Worker// Added automatically by a large-scale-change
21*ee3b7b62SAndroid Build Coastguard Worker// http://go/android-license-faq
22*ee3b7b62SAndroid Build Coastguard Workerlicense {
23*ee3b7b62SAndroid Build Coastguard Worker    name: "system_hwservicemanager_license",
24*ee3b7b62SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
25*ee3b7b62SAndroid Build Coastguard Worker    license_kinds: [
26*ee3b7b62SAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
27*ee3b7b62SAndroid Build Coastguard Worker    ],
28*ee3b7b62SAndroid Build Coastguard Worker    license_text: [
29*ee3b7b62SAndroid Build Coastguard Worker        "NOTICE",
30*ee3b7b62SAndroid Build Coastguard Worker    ],
31*ee3b7b62SAndroid Build Coastguard Worker}
32*ee3b7b62SAndroid Build Coastguard Worker
33*ee3b7b62SAndroid Build Coastguard Workercc_defaults {
34*ee3b7b62SAndroid Build Coastguard Worker    name: "hwservicemanager_defaults",
35*ee3b7b62SAndroid Build Coastguard Worker    cflags: [
36*ee3b7b62SAndroid Build Coastguard Worker        "-Wall",
37*ee3b7b62SAndroid Build Coastguard Worker        "-Wextra",
38*ee3b7b62SAndroid Build Coastguard Worker        "-Werror",
39*ee3b7b62SAndroid Build Coastguard Worker    ],
40*ee3b7b62SAndroid Build Coastguard Worker    shared_libs: [
41*ee3b7b62SAndroid Build Coastguard Worker        "libhidlbase",
42*ee3b7b62SAndroid Build Coastguard Worker        "liblog",
43*ee3b7b62SAndroid Build Coastguard Worker    ],
44*ee3b7b62SAndroid Build Coastguard Worker}
45*ee3b7b62SAndroid Build Coastguard Worker
46*ee3b7b62SAndroid Build Coastguard Workercc_defaults {
47*ee3b7b62SAndroid Build Coastguard Worker    name: "libhwservicemanager_shared_libs",
48*ee3b7b62SAndroid Build Coastguard Worker    shared_libs: [
49*ee3b7b62SAndroid Build Coastguard Worker        "libbase",
50*ee3b7b62SAndroid Build Coastguard Worker        "libhidl-gen-utils",
51*ee3b7b62SAndroid Build Coastguard Worker        "libselinux",
52*ee3b7b62SAndroid Build Coastguard Worker        "libutils",
53*ee3b7b62SAndroid Build Coastguard Worker        "libvintf",
54*ee3b7b62SAndroid Build Coastguard Worker    ],
55*ee3b7b62SAndroid Build Coastguard Worker}
56*ee3b7b62SAndroid Build Coastguard Worker
57*ee3b7b62SAndroid Build Coastguard Workercc_library_static {
58*ee3b7b62SAndroid Build Coastguard Worker    name: "libhwservicemanager",
59*ee3b7b62SAndroid Build Coastguard Worker    host_supported: true,
60*ee3b7b62SAndroid Build Coastguard Worker    defaults: [
61*ee3b7b62SAndroid Build Coastguard Worker        "hwservicemanager_defaults",
62*ee3b7b62SAndroid Build Coastguard Worker        "libhwservicemanager_shared_libs",
63*ee3b7b62SAndroid Build Coastguard Worker    ],
64*ee3b7b62SAndroid Build Coastguard Worker    srcs: [
65*ee3b7b62SAndroid Build Coastguard Worker        "AccessControl.cpp",
66*ee3b7b62SAndroid Build Coastguard Worker        "HidlService.cpp",
67*ee3b7b62SAndroid Build Coastguard Worker        "ServiceManager.cpp",
68*ee3b7b62SAndroid Build Coastguard Worker        "Vintf.cpp",
69*ee3b7b62SAndroid Build Coastguard Worker    ],
70*ee3b7b62SAndroid Build Coastguard Worker}
71*ee3b7b62SAndroid Build Coastguard Worker
72*ee3b7b62SAndroid Build Coastguard Workercc_defaults {
73*ee3b7b62SAndroid Build Coastguard Worker    name: "libtokenmanager_shared_libs",
74*ee3b7b62SAndroid Build Coastguard Worker    shared_libs: [
75*ee3b7b62SAndroid Build Coastguard Worker        "[email protected]",
76*ee3b7b62SAndroid Build Coastguard Worker        "libcrypto",
77*ee3b7b62SAndroid Build Coastguard Worker    ],
78*ee3b7b62SAndroid Build Coastguard Worker}
79*ee3b7b62SAndroid Build Coastguard Worker
80*ee3b7b62SAndroid Build Coastguard Workercc_library_static {
81*ee3b7b62SAndroid Build Coastguard Worker    name: "libtokenmanager",
82*ee3b7b62SAndroid Build Coastguard Worker    defaults: [
83*ee3b7b62SAndroid Build Coastguard Worker        "hwservicemanager_defaults",
84*ee3b7b62SAndroid Build Coastguard Worker        "libtokenmanager_shared_libs",
85*ee3b7b62SAndroid Build Coastguard Worker    ],
86*ee3b7b62SAndroid Build Coastguard Worker    srcs: [
87*ee3b7b62SAndroid Build Coastguard Worker        "TokenManager.cpp",
88*ee3b7b62SAndroid Build Coastguard Worker    ],
89*ee3b7b62SAndroid Build Coastguard Worker}
90*ee3b7b62SAndroid Build Coastguard Worker
91*ee3b7b62SAndroid Build Coastguard Workercc_binary {
92*ee3b7b62SAndroid Build Coastguard Worker    name: "hwservicemanager",
93*ee3b7b62SAndroid Build Coastguard Worker    defaults: [
94*ee3b7b62SAndroid Build Coastguard Worker        "hwservicemanager_defaults",
95*ee3b7b62SAndroid Build Coastguard Worker        "libhwservicemanager_shared_libs",
96*ee3b7b62SAndroid Build Coastguard Worker        "libtokenmanager_shared_libs",
97*ee3b7b62SAndroid Build Coastguard Worker    ],
98*ee3b7b62SAndroid Build Coastguard Worker    init_rc: [
99*ee3b7b62SAndroid Build Coastguard Worker        "hwservicemanager.rc",
100*ee3b7b62SAndroid Build Coastguard Worker    ],
101*ee3b7b62SAndroid Build Coastguard Worker    srcs: [
102*ee3b7b62SAndroid Build Coastguard Worker        "service.cpp",
103*ee3b7b62SAndroid Build Coastguard Worker    ],
104*ee3b7b62SAndroid Build Coastguard Worker    shared_libs: [
105*ee3b7b62SAndroid Build Coastguard Worker        "libcutils",
106*ee3b7b62SAndroid Build Coastguard Worker    ],
107*ee3b7b62SAndroid Build Coastguard Worker    static_libs: [
108*ee3b7b62SAndroid Build Coastguard Worker        "libhwservicemanager",
109*ee3b7b62SAndroid Build Coastguard Worker        "libtokenmanager",
110*ee3b7b62SAndroid Build Coastguard Worker    ],
111*ee3b7b62SAndroid Build Coastguard Worker    bootstrap: true,
112*ee3b7b62SAndroid Build Coastguard Worker    system_ext_specific: true,
113*ee3b7b62SAndroid Build Coastguard Worker}
114*ee3b7b62SAndroid Build Coastguard Worker
115*ee3b7b62SAndroid Build Coastguard Worker// Create symlink /system/bin/hwservicemanager -> /system/system_ext/bin/hwservicemanager
116*ee3b7b62SAndroid Build Coastguard Worker// Old vendor libraries (like libhidlbase) may require /system/bin/hwservicemanager to be present
117*ee3b7b62SAndroid Build Coastguard Workerinstall_symlink {
118*ee3b7b62SAndroid Build Coastguard Worker    name: "hwservicemanager_compat_symlink_module",
119*ee3b7b62SAndroid Build Coastguard Worker    symlink_target: "/system/system_ext/bin/hwservicemanager",
120*ee3b7b62SAndroid Build Coastguard Worker    // installed_location is relative to /system because that's the default partition for soong
121*ee3b7b62SAndroid Build Coastguard Worker    // modules, unless we add something like `system_ext_specific: true` like in hwservicemanager.
122*ee3b7b62SAndroid Build Coastguard Worker    installed_location: "bin/hwservicemanager",
123*ee3b7b62SAndroid Build Coastguard Worker}
124*ee3b7b62SAndroid Build Coastguard Worker
125*ee3b7b62SAndroid Build Coastguard Workercc_test {
126*ee3b7b62SAndroid Build Coastguard Worker    name: "hwservicemanager_test",
127*ee3b7b62SAndroid Build Coastguard Worker    host_supported: true,
128*ee3b7b62SAndroid Build Coastguard Worker    defaults: [
129*ee3b7b62SAndroid Build Coastguard Worker        "hwservicemanager_defaults",
130*ee3b7b62SAndroid Build Coastguard Worker        "libhwservicemanager_shared_libs",
131*ee3b7b62SAndroid Build Coastguard Worker    ],
132*ee3b7b62SAndroid Build Coastguard Worker    static_libs: [
133*ee3b7b62SAndroid Build Coastguard Worker        "libgmock",
134*ee3b7b62SAndroid Build Coastguard Worker        "libhwservicemanager",
135*ee3b7b62SAndroid Build Coastguard Worker    ],
136*ee3b7b62SAndroid Build Coastguard Worker    srcs: [
137*ee3b7b62SAndroid Build Coastguard Worker        "test_lazy.cpp",
138*ee3b7b62SAndroid Build Coastguard Worker    ],
139*ee3b7b62SAndroid Build Coastguard Worker    test_suites: ["device-tests"],
140*ee3b7b62SAndroid Build Coastguard Worker}
141