Add lazy service target for drm HAL
Test: Run gts on Pixel 1/2/3, marlin_svelte, and walleye_svelte Bug: 112386116 Change-Id: I5d86e3158794ebae967efb009a0cef8cd140ccb7
This commit is contained in:
parent
a885b5d982
commit
724a9fc643
6 changed files with 109 additions and 36 deletions
|
@ -19,39 +19,23 @@
|
|||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
include $(LOCAL_PATH)/common_default_service.mk
|
||||
LOCAL_MODULE := android.hardware.drm@1.0-service
|
||||
LOCAL_INIT_RC := android.hardware.drm@1.0-service.rc
|
||||
LOCAL_PROPRIETARY_MODULE := true
|
||||
LOCAL_MODULE_RELATIVE_PATH := hw
|
||||
LOCAL_SRC_FILES := \
|
||||
service.cpp \
|
||||
LOCAL_SRC_FILES := service.cpp
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := \
|
||||
android.hardware.drm@1.0 \
|
||||
android.hidl.memory@1.0 \
|
||||
libhidlbase \
|
||||
libhidltransport \
|
||||
libhardware \
|
||||
liblog \
|
||||
libutils \
|
||||
libbinder \
|
||||
include $(BUILD_EXECUTABLE)
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
android.hardware.drm@1.0-helper \
|
||||
############# Build legacy drm lazy service ############
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
hardware/interfaces/drm
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_HEADER_LIBRARIES := \
|
||||
media_plugin_headers
|
||||
|
||||
# TODO(b/18948909) Some legacy DRM plugins only support 32-bit. They need to be
|
||||
# migrated to 64-bit. Once all of a device's legacy DRM plugins support 64-bit,
|
||||
# that device can turn on TARGET_ENABLE_MEDIADRM_64 to build this service as
|
||||
# 64-bit.
|
||||
ifneq ($(TARGET_ENABLE_MEDIADRM_64), true)
|
||||
LOCAL_32_BIT_ONLY := true
|
||||
endif
|
||||
include $(LOCAL_PATH)/common_default_service.mk
|
||||
LOCAL_MODULE := android.hardware.drm@1.0-service-lazy
|
||||
LOCAL_OVERRIDES_MODULES := android.hardware.drm@1.0-service
|
||||
LOCAL_INIT_RC := android.hardware.drm@1.0-service-lazy.rc
|
||||
LOCAL_SRC_FILES := serviceLazy.cpp
|
||||
|
||||
include $(BUILD_EXECUTABLE)
|
||||
|
||||
|
|
10
drm/1.0/default/android.hardware.drm@1.0-service-lazy.rc
Normal file
10
drm/1.0/default/android.hardware.drm@1.0-service-lazy.rc
Normal file
|
@ -0,0 +1,10 @@
|
|||
service vendor.drm-hal-1-0 /vendor/bin/hw/android.hardware.drm@1.0-service-lazy
|
||||
interface android.hardware.drm@1.0::ICryptoFactory default
|
||||
interface android.hardware.drm@1.0::IDrmFactory default
|
||||
oneshot
|
||||
disabled
|
||||
class hal
|
||||
user media
|
||||
group mediadrm drmrpc
|
||||
ioprio rt 4
|
||||
writepid /dev/cpuset/foreground/tasks
|
|
@ -1,4 +1,6 @@
|
|||
service vendor.drm-hal-1-0 /vendor/bin/hw/android.hardware.drm@1.0-service
|
||||
interface android.hardware.drm@1.0::ICryptoFactory default
|
||||
interface android.hardware.drm@1.0::IDrmFactory default
|
||||
class hal
|
||||
user media
|
||||
group mediadrm drmrpc
|
||||
|
|
45
drm/1.0/default/common_default_service.mk
Normal file
45
drm/1.0/default/common_default_service.mk
Normal file
|
@ -0,0 +1,45 @@
|
|||
#
|
||||
# Copyright (C) 2019 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.
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_PROPRIETARY_MODULE := true
|
||||
LOCAL_MODULE_RELATIVE_PATH := hw
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := \
|
||||
android.hardware.drm@1.0 \
|
||||
android.hidl.memory@1.0 \
|
||||
libhidlbase \
|
||||
libhidltransport \
|
||||
libhardware \
|
||||
liblog \
|
||||
libutils \
|
||||
libbinder \
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
android.hardware.drm@1.0-helper \
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
hardware/interfaces/drm
|
||||
|
||||
LOCAL_HEADER_LIBRARIES := \
|
||||
media_plugin_headers
|
||||
|
||||
# TODO(b/18948909) Some legacy DRM plugins only support 32-bit. They need to be
|
||||
# migrated to 64-bit. Once all of a device's legacy DRM plugins support 64-bit,
|
||||
# that device can turn on TARGET_ENABLE_MEDIADRM_64 to build this service as
|
||||
# 64-bit.
|
||||
ifneq ($(TARGET_ENABLE_MEDIADRM_64), true)
|
||||
LOCAL_32_BIT_ONLY := true
|
||||
endif
|
|
@ -13,7 +13,6 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#define LOG_TAG "android.hardware.drm@1.0-service"
|
||||
|
||||
#include <1.0/default/CryptoFactory.h>
|
||||
#include <1.0/default/DrmFactory.h>
|
||||
|
@ -31,15 +30,8 @@ using android::hardware::drm::V1_0::ICryptoFactory;
|
|||
using android::hardware::drm::V1_0::IDrmFactory;
|
||||
|
||||
int main() {
|
||||
ALOGD("android.hardware.drm@1.0-service starting...");
|
||||
|
||||
// The DRM HAL may communicate to other vendor components via
|
||||
// /dev/vndbinder
|
||||
android::ProcessState::initWithDriver("/dev/vndbinder");
|
||||
|
||||
configureRpcThreadpool(8, true /* callerWillJoin */);
|
||||
android::status_t status =
|
||||
registerPassthroughServiceImplementation<IDrmFactory>();
|
||||
android::status_t status = registerPassthroughServiceImplementation<IDrmFactory>();
|
||||
LOG_ALWAYS_FATAL_IF(
|
||||
status != android::OK,
|
||||
"Error while registering drm service: %d", status);
|
||||
|
|
40
drm/1.0/default/serviceLazy.cpp
Normal file
40
drm/1.0/default/serviceLazy.cpp
Normal file
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* Copyright 2019 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.
|
||||
*/
|
||||
|
||||
#include <1.0/default/CryptoFactory.h>
|
||||
#include <1.0/default/DrmFactory.h>
|
||||
|
||||
#include <hidl/HidlTransportSupport.h>
|
||||
#include <hidl/LegacySupport.h>
|
||||
|
||||
#include <binder/ProcessState.h>
|
||||
|
||||
using android::hardware::configureRpcThreadpool;
|
||||
using android::hardware::joinRpcThreadpool;
|
||||
using android::hardware::registerLazyPassthroughServiceImplementation;
|
||||
|
||||
using android::hardware::drm::V1_0::ICryptoFactory;
|
||||
using android::hardware::drm::V1_0::IDrmFactory;
|
||||
|
||||
int main() {
|
||||
configureRpcThreadpool(8, true /* callerWillJoin */);
|
||||
android::status_t status = registerLazyPassthroughServiceImplementation<IDrmFactory>();
|
||||
LOG_ALWAYS_FATAL_IF(status != android::OK, "Error while registering drm service: %d", status);
|
||||
status = registerLazyPassthroughServiceImplementation<ICryptoFactory>();
|
||||
LOG_ALWAYS_FATAL_IF(status != android::OK, "Error while registering crypto service: %d",
|
||||
status);
|
||||
joinRpcThreadpool();
|
||||
}
|
Loading…
Reference in a new issue