Coder Social home page Coder Social logo

thepbone / galaxybudsclient Goto Github PK

View Code? Open in Web Editor NEW
3.2K 49.0 177.0 27.77 MB

Unofficial Galaxy Buds Manager for Windows, macOS, and Linux

License: GNU General Public License v3.0

C# 96.00% NSIS 0.12% HTML 2.44% Objective-C 0.27% Objective-C++ 0.42% Swift 0.74% Shell 0.01%
galaxy-buds earbuds manager samsung rfcomm bluetooth reverse-engineering buds-pro buds-plus buds-live firmware

galaxybudsclient's Introduction

English | 中文(简体) | 中文(繁體) | Русский | 日本語 | Українська | 한국어 | Česky | Türkçe | Ελληνικά | Português
Attention: readme files are maintained by translators and may become outdated from time to time. For newest info rely on English version.

Galaxy Buds Client

An unofficial manager for the Buds, Buds+, Buds Live and Buds Pro

GitHub downloads count GitHub release (latest by date) License Platform

Key FeaturesDownloadHow it worksContributingCreditsLicense

Screenshot

Screenshot

Key Features

Configure and control any Samsung Galaxy Buds device and integrate them into your desktop.

Aside from standard features known from the official Android app, this project helps you to release the full potential of your earbuds and implements new functionality such as:

  • Detailed battery statistics
  • Diagnostics and factory self-tests
  • Loads of hidden debugging information
  • Customizable long-press touch actions
  • Firmware flashing, downgrading (Buds+, Buds Pro)
  • and much more...

If you're looking for older firmware binaries, have a look here: https://github.com/ThePBone/galaxy-buds-firmware-archive

Download

There are several Linux packages available:

Get binaries for Windows in the release section. Please read the release notes before installation:

Download

Flatpak

Universal binary packages for all Linux distributions. This is the recommended way of installing GalaxyBudsClient on Linux.

Available for download on FlatHub: https://flathub.org/apps/me.timschneeberger.GalaxyBudsClient

flatpak install me.timschneeberger.GalaxyBudsClient

Download on Flathub

Note: Flatpaks are sandboxed. This application can only access ~/.var/app/me.timschneeberger.GalaxyBudsClient/ by default.

AUR package

An AUR package for Arch Linux maintained by @joscdk is also available:

yay -S galaxybudsclient-bin

winget

The Windows package is also available to install with Windows Package Manager (winget)

winget install ThePBone.GalaxyBudsClient

How it works

In order to use Bluetooth wireless technology, a device must be able to interpret specific Bluetooth profiles that enable Bluetooth devices to communicate efficiently with each other.

The Galaxy Buds define two Bluetooth profiles: A2DP (Advanced Audio Distribution Profile) for audio streaming/controlling and SPP (Serial Port Profile) for transmitting binary streams. Manufacturers often use this profile (which relies on the RFCOMM protocol) to exchange configuration data, perform firmware updates, or send other commands to the Bluetooth device.

Even though the A2DP profile is standardized and documented, the format of the binary data exchanged by this RFCOMM protocol is usually proprietary.

To reverse-engineer this data format, I started by analyzing the structure of the binary stream sent by the earbuds. Later on, I also disassembled the official Galaxy Buds apps for Android to gain more insight into these devices' inner workings. You can find some (incomplete) notes I took down below. Check the source code to get more detailed information on the structure of the protocol.

Galaxy Buds (2019) NotesGalaxy Buds Plus Notes

While taking a closer look at the Galaxy Buds Plus, I also noticed some unusual features, such as a firmware debug mode, an unused pairing mode, and a Bluetooth key dumper. I documented these findings here:

Galaxy Buds Plus: Unusual features

Currently, I'm looking into modifying and reverse-engineering the firmware for the Buds+. At time of writing I have created two tools to fetch and analyze official firmware binaries. Check them out here:

Firmware DownloaderFirmware Extractor

Stream head-tracking data in realtime from your Buds Pro using this script: ThePBone/BudsPro-Headtracking

Contributing

Feature requests, bug reports, and pull requests of any kind are always welcome.

If you want to report bugs or propose your ideas for this project, you are welcome to open a new issue with a suitable template. Visit our wiki for a detailed explanation.

If you are planning to help us translating this app, refer to the instructions on our wiki. No programming knowledge is required, you can test your custom translations without installing any development tools before submitting a pull request. You can find auto-generated progress reports for existing translations here.

If you want to contribute your own code, you can simply submit a plain pull request explaining you changes. For larger and complex contributions it would be nice if you could open an issue (or message me via Telegram @thepbone) before starting to work on it.

Credits

Contributors

Translators

License

This project is licensed under GPLv3. It is not affiliated with Samsung nor supervised by them in any way.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR 
THE USE OR OTHER DEALINGS IN THE SOFTWARE.

