// Copyright (C) 2016 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package { default_team: "trendy_team_android_hardware_backed_security", default_applicable_licenses: ["system_hwservicemanager_license"], } // Added automatically by a large-scale-change // http://go/android-license-faq license { name: "system_hwservicemanager_license", visibility: [":__subpackages__"], license_kinds: [ "SPDX-license-identifier-Apache-2.0", ], license_text: [ "NOTICE", ], } cc_defaults { name: "hwservicemanager_defaults", cflags: [ "-Wall", "-Wextra", "-Werror", ], shared_libs: [ "libhidlbase", "liblog", ], } cc_defaults { name: "libhwservicemanager_shared_libs", shared_libs: [ "libbase", "libhidl-gen-utils", "libselinux", "libutils", "libvintf", ], } cc_library_static { name: "libhwservicemanager", host_supported: true, defaults: [ "hwservicemanager_defaults", "libhwservicemanager_shared_libs", ], srcs: [ "AccessControl.cpp", "HidlService.cpp", "ServiceManager.cpp", "Vintf.cpp", ], } cc_defaults { name: "libtokenmanager_shared_libs", shared_libs: [ "android.hidl.token@1.0", "libcrypto", ], } cc_library_static { name: "libtokenmanager", defaults: [ "hwservicemanager_defaults", "libtokenmanager_shared_libs", ], srcs: [ "TokenManager.cpp", ], } cc_binary { name: "hwservicemanager", defaults: [ "hwservicemanager_defaults", "libhwservicemanager_shared_libs", "libtokenmanager_shared_libs", ], init_rc: [ "hwservicemanager.rc", ], srcs: [ "service.cpp", ], shared_libs: [ "libcutils", ], static_libs: [ "libhwservicemanager", "libtokenmanager", ], bootstrap: true, system_ext_specific: true, } // Create symlink /system/bin/hwservicemanager -> /system/system_ext/bin/hwservicemanager // Old vendor libraries (like libhidlbase) may require /system/bin/hwservicemanager to be present install_symlink { name: "hwservicemanager_compat_symlink_module", symlink_target: "/system/system_ext/bin/hwservicemanager", // installed_location is relative to /system because that's the default partition for soong // modules, unless we add something like `system_ext_specific: true` like in hwservicemanager. installed_location: "bin/hwservicemanager", } cc_test { name: "hwservicemanager_test", host_supported: true, defaults: [ "hwservicemanager_defaults", "libhwservicemanager_shared_libs", ], static_libs: [ "libgmock", "libhwservicemanager", ], srcs: [ "test_lazy.cpp", ], test_suites: ["device-tests"], }