Include huawei gesture daemon
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;
+		};
+	}
+}