galaxybudsclient's People

Contributors

arthurwolfhound avatar cozyplanes avatar dependabot-preview[bot] avatar dtorreci avatar eta06 avatar fhalfkg avatar flandretw avatar gabreeles avatar gavril-s avatar giovankabisano avatar githubcatw avatar iamimmanuelraj avatar javkhlank avatar joedmin avatar kakkk avatar kevinzonda avatar marenectaris avatar mario-donnarumma avatar nift4 avatar nikossyr avatar sidevesh avatar sigarya avatar ssenkrad avatar stegbrind avatar thelastframe avatar thepbone avatar timschneeb avatar tretre91 avatar yexuanxiao avatar yijhu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

galaxybudsclient's Issues

[REQ] Command Line Support

Could we possibly be able to interface with the client through terminal queries? I'd love to help on this if you need it, although this doesn't actually seem terribly difficult to implement. The only thing I really need to query is the battery so that I can put it in polybar as a module. I don't know how hard this is, but if we could just run the application with command line arguments like "./GalaxyBudsClient.bin --battery" and it would just spit out the current battery of both buds. That would be a great feature so that we can make the app scriptable for Linux.

If you need help with this please let me know and I'll look into it!

Thank you!

Chocolatey pacvkage broken plz takedown from readme or fix.

chocolatey package is verry broken

⚡ *********  ~  choco install galaxybudsclient
Chocolatey v0.10.15
Installing the following packages:
galaxybudsclient
By installing you accept licenses for the packages.
galaxybudsclient not installed. The package was not found with the source(s) listed.
 Source(s): 'https://chocolatey.org/api/v2/'
 NOTE: When you specify explicit sources, it overrides default sources.
If the package version is a prerelease and you didn't specify `--pre`,
 the package may not be found.
Please see https://chocolatey.org/docs/troubleshooting for more
 assistance.

Chocolatey installed 0/1 packages. 1 packages failed.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Failures
 - galaxybudsclient - galaxybudsclient not installed. The package was not found with the source(s) listed.
 Source(s): 'https://chocolatey.org/api/v2/'
 NOTE: When you specify explicit sources, it overrides default sources.
If the package version is a prerelease and you didn't specify `--pre`,
 the package may not be found.
Please see https://chocolatey.org/docs/troubleshooting for more
 assistance.

[Request] Galaxy Buds Live support

Just putting this out for possible Galaxy Buds live support. This app made using the original buds with Windows 10 a joy due to the quicker pairing/connection.

I'm wondering if support could be added for Buds Live, especially since it seems Samsung hasn't even provided an official app for Windows this time.

Also finding out about hidden/locked away features is fun too 💯

P.S: I do understand that for this to happen, you probably need to have the Buds Live on-hand to trace the Bluetooth communication messages.

[UI Issue] Custom actions not visible

image
image

Hi! Looks like UI when choosing custom actions is broken in both light and dark themes.

By the way, is it possible to make application respect system-wide light and dark themes? I use custom powershell script from PSGallery to switch my Windows themes, look here if interested.

I also know that system-wide theme is set by reg key

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize] "AppsUseLightTheme"=dword:00000001 for light (dword:00000000 for dark), maybe it helps.

Would be neat. And is there a way to open discussions instead of issues?

Kind regards,
Friendly contributor.

P.S. Only began learning software development (student) - but at least working on russian and ukrainian xamls for translation, also will do readme.

Galaxy Buds Pro

With the rumored upcoming / confirmed Galaxy Buds Pro, how can I / we / the community help to get you a pair to add support?

Would you consider adding a FUNDING file so we can donate?

[UI Fix] Touchpad > Voice Asisstant (Android only)

Hi! It is not really a bug or issue, just the fact that Cortana actually starts listening from assigned touchpad action, so you might need to remove "(Android only)" from touchpad command for Voice Assistant, can't say anything about Mac though, don't have any...

Windows 10 Home with language set to English (United States) so I do have Cortana enabled. No fixes or mods to get this functionality.

Thanks a lot for this wonderful piece of software!

Linux port?

I saw in a previous closed issue that you stated that you were working on a linux/macos port. I am currently running linux and was wondering if I could somehow help out with the development/testing?

Compile on Linux

Hi, could be possible to compile this app natively on Linux, since relies on .NET?

Spanish version support

First of all, outstanding work here 👌!

I have found translations for Spanish under the folder i18N. Even though some translations seem weird, are there any plans to include these translations in a future release?

If so, I would like to make some modifications as to improve reliability, but I am a bit lost in the project structure. Are there any more files containing translations?

Connection popup doesn't fit the screen anymore

After updating the client to 3.1.1 from 3.0, the connection popup isn't displayed correctly anymore, and acts as if the screen is bigger than it is. What I mean by that is that any position besides top-left is moved more to the right (and in the case of bottom positions, more to the bottom).

