diff --git a/99-jabra.rules b/99-jabra.rules
index ba1d26a..2b90765 100644
--- a/99-jabra.rules
+++ b/99-jabra.rules
@@ -17,8 +17,12 @@
 # start the jabra_vold daemon
 ACTION=="add", RUN+="/bin/mkdir -p /run/jabra_vold"
 ACTION=="add", RUN+="/bin/chown volume:volume /run/jabra_vold"
-ACTION=="add", RUN+="/sbin/minijail0 -u volume -g volume -G -- /usr/sbin/jabra_vold -a start -n $env{DEVNUM} -b $env{BUSNUM} -p /sys/$env{DEVPATH}"
+ACTION=="add", RUN+="/sbin/minijail0 -u volume -g volume -G -- \
+/usr/sbin/jabra_vold -a start -n $env{DEVNUM} -b $env{BUSNUM} -p \
+/sys/$env{DEVPATH} -m $env{ID_MODEL_ID} -v $env{ID_REVISION}"
 # stop the daemon
-ACTION=="remove", RUN+="/sbin/minijail0 -u volume -g volume -G -- /usr/sbin/jabra_vold -a stop -n $env{DEVNUM} -b $env{BUSNUM}"
+ACTION=="remove", RUN+="/sbin/minijail0 -u volume -g volume -G -- \
+/usr/sbin/jabra_vold -a stop -n $env{DEVNUM} -b $env{BUSNUM} -m \
+$env{ID_MODEL_ID} -v $env{ID_REVISION}"
 
 LABEL="jabra_end"
diff --git a/jabra.c b/jabra.c
index 4c37347..4ecde93 100644
--- a/jabra.c
+++ b/jabra.c
@@ -506,8 +506,10 @@
 	int busnum, devnum;
 	int loglevel = LOG_NOTICE;
 	int pid;
+	int firmware_version = -1;
+	int model = -1;
 
-	while ((opt = getopt(argc, argv, "a:b:d:n:p:")) != -1) {
+	while ((opt = getopt(argc, argv, "a:b:d:m:n:p:v:")) != -1) {
 		switch (opt) {
 		case 'a':
 			action_str = optarg;
@@ -519,6 +521,9 @@
 			loglevel_str = optarg;
 			use_stderr = 1;
 			break;
+		case 'm':
+			model = atoi(optarg);
+			break;
 		case 'n':
 			devnum_str = optarg;
 			break;
@@ -526,6 +531,9 @@
 			if (optarg)
 				devpath = optarg;
 			break;
+		case 'v':
+			firmware_version = atoi(optarg);
+			break;
 		}
 	}
 
@@ -540,6 +548,24 @@
 	snprintf(pid_filename, sizeof(pid_filename), "/run/jabra_vold/jabra_vold.%d.%d.pid",
 			busnum, devnum);
 
+	if (model < 0) {
+		logd(LOG_INFO,
+		     "No model info. Can't deduce if kernel HID is active\n");
+	} else if (firmware_version < 0) {
+		logd(LOG_INFO,
+		     "No firmware version. Can't deduce if kernel HID is active\n");
+	} else if (((model == 412) && firmware_version >= 111) ||
+		   (model == 510 && firmware_version >= 214)) {
+		logd(LOG_INFO,
+		     "Jabra %d with firmware version %d has kernel HID, exiting...\n",
+		     model, firmware_version);
+		return 0;
+	} else {
+		logd(LOG_INFO,
+		     "Jabra %d with firmware version %d does not have kernel HID",
+		     model, firmware_version);
+	}
+
 	if (strcmp(action_str, "start") == 0) {
 		if (daemon(0, 0)) {
 			perror("Failed to daemonize");
