From 94115d216262dcaef8f33ef375ff5734216bc6a0 Mon Sep 17 00:00:00 2001 From: Alberto97 Date: Thu, 4 Jan 2018 16:10:01 +0100 Subject: [PATCH] sanders: build a 32bit version of sensorservice system_server is currently responable of starting SensorService and since it is a 64bit instance, system looks for 64bit sensorhal. Disable this mechanism and manually start SensorService with a 32bit copy of sensorservice to force the system using the 32bit HAL This is based on vache's work on potter --- device.mk | 3 ++- sensorservice/Android.mk | 23 +++++++++++++++++++++++ sensorservice/sensorservice.rc | 3 +++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 sensorservice/Android.mk create mode 100644 sensorservice/sensorservice.rc diff --git a/device.mk b/device.mk index e2afd43..7422e7e 100644 --- a/device.mk +++ b/device.mk @@ -346,7 +346,8 @@ PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/sensors/sensor_def_qcomdev.conf:system/etc/sensors/sensor_def_qcomdev.conf PRODUCT_PACKAGES += \ - android.hardware.sensors@1.0-impl + android.hardware.sensors@1.0-impl \ + sensorservice_32 # Thermal PRODUCT_COPY_FILES += \ diff --git a/sensorservice/Android.mk b/sensorservice/Android.mk new file mode 100644 index 0000000..d9e850e --- /dev/null +++ b/sensorservice/Android.mk @@ -0,0 +1,23 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_SRC_FILES:= \ + ../../../../frameworks/native/services/sensorservice/main_sensorservice.cpp + +LOCAL_SHARED_LIBRARIES := \ + libsensorservice \ + libbinder \ + libutils + +LOCAL_CFLAGS := -Wall -Werror -Wextra + +LOCAL_MODULE_TAGS := optional + +LOCAL_MODULE:= sensorservice_32 + +LOCAL_32_BIT_ONLY := true +LOCAL_INIT_RC := sensorservice.rc +LOCAL_PROPRIETARY_MODULE := true + +include $(BUILD_EXECUTABLE) diff --git a/sensorservice/sensorservice.rc b/sensorservice/sensorservice.rc new file mode 100644 index 0000000..d2749de --- /dev/null +++ b/sensorservice/sensorservice.rc @@ -0,0 +1,3 @@ +service sensorservice /vendor/bin/sensorservice_32 + class main + user root