This is the top center position:
immagine

This is bottom left:
immagine

I have the screen items/text resized at 125% through Windows 10's settings, so I thought that that could cause this issue, but even if I set it at 100% the issue was still there.

[REQ] Ambient mode volume down disable ambient mode

I think it could be useful that ambient volume down action disable the ambient volume (like ambient volume up action enable ambient mode when disabled).
Now when I use ambient volume up and down when i want to disable ambient volume I have to go on the program to do that.
With this implementation I will just have to long press another time the bud (ambient volume down) when the ambient mode is at minimum level to turn it off.

Microphone Boost

Is it at all possible to implement a microphone boost feature?
I use my Buds Live a lot with Teams on PC but the microphone volume is really low meaning its difficult for participants to hear me. It seems to be a very common issue judging from google searches.
If I use the buds via my Galaxy phone, then microphone volume is not an issue.

(REQ) Gaming mode - Windos 10 app - Galaxy buds plus

Hello.
I own Samsung Galaxy Buds Plus earbuds and use them to listen to Netflix on my Dell Lattitude 5285 tablet - (Intel(R) Core(TM) i7-7600U CPU @ 2.80GHz 2.90 GHz - 16GB Ram. - Windows 10 pro 64bits).
I would love to have a Windows App to be able to turn on Gaming mode on my Earbuds, thus eliminating the latency problem (Sound not quit synced with video)

Thanks alot for your work.

Eric C

GalaxyBudsManager does not get up

Hello.
I have a problem with GalaxyBudsManager, it has been working for a long time, I was even thinking about Polish translation.
Unfortunately, recently I had a problem with starting the application (I had to reset my computer / reinstall the application).
At this point, I am not able to run it.

galaxybudsmanager

After "turn on" I can't see any instance of this app in task manager.

OS: Windows 10
Build: 10.0.18363
.NET: 4.6.1

Android client?

The official Samsung Galaxy Wearable app for Android asks for way too many permissions and has trackers. Is there any chance you would make an Android version of your open-source client?

[REQ] keyboard hotkeys to replace touch-actions

It is inconvenient to lift my hand off the keyboard/mouse to long-tap my headphones and toggle the ambient mode every time I need to speak to somebody. I believe it would be neat to have hotkeys to quickly toggle it on or off along with various customizable actions such as pause/unpause but I personally already have another software to take care of volume/music. Ambient mode though is the main problem here. Thanks!

Application window size

In credits, since a new field was added in the translation textview, there is a scrolling effect there. If the application window size is bigger by default (vertically) there won't be a problem with the scrolling effect.

Adjust internal (hardware) volume

Android and iOS adjust software and hardware volume so they "match", but what happens on Windows, is that with volume buttons of the keyboard, you control the software volume. Buds have its own internal hardware volume which can be controlled separately. I'm not sure is latest version of Windows 10 2004 fixed this (because added support for headsets battery level except for Apple products), anyway could be interesting to have the values displayed by the app itself, and see if the values change when I change volume level on Windows with keyboard.

I thinks this issue is related:
Is there any way to control connected bluetooth device volume in linux using command?

[Suggestion] Repackage and release on Windows Store

This is the kind of program perfect for a cheap, paid release on the Windows Store. Repackage it to run as a UWP, and release it for £1.99 so you can get yourself the Buds+.

I'd be happy to help with the conversion to UWP, not that I have much experience in it.

Windows 10 ARM support: No Bluetooth Adapter Found [BUG]

Ok so I have an issue with Windows on ARM64. You may be able to see in the screenshot that I am using a preview build.
So the issue I am having it that the app does not recognize my Bluetooth adapter on a Galaxy Book2. I know I have it working because I get sound through my buds+ using the Bluetooth so I am just not sure what is going on.

Let me know what other information you need cause this would be cool to get it working on this tablet PC.
image

Custom actions not working

For some reason, my assigned custom long-press actions are not working. I don't even hear the sound that usually indicates a long-press has fired from the earbuds.

I downloaded this client yesterday for Windows (Win 10 Home 64-bit, v1909, build 18363) and it successfully recognizes my Galaxy Buds (not Buds+). Under the System Information tab, it says...
Hardware version: rev0.4
Software version: R170XXU0ATF2
Touch firmware version: 39
Protocol revision: rev3

Nothing indicates there's anything out of the ordinary (although on the System Information tab, when I click "Run self test," everything just says "fail"... not sure what that's about.

Any idea why this isn't working? The buds are connected by bluetooth to my computer, recognized by the manager client, and set as the default audio device.

[REQ] Windows 10 toolbar to Connect on Click

If buds are paired to windows pc, then you just need to go to settings and click on the title to connect (if buds are previously connected to your phone or another device).

