diff --git a/Huawei/Fingerprint/Android.mk b/Huawei/Fingerprint/Android.mk
new file mode 100644
index 0000000..7133fe4
--- /dev/null
+++ b/Huawei/Fingerprint/Android.mk
@@ -0,0 +1,14 @@
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := hw-fpnav-daemon
+LOCAL_SRC_FILES := \
+	input.cpp
+
+LOCAL_CLANG := true
+LOCAL_CFLAGS := -Wall -Werror -Wextra
+
+LOCAL_INIT_RC := hw-fingerprint.rc
+
+LOCAL_MODULE_TAGS := optional
+include $(BUILD_EXECUTABLE)
diff --git a/Huawei/Fingerprint/README b/Huawei/Fingerprint/README
new file mode 100644
index 0000000..4063780
--- /dev/null
+++ b/Huawei/Fingerprint/README
@@ -0,0 +1 @@
+out.dex has been generated from https://github.com/phhusson/treble_experimentations/tree/master/vendor-HAL/Huawei/fingerprint-nav
diff --git a/Huawei/Fingerprint/hw-fingerprint.rc b/Huawei/Fingerprint/hw-fingerprint.rc
new file mode 100644
index 0000000..1401e18
--- /dev/null
+++ b/Huawei/Fingerprint/hw-fingerprint.rc
@@ -0,0 +1,7 @@
+service hw-fpnav /system/bin/hw-fpnav
+	user root
+	disabled
+
+on property:sys.boot_completed=1
+	start hw-fpnav
+	
diff --git a/Huawei/Fingerprint/hw-fpnav b/Huawei/Fingerprint/hw-fpnav
new file mode 100644
index 0000000..b4e70c6
--- /dev/null
+++ b/Huawei/Fingerprint/hw-fpnav
@@ -0,0 +1,15 @@
+#!/system/bin/sh
+
+set -x
+
+#Do this only on devices with huawei fingerprint HAL
+lshal |grep -qF vendor.huawei.hardware.biometrics.fingerprint || ( while true;do sleep 3600;done; exit 0)
+
+#Ask fingerprint hardware service to enable navigation
+CLASSPATH=/system/phh/hw-fpnav.dex \
+	/system/bin/app_process \
+		/data/local/tmp/ \
+		Test
+
+#Start input redirector
+/system/bin/hw-fpnav-daemon
diff --git a/Huawei/Fingerprint/hw-fpnav.dex b/Huawei/Fingerprint/hw-fpnav.dex
new file mode 100644
index 0000000..649569e
--- /dev/null
+++ b/Huawei/Fingerprint/hw-fpnav.dex
Binary files differ
diff --git a/Huawei/Fingerprint/input.cpp b/Huawei/Fingerprint/input.cpp
new file mode 100644
index 0000000..dcc01d0
--- /dev/null
+++ b/Huawei/Fingerprint/input.cpp
@@ -0,0 +1,84 @@
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <dirent.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <linux/input.h>
+
+int open_fingerprint() {
+	DIR *dir=opendir("/dev/input");
+	if(!dir) {
+		return -1;
+	}
+	int fd;
+	struct dirent *entry;
+	while( (entry=readdir(dir))!=NULL) {
+		if(entry->d_type!=DT_CHR)
+			continue;
+		if(strncmp(entry->d_name, "event", 5)==0) {
+			fd = openat(dirfd(dir), entry->d_name, O_RDONLY);
+			if(fd < 0) continue;
+
+			char buf[64];
+			int ret = ioctl(fd, EVIOCGNAME(sizeof(buf)), buf);
+			if(ret < 0) {
+				close(fd);
+				continue;
+			}
+
+			if(strcmp(buf, "fingerprint") != 0) {
+				close(fd);
+				continue;
+			}
+
+			ioctl(fd, EVIOCGRAB, 1);
+			closedir(dir);
+			return fd;
+			break;
+		}
+	}
+	closedir(dir);
+	return -1;
+}
+
+#define FINGERPRINT_CLICK	0xae
+#define FINGERPRINT_LONGPRESS	0x1c
+#define FINGERPRINT_RIGHT	0x6a
+#define FINGERPRINT_LEFT	0x69
+#define FINGERPRINT_UP		0x67
+#define FINGERPRINT_DOWN	0x6c
+#define FINGERPRINT_DOUBLECLICK 0x6f
+int main() {
+	int fd = open_fingerprint();
+	if(fd<0) return 1;
+
+	struct input_event ev;
+	while(read(fd, &ev, sizeof(ev)) == sizeof(ev)) {
+		if(ev.type != EV_KEY) continue;
+		//Huawei kernel code automatically generates both up and down events, just take one
+		if(ev.value != 1) continue; 
+
+		switch(ev.code) {
+			case FINGERPRINT_CLICK:
+				system("input keyevent KEYCODE_HOME");
+				break;
+			case FINGERPRINT_LEFT:
+				system("input keyevent KEYCODE_BACK");
+				break;
+			case FINGERPRINT_RIGHT:
+				system("input keyevent KEYCODE_VOICE_ASSIST");
+				break;
+			case FINGERPRINT_UP:
+				system("cmd statusbar expand-settings");
+				break;
+			case FINGERPRINT_DOWN:
+				system("cmd statusbar expand-notifications");
+				break;
+			case FINGERPRINT_LONGPRESS:
+				system("input keyevent APP_APP_SWITCH");
+				break;
+		};
+	}
+}
diff --git a/overlay.mk b/overlay.mk
index 6473fb8..0bd6af6 100644
--- a/overlay.mk
+++ b/overlay.mk
@@ -4,3 +4,10 @@
 	treble-overlay-Essential_PH1 \
 	treble-overlay-Telephony-LTE \
 	HardwareOverlayPicker
+
+
+PRODUCT_PACKAGES += \
+	hw-fpnav-daemon
+PRODUCT_COPY_FILES += \
+	vendor/hardware_overlay/Huawei/Fingerprint/hw-fpnav:system/bin/hw-fpnav \
+	vendor/hardware_overlay/Huawei/Fingerprint/hw-fpnav.dex:system/phh/hw-fpnav.dex
