mirror of
https://github.com/Evolution-X-Devices/device_xiaomi_sm6150-common
synced 2026-01-27 07:38:17 +00:00
davinci: fod: Add support for Xiaomi's touchfeature
Change-Id: I15a4a3d777d784abe04e88372647fc9abff78626 Signed-off-by: Arian <arian.kulmer@web.de>
This commit is contained in:
@@ -804,4 +804,13 @@
|
|||||||
</interface>
|
</interface>
|
||||||
<fqname>@1.0::IMotor/default</fqname>
|
<fqname>@1.0::IMotor/default</fqname>
|
||||||
</hal>
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.xiaomi.hardware.touchfeature</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ITouchFeature</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// Copyright (C) 2019 The LineageOS Project
|
// Copyright (C) 2019-2020 The LineageOS Project
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
@@ -35,6 +35,7 @@ cc_binary {
|
|||||||
"vendor.goodix.hardware.biometrics.fingerprint@2.1",
|
"vendor.goodix.hardware.biometrics.fingerprint@2.1",
|
||||||
"vendor.lineage.biometrics.fingerprint.inscreen@1.0",
|
"vendor.lineage.biometrics.fingerprint.inscreen@1.0",
|
||||||
"vendor.xiaomi.hardware.fingerprintextension@1.0",
|
"vendor.xiaomi.hardware.fingerprintextension@1.0",
|
||||||
|
"vendor.xiaomi.hardware.touchfeature@1.0",
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 The LineageOS Project
|
* Copyright (C) 2019-2020 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -33,9 +33,7 @@
|
|||||||
#define PARAM_NIT_FOD 1
|
#define PARAM_NIT_FOD 1
|
||||||
#define PARAM_NIT_NONE 0
|
#define PARAM_NIT_NONE 0
|
||||||
|
|
||||||
#define FOD_STATUS_PATH "/sys/devices/virtual/touch/tp_dev/fod_status"
|
#define TOUCH_FOD_ENABLE 10
|
||||||
#define FOD_STATUS_ON 1
|
|
||||||
#define FOD_STATUS_OFF 0
|
|
||||||
|
|
||||||
#define FOD_UI_PATH "/sys/devices/platform/soc/soc:qcom,dsi-display/fod_ui"
|
#define FOD_UI_PATH "/sys/devices/platform/soc/soc:qcom,dsi-display/fod_ui"
|
||||||
|
|
||||||
@@ -45,12 +43,6 @@
|
|||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
static void set(const std::string& path, const T& value) {
|
|
||||||
std::ofstream file(path);
|
|
||||||
file << value;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool readBool(int fd) {
|
static bool readBool(int fd) {
|
||||||
char c;
|
char c;
|
||||||
int rc;
|
int rc;
|
||||||
@@ -81,6 +73,7 @@ namespace V1_0 {
|
|||||||
namespace implementation {
|
namespace implementation {
|
||||||
|
|
||||||
FingerprintInscreen::FingerprintInscreen() {
|
FingerprintInscreen::FingerprintInscreen() {
|
||||||
|
touchFeatureService = ITouchFeature::getService();
|
||||||
xiaomiFingerprintService = IXiaomiFingerprint::getService();
|
xiaomiFingerprintService = IXiaomiFingerprint::getService();
|
||||||
|
|
||||||
std::thread([this]() {
|
std::thread([this]() {
|
||||||
@@ -138,12 +131,12 @@ Return<void> FingerprintInscreen::onRelease() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Return<void> FingerprintInscreen::onShowFODView() {
|
Return<void> FingerprintInscreen::onShowFODView() {
|
||||||
set(FOD_STATUS_PATH, FOD_STATUS_ON);
|
touchFeatureService->setTouchMode(TOUCH_FOD_ENABLE, 1);
|
||||||
return Void();
|
return Void();
|
||||||
}
|
}
|
||||||
|
|
||||||
Return<void> FingerprintInscreen::onHideFODView() {
|
Return<void> FingerprintInscreen::onHideFODView() {
|
||||||
set(FOD_STATUS_PATH, FOD_STATUS_OFF);
|
touchFeatureService->resetTouchMode(TOUCH_FOD_ENABLE);
|
||||||
return Void();
|
return Void();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 The LineageOS Project
|
* Copyright (C) 2019-2020 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include <vendor/lineage/biometrics/fingerprint/inscreen/1.0/IFingerprintInscreen.h>
|
#include <vendor/lineage/biometrics/fingerprint/inscreen/1.0/IFingerprintInscreen.h>
|
||||||
#include <vendor/xiaomi/hardware/fingerprintextension/1.0/IXiaomiFingerprint.h>
|
#include <vendor/xiaomi/hardware/fingerprintextension/1.0/IXiaomiFingerprint.h>
|
||||||
|
#include <vendor/xiaomi/hardware/touchfeature/1.0/ITouchFeature.h>
|
||||||
|
|
||||||
namespace vendor {
|
namespace vendor {
|
||||||
namespace lineage {
|
namespace lineage {
|
||||||
@@ -32,6 +33,7 @@ using ::android::sp;
|
|||||||
using ::android::hardware::Return;
|
using ::android::hardware::Return;
|
||||||
using ::android::hardware::Void;
|
using ::android::hardware::Void;
|
||||||
using ::vendor::xiaomi::hardware::fingerprintextension::V1_0::IXiaomiFingerprint;
|
using ::vendor::xiaomi::hardware::fingerprintextension::V1_0::IXiaomiFingerprint;
|
||||||
|
using ::vendor::xiaomi::hardware::touchfeature::V1_0::ITouchFeature;
|
||||||
|
|
||||||
class FingerprintInscreen : public IFingerprintInscreen {
|
class FingerprintInscreen : public IFingerprintInscreen {
|
||||||
public:
|
public:
|
||||||
@@ -53,6 +55,7 @@ public:
|
|||||||
Return<void> setCallback(const sp<IFingerprintInscreenCallback>& callback) override;
|
Return<void> setCallback(const sp<IFingerprintInscreenCallback>& callback) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
sp<ITouchFeature> touchFeatureService;
|
||||||
sp<IXiaomiFingerprint> xiaomiFingerprintService;
|
sp<IXiaomiFingerprint> xiaomiFingerprintService;
|
||||||
|
|
||||||
std::mutex mCallbackLock;
|
std::mutex mCallbackLock;
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
on boot
|
on boot
|
||||||
chown system system /sys/devices/platform/soc/soc:qcom,dsi-display/fod_ui
|
chown system system /sys/devices/platform/soc/soc:qcom,dsi-display/fod_ui
|
||||||
chown system system /sys/devices/virtual/touch/tp_dev/fod_status
|
|
||||||
|
|
||||||
chmod 0444 /sys/devices/platform/soc/soc:qcom,dsi-display/fod_ui
|
chmod 0444 /sys/devices/platform/soc/soc:qcom,dsi-display/fod_ui
|
||||||
chmod 0644 /sys/devices/virtual/touch/tp_dev/fod_status
|
|
||||||
|
|
||||||
service vendor.fingerprint-inscreen-1-0 /vendor/bin/hw/vendor.lineage.biometrics.fingerprint.inscreen@1.0-service.davinci
|
service vendor.fingerprint-inscreen-1-0 /vendor/bin/hw/vendor.lineage.biometrics.fingerprint.inscreen@1.0-service.davinci
|
||||||
interface vendor.lineage.biometrics.fingerprint.inscreen@1.0::IFingerprintInscreen default
|
interface vendor.lineage.biometrics.fingerprint.inscreen@1.0::IFingerprintInscreen default
|
||||||
|
|||||||
@@ -910,6 +910,11 @@ vendor/bin/time_daemon
|
|||||||
vendor/etc/init/init.time_daemon.rc
|
vendor/etc/init/init.time_daemon.rc
|
||||||
vendor/lib64/libtime_genoff.so
|
vendor/lib64/libtime_genoff.so
|
||||||
|
|
||||||
|
# Touchfeature
|
||||||
|
vendor/bin/hw/vendor.xiaomi.hardware.touchfeature@1.0-service
|
||||||
|
vendor/etc/init/vendor.xiaomi.hardware.touchfeature@1.0-service.rc
|
||||||
|
vendor/lib64/hw/vendor.xiaomi.hardware.touchfeature@1.0-impl.so
|
||||||
|
|
||||||
# Touchscreen firmware
|
# Touchscreen firmware
|
||||||
vendor/firmware/goodix_gt9886_limit_f10_first.tporder
|
vendor/firmware/goodix_gt9886_limit_f10_first.tporder
|
||||||
vendor/firmware/goodix_gt9886_limit_f10_second.tporder
|
vendor/firmware/goodix_gt9886_limit_f10_second.tporder
|
||||||
|
|||||||
@@ -1 +1,3 @@
|
|||||||
hal_attribute(motor)
|
hal_attribute(motor)
|
||||||
|
|
||||||
|
hal_attribute(touchfeature)
|
||||||
|
|||||||
5
sepolicy/vendor/file_contexts
vendored
5
sepolicy/vendor/file_contexts
vendored
@@ -10,13 +10,13 @@
|
|||||||
|
|
||||||
# FOD
|
# FOD
|
||||||
/sys/devices/platform/soc/soc:qcom,dsi-display/fod_ui u:object_r:sysfs_fod:s0
|
/sys/devices/platform/soc/soc:qcom,dsi-display/fod_ui u:object_r:sysfs_fod:s0
|
||||||
/sys/devices/virtual/touch/tp_dev/fod_status u:object_r:sysfs_fod:s0
|
|
||||||
|
|
||||||
# HALs
|
# HALs
|
||||||
/vendor/bin/hw/android\.hardware\.light@2\.0-service\.davinci u:object_r:hal_light_default_exec:s0
|
/vendor/bin/hw/android\.hardware\.light@2\.0-service\.davinci u:object_r:hal_light_default_exec:s0
|
||||||
/vendor/bin/hw/vendor\.lineage\.biometrics\.fingerprint\.inscreen@1\.0-service\.davinci u:object_r:hal_lineage_fod_default_exec:s0
|
/vendor/bin/hw/vendor\.lineage\.biometrics\.fingerprint\.inscreen@1\.0-service\.davinci u:object_r:hal_lineage_fod_default_exec:s0
|
||||||
/vendor/bin/hw/vendor\.lineage\.livedisplay@2\.0-service\.davinci u:object_r:hal_lineage_livedisplay_qti_exec:s0
|
/vendor/bin/hw/vendor\.lineage\.livedisplay@2\.0-service\.davinci u:object_r:hal_lineage_livedisplay_qti_exec:s0
|
||||||
/vendor/bin/hw/vendor\.xiaomi\.hardware\.motor@1\.0-service u:object_r:hal_motor_default_exec:s0
|
/vendor/bin/hw/vendor\.xiaomi\.hardware\.motor@1\.0-service u:object_r:hal_motor_default_exec:s0
|
||||||
|
/vendor/bin/hw/vendor\.xiaomi\.hardware\.touchfeature@1\.0-service u:object_r:hal_touchfeature_default_exec:s0
|
||||||
|
|
||||||
# HBM
|
# HBM
|
||||||
/sys/devices/platform/soc/soc:qcom,dsi-display/hbm u:object_r:sysfs_hbm:s0
|
/sys/devices/platform/soc/soc:qcom,dsi-display/hbm u:object_r:sysfs_hbm:s0
|
||||||
@@ -31,6 +31,9 @@
|
|||||||
# WiFi
|
# WiFi
|
||||||
/vendor/bin/nv_mac u:object_r:wcnss_service_exec:s0
|
/vendor/bin/nv_mac u:object_r:wcnss_service_exec:s0
|
||||||
|
|
||||||
|
# Touchfeature
|
||||||
|
/dev/xiaomi-touch u:object_r:touchfeature_device:s0
|
||||||
|
|
||||||
# Xiaomi thermal daemon
|
# Xiaomi thermal daemon
|
||||||
/vendor/bin/mi_thermald u:object_r:mi_thermald_exec:s0
|
/vendor/bin/mi_thermald u:object_r:mi_thermald_exec:s0
|
||||||
/data/vendor/thermal(/.*)? u:object_r:thermal_data_file:s0
|
/data/vendor/thermal(/.*)? u:object_r:thermal_data_file:s0
|
||||||
|
|||||||
2
sepolicy/vendor/hal_lineage_fod_default.te
vendored
2
sepolicy/vendor/hal_lineage_fod_default.te
vendored
@@ -5,5 +5,7 @@ allow hal_lineage_fod_default sysfs_graphics:dir r_dir_perms;
|
|||||||
allow hal_lineage_fod_default sysfs_graphics:file rw_file_perms;
|
allow hal_lineage_fod_default sysfs_graphics:file rw_file_perms;
|
||||||
|
|
||||||
allow hal_lineage_fod_default hal_fingerprint_hwservice_xiaomi:hwservice_manager find;
|
allow hal_lineage_fod_default hal_fingerprint_hwservice_xiaomi:hwservice_manager find;
|
||||||
|
allow hal_lineage_fod_default hal_touchfeature_hwservice_xiaomi:hwservice_manager find;
|
||||||
|
|
||||||
binder_call(hal_lineage_fod_default, hal_fingerprint_default)
|
binder_call(hal_lineage_fod_default, hal_fingerprint_default)
|
||||||
|
binder_call(hal_lineage_fod_default, hal_touchfeature_default)
|
||||||
|
|||||||
19
sepolicy/vendor/hal_touchfeature_default.te
vendored
Normal file
19
sepolicy/vendor/hal_touchfeature_default.te
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
type hal_touchfeature_hwservice_xiaomi, hwservice_manager_type;
|
||||||
|
type touchfeature_device, dev_type;
|
||||||
|
type vendor_touchfeature_prop, property_type;
|
||||||
|
|
||||||
|
type hal_touchfeature_default, domain;
|
||||||
|
hal_server_domain(hal_touchfeature_default, hal_touchfeature)
|
||||||
|
|
||||||
|
binder_call(hal_touchfeature_client, hal_touchfeature_server)
|
||||||
|
|
||||||
|
type hal_touchfeature_default_exec, exec_type, vendor_file_type, file_type;
|
||||||
|
init_daemon_domain(hal_touchfeature_default)
|
||||||
|
|
||||||
|
add_hwservice(hal_touchfeature_server, hal_touchfeature_hwservice_xiaomi)
|
||||||
|
allow hal_touchfeature_client hal_touchfeature_hwservice_xiaomi:hwservice_manager find;
|
||||||
|
|
||||||
|
allow hal_touchfeature_default touchfeature_device:chr_file rw_file_perms;
|
||||||
|
set_prop(hal_touchfeature_default, vendor_touchfeature_prop)
|
||||||
|
|
||||||
|
vndbinder_use(hal_touchfeature_default)
|
||||||
1
sepolicy/vendor/hwservice_contexts
vendored
1
sepolicy/vendor/hwservice_contexts
vendored
@@ -1,3 +1,4 @@
|
|||||||
vendor.goodix.hardware.biometrics.fingerprint::IGoodixFingerprintDaemon u:object_r:hal_fingerprint_hwservice_xiaomi:s0
|
vendor.goodix.hardware.biometrics.fingerprint::IGoodixFingerprintDaemon u:object_r:hal_fingerprint_hwservice_xiaomi:s0
|
||||||
vendor.xiaomi.hardware.fingerprintextension::IXiaomiFingerprint u:object_r:hal_fingerprint_hwservice_xiaomi:s0
|
vendor.xiaomi.hardware.fingerprintextension::IXiaomiFingerprint u:object_r:hal_fingerprint_hwservice_xiaomi:s0
|
||||||
vendor.xiaomi.hardware.motor::IMotor u:object_r:hal_motor_hwservice_xiaomi:s0
|
vendor.xiaomi.hardware.motor::IMotor u:object_r:hal_motor_hwservice_xiaomi:s0
|
||||||
|
vendor.xiaomi.hardware.touchfeature::ITouchFeature u:object_r:hal_touchfeature_hwservice_xiaomi:s0
|
||||||
|
|||||||
3
sepolicy/vendor/property_contexts
vendored
3
sepolicy/vendor/property_contexts
vendored
@@ -21,5 +21,8 @@ vendor.fps_hal. u:object_r:vendor_fp_prop:s0
|
|||||||
# Sensors
|
# Sensors
|
||||||
persist.sensor. u:object_r:persist_sensors_prop:s0
|
persist.sensor. u:object_r:persist_sensors_prop:s0
|
||||||
|
|
||||||
|
# Touchfeature
|
||||||
|
ro.vendor.touchfeature.type u:object_r:vendor_touchfeature_prop:s0
|
||||||
|
|
||||||
# Xiaomi thermal daemon
|
# Xiaomi thermal daemon
|
||||||
sys.thermal. u:object_r:thermal_normal_prop:s0
|
sys.thermal. u:object_r:thermal_normal_prop:s0
|
||||||
|
|||||||
Reference in New Issue
Block a user