mirror of
git://slackware.nl/current.git
synced 2025-01-04 23:02:35 +01:00
77 lines
1.9 KiB
Diff
77 lines
1.9 KiB
Diff
|
From 97185bae75b16bea48d532aa5511417e485b1c06 Mon Sep 17 00:00:00 2001
|
||
|
From: Bastien Nocera <hadess@hadess.net>
|
||
|
Date: Wed, 17 Jun 2020 10:51:09 +0200
|
||
|
Subject: [PATCH 1/4] linux: Add support for iPhone XR, XS models
|
||
|
|
||
|
Modifying the udev serial to be acceptable as an hyphened UDID, as the
|
||
|
usbmux stack expects.
|
||
|
|
||
|
Closes: #114
|
||
|
---
|
||
|
src/linux/up-device-idevice.c | 28 ++++++++++++++++++++++++++--
|
||
|
1 file changed, 26 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/src/linux/up-device-idevice.c b/src/linux/up-device-idevice.c
|
||
|
index a808269..d2fa0a1 100644
|
||
|
--- a/src/linux/up-device-idevice.c
|
||
|
+++ b/src/linux/up-device-idevice.c
|
||
|
@@ -203,6 +203,28 @@ out:
|
||
|
return G_SOURCE_CONTINUE;
|
||
|
}
|
||
|
|
||
|
+static char *
|
||
|
+get_device_uuid (GUdevDevice *native)
|
||
|
+{
|
||
|
+ const char *uuid;
|
||
|
+ char *retval;
|
||
|
+
|
||
|
+ uuid = g_udev_device_get_property (native, "ID_SERIAL_SHORT");
|
||
|
+ if (uuid == NULL)
|
||
|
+ return NULL;
|
||
|
+
|
||
|
+ if (strlen (uuid) != 24)
|
||
|
+ return g_strdup (uuid);
|
||
|
+
|
||
|
+ /* new style UDID: add hyphen between first 8 and following 16 digits */
|
||
|
+ retval = g_malloc0 (24 + 1 + 1);
|
||
|
+ memcpy (&retval[0], &uuid[0], 8);
|
||
|
+ retval[8] = '-';
|
||
|
+ memcpy (&retval[9], &uuid[8], 16);
|
||
|
+
|
||
|
+ return retval;
|
||
|
+}
|
||
|
+
|
||
|
/**
|
||
|
* up_device_idevice_coldplug:
|
||
|
*
|
||
|
@@ -213,7 +235,7 @@ up_device_idevice_coldplug (UpDevice *device)
|
||
|
{
|
||
|
UpDeviceIdevice *idevice = UP_DEVICE_IDEVICE (device);
|
||
|
GUdevDevice *native;
|
||
|
- const gchar *uuid;
|
||
|
+ char *uuid;
|
||
|
const gchar *model;
|
||
|
UpDeviceKind kind;
|
||
|
|
||
|
@@ -223,7 +245,7 @@ up_device_idevice_coldplug (UpDevice *device)
|
||
|
return FALSE;
|
||
|
|
||
|
/* Get the UUID */
|
||
|
- uuid = g_udev_device_get_property (native, "ID_SERIAL_SHORT");
|
||
|
+ uuid = get_device_uuid (native);
|
||
|
if (uuid == NULL)
|
||
|
return FALSE;
|
||
|
|
||
|
@@ -253,6 +275,8 @@ up_device_idevice_coldplug (UpDevice *device)
|
||
|
g_source_set_name_by_id (idevice->priv->start_id,
|
||
|
"[upower] up_device_idevice_start_poll_cb (linux)");
|
||
|
|
||
|
+ g_free (uuid);
|
||
|
+
|
||
|
return TRUE;
|
||
|
}
|
||
|
|
||
|
--
|
||
|
2.27.0
|
||
|
|