bluez/bluez-5.50-autopair-backports.patch
Bastien Nocera 3c5fd713ee + bluez-5.50-8
Backport loads of fixes from upstream, including:
  dbus-broker support (#1711594)
  a2dp codecs discovery
  discoverability filter support (used in gnome-bluetooth, #1583442)
  sixaxis pairing fixes
2019-06-07 09:10:08 +02:00

82 lines
2.2 KiB
Diff

From b83e617e98ddfce94f3209399c290c8a764ffe3e Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Mon, 27 Nov 2017 16:26:50 +0100
Subject: [PATCH 1/2] autopair: Add more common PIN codes for audio devices
PIN codes "1111", and "1234" are fairly common PIN codes used for audio
devices such as speakers and headsets. This replaces similar quirks
already present in gnome-bluetooth's PIN database.
---
plugins/autopair.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/plugins/autopair.c b/plugins/autopair.c
index 6980b0a64..70e19930e 100644
--- a/plugins/autopair.c
+++ b/plugins/autopair.c
@@ -92,10 +92,20 @@ static ssize_t autopair_pincb(struct btd_adapter *adapter,
case 0x06: /* Headphones */
case 0x07: /* Portable Audio */
case 0x0a: /* HiFi Audio Device */
- if (attempt > 1)
- return 0;
- memcpy(pinbuf, "0000", 4);
- return 4;
+ {
+ const char *pincodes[] = {
+ "0000",
+ "1234",
+ "1111"
+ };
+ const char *pincode;
+
+ if (attempt > G_N_ELEMENTS(pincodes))
+ return 0;
+ pincode = pincodes[attempt - 1];
+ memcpy(pinbuf, pincode, strlen(pincode));
+ return strlen(pincode);
+ }
}
break;
--
2.21.0
From 62d8a8237e3cb5bea5333d485416cc8d8b92556c Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Mon, 27 Nov 2017 16:26:51 +0100
Subject: [PATCH 2/2] autopair: Add pin codes to try for gaming input devices
As well as remote controls.
---
plugins/autopair.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/plugins/autopair.c b/plugins/autopair.c
index 70e19930e..043bd9b9d 100644
--- a/plugins/autopair.c
+++ b/plugins/autopair.c
@@ -111,6 +111,18 @@ static ssize_t autopair_pincb(struct btd_adapter *adapter,
case 0x05: /* Peripheral */
switch ((class & 0xc0) >> 6) {
+ case 0x00:
+ switch ((class & 0x1e) >> 2) {
+ case 0x01: /* Joystick */
+ case 0x02: /* Gamepad */
+ case 0x03: /* Remote Control */
+ if (attempt > 1)
+ return 0;
+ memcpy(pinbuf, "0000", 4);
+ return 4;
+ }
+
+ break;
case 0x01: /* Keyboard */
case 0x03: /* Combo keyboard/pointing device */
/* For keyboards rejecting the first random code
--
2.21.0