summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Rick Mark2020-05-07 09:42:23 -0700
committerGravatar Rick Mark2020-05-07 09:42:23 -0700
commit45dd28e6a1ce8bcd42cc7d547c223b05ffebff9b (patch)
treec3b3ef80696c3291950d315aa4e32b78ffad0806 /src
parent68d4d1c89d462ebbeb3cf51120fe96813377a0f6 (diff)
downloadusbmuxd-45dd28e6a1ce8bcd42cc7d547c223b05ffebff9b.tar.gz
usbmuxd-45dd28e6a1ce8bcd42cc7d547c223b05ffebff9b.tar.bz2
Do not perform preflight on T2 devices
Diffstat (limited to 'src')
-rw-r--r--src/device.c2
-rw-r--r--src/main.c16
-rw-r--r--src/preflight.c10
3 files changed, 22 insertions, 6 deletions
diff --git a/src/device.c b/src/device.c
index 6858cf5..64e4e8d 100644
--- a/src/device.c
+++ b/src/device.c
@@ -690,7 +690,7 @@ static void device_tcp_input(struct mux_device *dev, struct tcphdr *th, unsigned
690 return; 690 return;
691 } 691 }
692 conn->state = CONN_CONNECTED; 692 conn->state = CONN_CONNECTED;
693 usbmuxd_log(LL_DEBUG, "Client connected to device %d (%d->%d)", dev->id, sport, dport); 693 usbmuxd_log(LL_INFO, "Client connected to device %d (%d->%d)", dev->id, sport, dport);
694 if(client_notify_connect(conn->client, RESULT_OK) < 0) { 694 if(client_notify_connect(conn->client, RESULT_OK) < 0) {
695 conn->client = NULL; 695 conn->client = NULL;
696 connection_teardown(conn); 696 connection_teardown(conn);
diff --git a/src/main.c b/src/main.c
index aede710..7c22092 100644
--- a/src/main.c
+++ b/src/main.c
@@ -53,10 +53,13 @@
53static const char *socket_path = "/var/run/usbmuxd"; 53static const char *socket_path = "/var/run/usbmuxd";
54static const char *lockfile = "/var/run/usbmuxd.pid"; 54static const char *lockfile = "/var/run/usbmuxd.pid";
55 55
56// Global state used in other files
56int should_exit; 57int should_exit;
57int should_discover; 58int should_discover;
58int use_logfile = 0; 59int use_logfile = 0;
60int no_preflight = 0;
59 61
62// Global state for main.c
60static int verbose = 0; 63static int verbose = 0;
61static int foreground = 0; 64static int foreground = 0;
62static int drop_privileges = 0; 65static int drop_privileges = 0;
@@ -151,7 +154,7 @@ static void set_signal_handlers(void)
151 sigaddset(&set, SIGUSR1); 154 sigaddset(&set, SIGUSR1);
152 sigaddset(&set, SIGUSR2); 155 sigaddset(&set, SIGUSR2);
153 sigprocmask(SIG_SETMASK, &set, NULL); 156 sigprocmask(SIG_SETMASK, &set, NULL);
154 157
155 memset(&sa, 0, sizeof(struct sigaction)); 158 memset(&sa, 0, sizeof(struct sigaction));
156 sa.sa_handler = handle_signal; 159 sa.sa_handler = handle_signal;
157 sigaction(SIGINT, &sa, NULL); 160 sigaction(SIGINT, &sa, NULL);
@@ -368,6 +371,7 @@ static void usage()
368 printf(" \tStarting another instance will trigger discovery instead.\n"); 371 printf(" \tStarting another instance will trigger discovery instead.\n");
369 printf(" -z, --enable-exit\tEnable \"--exit\" request from other instances and exit\n"); 372 printf(" -z, --enable-exit\tEnable \"--exit\" request from other instances and exit\n");
370 printf(" \tautomatically if no device is attached.\n"); 373 printf(" \tautomatically if no device is attached.\n");
374 printf(" -p, --no-preflight\tDisable lockdownd preflight on new device.\n");
371#ifdef HAVE_UDEV 375#ifdef HAVE_UDEV
372 printf(" -u, --udev\t\tRun in udev operation mode (implies -n and -z).\n"); 376 printf(" -u, --udev\t\tRun in udev operation mode (implies -n and -z).\n");
373#endif 377#endif
@@ -392,6 +396,7 @@ static void parse_opts(int argc, char **argv)
392 {"user", required_argument, NULL, 'U'}, 396 {"user", required_argument, NULL, 'U'},
393 {"disable-hotplug", no_argument, NULL, 'n'}, 397 {"disable-hotplug", no_argument, NULL, 'n'},
394 {"enable-exit", no_argument, NULL, 'z'}, 398 {"enable-exit", no_argument, NULL, 'z'},
399 {"no-preflight", no_argument, NULL, 'p'},
395#ifdef HAVE_UDEV 400#ifdef HAVE_UDEV
396 {"udev", no_argument, NULL, 'u'}, 401 {"udev", no_argument, NULL, 'u'},
397#endif 402#endif
@@ -407,11 +412,11 @@ static void parse_opts(int argc, char **argv)
407 int c; 412 int c;
408 413
409#ifdef HAVE_SYSTEMD 414#ifdef HAVE_SYSTEMD
410 const char* opts_spec = "hfvVuU:xXsnzl:"; 415 const char* opts_spec = "hfvVuU:xXsnzl:p";
411#elif HAVE_UDEV 416#elif HAVE_UDEV
412 const char* opts_spec = "hfvVuU:xXnzl:"; 417 const char* opts_spec = "hfvVuU:xXnzl:p";
413#else 418#else
414 const char* opts_spec = "hfvVU:xXnzl:"; 419 const char* opts_spec = "hfvVU:xXnzl:p";
415#endif 420#endif
416 421
417 while (1) { 422 while (1) {
@@ -437,6 +442,9 @@ static void parse_opts(int argc, char **argv)
437 drop_privileges = 1; 442 drop_privileges = 1;
438 drop_user = optarg; 443 drop_user = optarg;
439 break; 444 break;
445 case 'p':
446 no_preflight = 1;
447 break;
440#ifdef HAVE_UDEV 448#ifdef HAVE_UDEV
441 case 'u': 449 case 'u':
442 opt_disable_hotplug = 1; 450 opt_disable_hotplug = 1;
diff --git a/src/preflight.c b/src/preflight.c
index c7cfa50..820f3fc 100644
--- a/src/preflight.c
+++ b/src/preflight.c
@@ -41,6 +41,9 @@
41#include "client.h" 41#include "client.h"
42#include "conf.h" 42#include "conf.h"
43#include "log.h" 43#include "log.h"
44#include "usb.h"
45
46extern int no_preflight;
44 47
45#ifdef HAVE_LIBIMOBILEDEVICE 48#ifdef HAVE_LIBIMOBILEDEVICE
46#ifndef HAVE_ENUM_IDEVICE_CONNECTION_TYPE 49#ifndef HAVE_ENUM_IDEVICE_CONNECTION_TYPE
@@ -270,7 +273,7 @@ retry:
270 "com.apple.mobile.lockdown.request_pair", 273 "com.apple.mobile.lockdown.request_pair",
271 "com.apple.mobile.lockdown.request_host_buid", 274 "com.apple.mobile.lockdown.request_host_buid",
272 NULL 275 NULL
273 }; 276 };
274 np_observe_notifications(np, spec); 277 np_observe_notifications(np, spec);
275 278
276 /* TODO send notification to user's desktop */ 279 /* TODO send notification to user's desktop */
@@ -353,6 +356,11 @@ void preflight_device_remove_cb(void *data)
353 356
354void preflight_worker_device_add(struct device_info* info) 357void preflight_worker_device_add(struct device_info* info)
355{ 358{
359 if (info->pid == PID_APPLE_T2_COPROCESSOR || no_preflight == 1) {
360 client_device_add(info);
361 return;
362 }
363
356#ifdef HAVE_LIBIMOBILEDEVICE 364#ifdef HAVE_LIBIMOBILEDEVICE
357 struct device_info *infocopy = (struct device_info*)malloc(sizeof(struct device_info)); 365 struct device_info *infocopy = (struct device_info*)malloc(sizeof(struct device_info));
358 366