A keyboard shortcut or a toolbar to perform this action on one click would make the whole thing faster.

[REQ] What would be needed to port it to macOS?

I know you said you personally wouldn’t make a port for macOS.

But what exactly would be needed to change/add in order to make it mac compatible?

I highly doubt it, but if it doesn’t require advanced .net skills, I might be able to look into this.
Thought it would probably also be helpful for others interested in porting it to macOS.

[REQ] better hotkey action

sorry for bad english! i used machine translator.

Is your feature request related to a problem? Please describe.

  1. when change the ambient sound volume to hotkey, an 'ambient sound is on effect' sound occurs.
  2. Display battery pop-up shows only battery remaining.

Describe the solution you'd like

  1. only change the ambient sound volume.(same as noise control panel)
  2. I hope there is additional information in the display battery pop-up. (ex : display current state in noise canceling mode/ambient sound mode...)

Run on Startup Option

An setting to enable the manager to run on startup. The connection notification and the systray battery levels are very useful.

Different UI icons for Buds/Buds+/Buds Live

I've just been using version 3.0 with my Buds Live and it's working great!
One thing I've noticed is that the UI icons all depict the original Buds. This doesn't affect the functionality of the app in the slightest so it's not really a big deal, and the Buds & Buds+ icons are so similar that Buds+ users likely won't notice this anyway.
I'm not sure where the current UI icons came from, but I have come across line art for the Buds+ & Buds Live that might be useful if this request is deemed worthwhile:

Huge thanks for the work you've put into this project! Lockdown has meant I'm now using my Buds Live with my PC the majority of the time, so it's really nice to now have the same level of control over them as I do with my phone 🙂

Galaxy Buds Live Unsupported

The Galaxy Buds Live are unsupported. When I try to connect the app to them, it suggests that they are regular Galaxy Buds and doesn't work.

Crash on Win10 with galaxy buds+

w46uVlP 1
Crashes constantly on the main screen, i installed, selected my galaxy buds+ connected to my PC, now it crashes every time i open the app on the main screen. Crashed after about 1 sec when loading, this is the final image, no errors or messages.

Odd how its reading both as disconnected.

can i start app with minimalized?

Hi.
thanks you for galaxy buds client application.
can i start app with minimalized?
I wish it was automatically run as a startup program and then minimized to the tray.
It is still possible to run it as a startup program(add app shortcut to startup program folder), but I would like to have an option to automatically minimize it.

sorry for bad english T.T thank you!

V1.2.0 starts and shuts down immediatly

Thanks for the amazing program! Only one issue. After performing the update from 1.1.0 the program does not start normally anymore, after starting it immediatly shuts down. I cant even see the window pop up. Also after reinstalling the problem is not solved. V1.1.0 worked perfectly.

App does not start

on Windws 10 build 19041.572 i cannot run the galaxy bud client anymore.
Even after removing the application and reinstalling it it does not work.

What I've noticed is that the SmartScreen prompt does not appear anymore when i try to launch the application

[BUG] not founding connected buds pro

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows 7/8/8.1/10 [Home / Pro] [32bit / 64bit] OS Build number
  • Application version:

Additional context
Add any other context about the problem here.

OS: Window 10 Pro 64bit
OS Build Number: 19042.746
I connected my buds pro to the desktop and installed buds client.
During installation, after selecting laguage, i keep seeing 'no paired device found' message.

image

App not starting when clicked

I click the app and it doesn't start. It seems like the issue from #55. I tried the thing you said to fix it and it didn't work.

Seamless connection issue with galaxy buds

In the before version of the app it was easily connecting to my PC by disconnecting it my phone when i hit connect button,
but not connect button seems to disconnect from my phone but buds don't connect to the PC.
(Maybe a windows issue: Windows update build 2004)
Please check this up and clear it out

[BUG] ANC Control doesn't work for GB Live

As the title says, I'm unable to control ANC on my Galaxy Buds Live using the app. The switch doesn't work for turning it off. I hear the "ANC on sound" even when I try to turn it off. That started happening after the update which introduced Buds Pro support I think.

  • OS: Windows 10 Home x64 20H2
  • Application version: 4.0.2.0

UI issues + Possible Bug

Hi!
First of all, please let me know if you have any new strings for translation except the one about primary screen, because I am currently under high workload in the university.

UI Bug with Language List

Secondly, there's a bug that causes language list to shorten if it doesn't fit onto the screen.
image
image

Installer bug

As mentioned in #51, I can also add that installer maintains same behavior on upgrade.

Multi-monitor implementation bug.

I can't reproduce #60 but what I can add that if somebody like me uses external monitor and sets it as main screen in Windows Settings - toggling Primary screen only will result in pop-up being unable to show. You might've implemented primary screen logic maintaining primary as built-in but not as system-set primary.

Thanks a lot, and congratulations on your stars!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.