timschneeb / GalaxyBudsClient

Unofficial Galaxy Buds Manager for Windows, macOS, Linux, and Android
GNU General Public License v3.0
3.54k stars 189 forks source link

[BUG] Can't connect multiple paired devices. #169

Closed johnmagbag1995 closed 3 years ago

johnmagbag1995 commented 3 years ago

I have Galaxy Buds Pro and Plus both paired in 1 Windows 10 PC. I can connect my Buds Pro to Galaxy Buds Manager but my Buds Plus can't. I already tried unregistering my device.

image

Version: 4.1.0.0 Windows 10 Version 20H2 (OS Build 19042.844)

RangerMauve commented 3 years ago

Getting this on Linux with Pop OS 20

ArthurWolfhound commented 3 years ago

@johnmagbag1995 could you check C:\Users\%userprofile%\AppData\Local\GalaxyBudsClient and drop logs here? try connecting, reconnecting several times so it would write that into logs. Also check if problem persists in v4.2.

@RangerMauve I am not sure where logs are stored in unix-based OSes (haven't been there for a while) could you do the same?

timschneeb commented 3 years ago

@johnmagbag1995 Do they connect to the official Android app? This error usually indicates that your earbuds are faked since they are missing SDP records referring to Samsung's proprietary Bluetooth serial protocol.

The log file on UNIX-based OSes is located in ~/.config/GalaxyBudsClient.

RangerMauve commented 3 years ago

BTW, the latest version of the client connects fine on Linux. 😁 Could be because I had paired my buds once.

johnmagbag1995 commented 3 years ago

@ArthurWolfhound @ThePBone

I tried Unregistering my Buds Plus but still No paired devices found. I also tried disabling the alternative Backend solution

image

My Buds Plus is already paired with my device and I can already use it. image

I can register and connect my Buds Pro easily. image

johnmagbag1995 commented 3 years ago

@ArthurWolfhound Here my log.

2021-05-30 16:11:33.239 +08:00 [INF] SingleInstanceWatcher: Server listening at tcp:host=::1,port=54532 2021-05-30 16:11:33.731 +08:00 [INF] Using settings file at: C:\Users\JohnMagbag\AppData\Local/GalaxyBudsClient/config.json 2021-05-30 16:11:33.898 +08:00 [DBG] BluetoothImpl: Using WinRT.BluetoothService 2021-05-30 16:11:33.915 +08:00 [DBG] WindowsRT.BluetoothService: Device watcher launched 2021-05-30 16:11:33.916 +08:00 [INF] Translator mode file location: C:\Users\JohnMagbag\AppData\Local/GalaxyBudsClient/custom_language.xaml 2021-05-30 16:11:33.916 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-50:50:a4:6c:81:89 2021-05-30 16:11:33.917 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-1c:e6:1d:ca:68:89 2021-05-30 16:11:33.917 +08:00 [DBG] WindowsRT.BluetoothService: Device updated: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-1c:e6:1d:ca:68:89 2021-05-30 16:11:33.917 +08:00 [INF] User script directory: C:\Users\JohnMagbag\AppData\Local/GalaxyBudsClient/scripts 2021-05-30 16:11:33.918 +08:00 [INF] ScriptManager: 0 user script(s) found 2021-05-30 16:11:33.919 +08:00 [DBG] MainWindow.Instance: Initializing window with WndProc proxy 2021-05-30 16:11:33.920 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-70:ce:8c:7b:c2:5c 2021-05-30 16:11:33.921 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-ec:51:bc:6a:19:3a 2021-05-30 16:11:34.233 +08:00 [WRN] StubDeviceSpec: initialized 2021-05-30 16:11:34.291 +08:00 [DBG] FirmwareRemoteClient: Searching for firmware binaries... 2021-05-30 16:11:34.664 +08:00 [DBG] Windows.HotkeyReceiver: WndProc probes attached 2021-05-30 16:11:34.666 +08:00 [DBG] Windows.HotkeyReceiver: All hotkeys unregistered 2021-05-30 16:11:35.097 +08:00 [DBG] FirmwareRemoteClient: 0 firmware found. 2021-05-30 16:11:45.129 +08:00 [DBG] BluetoothImpl: Reallocating 2021-05-30 16:11:45.130 +08:00 [DBG] WindowsRT.BluetoothService: Closing connection... 2021-05-30 16:11:45.131 +08:00 [DBG] WindowsRT.BluetoothService: Memory freed. Disconnected. 2021-05-30 16:11:45.131 +08:00 [DBG] BluetoothImpl: Using Windows.BluetoothService 2021-05-30 16:11:45.154 +08:00 [DBG] Windows.BluetoothService: Bluetooth adapter found 2021-05-30 16:11:47.145 +08:00 [DBG] Windows.BluetoothService: Setting device detection up 2021-05-30 16:11:50.554 +08:00 [DBG] BluetoothImpl: Reallocating 2021-05-30 16:11:50.554 +08:00 [DBG] Windows.BluetoothService: Disconnecting... 2021-05-30 16:11:50.554 +08:00 [DBG] Windows.BluetoothService: BluetoothServiceLoop not yet launched. No need to cancel. 2021-05-30 16:11:50.555 +08:00 [DBG] BluetoothImpl: Using WinRT.BluetoothService 2021-05-30 16:11:50.557 +08:00 [DBG] WindowsRT.BluetoothService: Device watcher launched 2021-05-30 16:11:50.558 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-50:50:a4:6c:81:89 2021-05-30 16:11:50.558 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-1c:e6:1d:ca:68:89 2021-05-30 16:11:50.559 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-70:ce:8c:7b:c2:5c 2021-05-30 16:11:50.561 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-ec:51:bc:6a:19:3a 2021-05-30 16:11:51.202 +08:00 [DBG] BluetoothImpl: Reallocating 2021-05-30 16:11:51.203 +08:00 [DBG] WindowsRT.BluetoothService: Closing connection... 2021-05-30 16:11:51.203 +08:00 [DBG] WindowsRT.BluetoothService: Memory freed. Disconnected. 2021-05-30 16:11:51.203 +08:00 [DBG] BluetoothImpl: Using Windows.BluetoothService 2021-05-30 16:11:51.204 +08:00 [DBG] Windows.BluetoothService: Bluetooth adapter found 2021-05-30 16:11:53.210 +08:00 [DBG] Windows.BluetoothService: Setting device detection up 2021-05-30 16:12:03.919 +08:00 [DBG] WindowsRT.BluetoothService: Device enumeration complete 2021-05-30 16:12:20.569 +08:00 [DBG] WindowsRT.BluetoothService: Device enumeration complete 2021-05-30 16:12:22.423 +08:00 [DBG] BluetoothImpl: Reallocating 2021-05-30 16:12:22.423 +08:00 [DBG] Windows.BluetoothService: Disconnecting... 2021-05-30 16:12:22.423 +08:00 [DBG] Windows.BluetoothService: BluetoothServiceLoop not yet launched. No need to cancel. 2021-05-30 16:12:22.423 +08:00 [DBG] BluetoothImpl: Using WinRT.BluetoothService 2021-05-30 16:12:22.426 +08:00 [DBG] WindowsRT.BluetoothService: Device watcher launched 2021-05-30 16:12:22.427 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-50:50:a4:6c:81:89 2021-05-30 16:12:22.427 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-1c:e6:1d:ca:68:89 2021-05-30 16:12:22.427 +08:00 [DBG] WindowsRT.BluetoothService: Device updated: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-1c:e6:1d:ca:68:89 2021-05-30 16:12:22.427 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-70:ce:8c:7b:c2:5c 2021-05-30 16:12:22.429 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-ec:51:bc:6a:19:3a 2021-05-30 16:12:28.840 +08:00 [DBG] WindowsRT.BluetoothService: Device removed: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-ec:51:bc:6a:19:3a 2021-05-30 16:12:28.840 +08:00 [DBG] WindowsRT.BluetoothService: Device removed: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-ec:51:bc:6a:19:3a 2021-05-30 16:12:28.840 +08:00 [DBG] WindowsRT.BluetoothService: Device removed: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-ec:51:bc:6a:19:3a 2021-05-30 16:12:35.126 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-ec:51:bc:6a:19:3a 2021-05-30 16:12:35.126 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-ec:51:bc:6a:19:3a 2021-05-30 16:12:35.126 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-ec:51:bc:6a:19:3a 2021-05-30 16:12:52.430 +08:00 [DBG] WindowsRT.BluetoothService: Device enumeration complete 2021-05-30 16:13:50.671 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-70:b1:3d:c9:06:3d 2021-05-30 16:13:50.671 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-70:b1:3d:c9:06:3d 2021-05-30 16:13:50.672 +08:00 [DBG] WindowsRT.BluetoothService: Device added: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-70:b1:3d:c9:06:3d 2021-05-30 16:14:21.421 +08:00 [DBG] WindowsRT.BluetoothService: Device removed: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-70:b1:3d:c9:06:3d 2021-05-30 16:14:21.421 +08:00 [DBG] WindowsRT.BluetoothService: Device removed: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-70:b1:3d:c9:06:3d 2021-05-30 16:14:21.421 +08:00 [DBG] WindowsRT.BluetoothService: Device removed: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-70:b1:3d:c9:06:3d 2021-05-30 16:15:34.510 +08:00 [DBG] WindowsRT.BluetoothService: Device updated: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-70:ce:8c:7b:c2:5c 2021-05-30 16:15:34.510 +08:00 [DBG] WindowsRT.BluetoothService: Device updated: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-70:ce:8c:7b:c2:5c 2021-05-30 16:15:34.510 +08:00 [DBG] WindowsRT.BluetoothService: Device updated: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-70:ce:8c:7b:c2:5c 2021-05-30 16:15:37.374 +08:00 [DBG] WindowsRT.BluetoothService: Device updated: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-1c:e6:1d:ca:68:89 2021-05-30 16:15:37.374 +08:00 [DBG] WindowsRT.BluetoothService: Device updated: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-1c:e6:1d:ca:68:89 2021-05-30 16:15:37.374 +08:00 [DBG] WindowsRT.BluetoothService: Device updated: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-1c:e6:1d:ca:68:89 2021-05-30 16:16:15.033 +08:00 [DBG] WindowsRT.BluetoothService: Selected 'Galaxy Buds Pro (6889)' (1c:e6:1d:ca:68:89) from cache as target 2021-05-30 16:16:15.583 +08:00 [DBG] WindowsRT.BluetoothService: Connected 2021-05-30 16:16:15.584 +08:00 [DBG] WindowsRT.BluetoothService: Launching BluetoothServiceLoop... 2021-05-30 16:17:17.951 +08:00 [DBG] WindowsRT.BluetoothService: Device removed: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-ec:51:bc:6a:19:3a 2021-05-30 16:17:17.951 +08:00 [DBG] WindowsRT.BluetoothService: Device removed: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-ec:51:bc:6a:19:3a 2021-05-30 16:17:17.951 +08:00 [DBG] WindowsRT.BluetoothService: Device removed: Bluetooth#Bluetooth6c:6a:77:e4:b4:1f-ec:51:bc:6a:19:3a 2021-05-30 16:17:31.104 +08:00 [INF] TrayManager: Exit requested by user 2021-05-30 16:17:31.106 +08:00 [DBG] MainWindow.OnClosing: at GalaxyBudsClient.MainWindow.OnClosing(CancelEventArgs e) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at GalaxyBudsClient.MainWindow.OnClosing(CancelEventArgs e) at Avalonia.Controls.Window.HandleClosing() at Avalonia.Controls.Window.Close(Boolean ignoreCancel) at Avalonia.Controls.Window.Close() at Avalonia.Threading.JobRunner.RunJobs(Nullable1 priority) at Avalonia.Win32.Win32Platform.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam) at Avalonia.Win32.Interop.UnmanagedMethods.DispatchMessage(MSG& lpmsg) at Avalonia.Win32.Interop.UnmanagedMethods.DispatchMessage(MSG& lpmsg) at Avalonia.Win32.Win32Platform.RunLoop(CancellationToken cancellationToken) at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken) at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args) at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode) at GalaxyBudsClient.Program.Main(String[] args) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.ExecutionContextCallback(Object s) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext(Thread threadPoolThread) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext() at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox box, Boolean allowInlining) at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task1.TrySetResult(TResult result) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult() at GalaxyBudsClient.Utils.SingleInstanceWatcher.Setup() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.ExecutionContextCallback(Object s) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext(Thread threadPoolThread) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext() at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox box, Boolean allowInlining) at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task1.TrySetResult(TResult result) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.SetResult(TResult result) at Tmds.DBus.Transports.LocalServer.StartAsync(String address) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.ExecutionContextCallback(Object s) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext(Thread threadPoolThread) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext() at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox box, Boolean allowInlining) at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task1.TrySetResult(TResult result) at Tmds.DBus.AddressEntry.ResolveAsync(Boolean listen) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.ExecutionContextCallback(Object s) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext(Thread threadPoolThread) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.AsyncStateMachineBox1.MoveNext() at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox box, Boolean allowInlining) at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task1.TrySetResult(TResult result) at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) at System.Threading.Tasks.TaskFactory1.<>c__DisplayClass38_01.b0(IAsyncResult iar) at System.Net.LazyAsyncResult.Complete(IntPtr userToken) at System.Net.ContextAwareResult.CompleteCallback() at System.Net.ContextAwareResult.<>c.b15_0(Object s) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Net.ContextAwareResult.Complete(IntPtr userToken) at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) at System.Net.NameResolutionPal.GetAddrInfoExState.<>c.b__5_0(Object s) at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__274_0(Object obj) at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) at System.Threading.Tasks.Task.ExecuteEntryUnsafe(Thread threadPoolThread) at System.Threading.Tasks.Task.ExecuteFromThreadPool(Thread threadPoolThread) at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

2021-05-30 16:17:31.107 +08:00 [DBG] MainWindow.OnClosing: Now closing session 2021-05-30 16:17:31.146 +08:00 [INF] MainWindow: Shutting down normally 2021-05-30 16:17:31.147 +08:00 [DBG] NotifyIconImpl: Disposing notify icon

johnmagbag1995 commented 3 years ago

@ThePBone Yes it can connect to my S21 Ultra. Also, my Buds Plus is a freebie from S20 Plus purchase.

timschneeb commented 3 years ago

@johnmagbag1995 Normally, Buds+ devices have their Bluetooth device name set to Galaxy Buds+ (XXXX) and not Galaxy Buds Plus like in your case. (The (XXXX) field is constructed by combining the first and last byte of the Bluetooth MAC address, in my case, the device is called Galaxy Buds+ (79EC)).

This and the fact that you got this SDP error in your first screenshot are usually pretty clear signs that your pair of Buds+ is faked; however, if they actually connect and work with the official Android app, it could be possible that they run an ancient firmware version that used another naming scheme for the Bluetooth device name. Maybe you could try to perform a firmware update with the official App if one is available.

Anyway, you could try to force this app to connect to your Buds+ and work around the device name filter, like this:

  1. First, make sure that the GalaxyBudsClient app is not running anymore on your computer
  2. Press Win+R on your keyboard, insert notepad %localappdata%/GalaxyBudsClient/config.json into the input field, and hit enter
  3. Now, you should see a notepad window with the configuration of this app loaded This should look something like this:
    {
    "RegisteredDevice": {
    "Model": "BudsPro",
    "MacAddress": "64:03:7f:2e:2b:3a"
    },
    "Popup": {
    "Compact": "true",
    "Enabled": "false",
    "Placement": "BottomRight"
    },
    "DarkMode": "Dark"
    }
  4. Replace the value of the property MacAddress with the Bluetooth MAC address of your Buds+.
  5. Replace the value of the property Model with BudsPlus.

You can also replace the whole config with this snippet and insert the correct MAC address:

{
  "RegisteredDevice": {
    "Model": "BudsPlus",
    "MacAddress": "INSERT_YOUR_BUDS+_MAC_HERE"
  }
}
  1. Restart the application. It will automatically attempt to connect to your Buds+ despite them having an incorrect Bluetooth device name.
johnmagbag1995 commented 3 years ago

@ThePBone I renamed my Buds+ on Windows long time ago. Will try your recommendations. Thanks for checking!

Screenshot_20210608-214519_Galaxy Buds+ Screenshot_20210608-214509_Galaxy Buds+

timschneeb commented 3 years ago

Issue inactive, closing