Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature request] dump Bluetooth pairing keys for audio devices from HOS to import them to andorid/Linux #865

Open
zekromisblack opened this issue Jun 11, 2023 · 6 comments

Comments

@zekromisblack
Copy link

This would be a incredible feature for people like me who has earbuds and don't wanna have to repair them every time I switch my OS

@impeeza
Copy link

impeeza commented Jun 11, 2023

the bluetooth database do not include them?

@OrGoN3
Copy link

OrGoN3 commented Jun 11, 2023

You can dump the hos title, https://gbatemp.net/threads/pairing-the-joy-con-on-emunand-and-sysnand.562519/, not sure if that's enough.

@impeeza
Copy link

impeeza commented Jun 12, 2023

Wait one moment.

Since version 1.5.1, Atmosphère have a new setting enable_external_bluetooth_db = u8!0x1 on SD:/atmosphere/system_settings.ini file:

Once you enable that setting the first instance of atmosphère you run will copy the actual Bluetooth sync database to the file SD:/atmosphere/bluetooth_devices.db then on all instances of Atmosphère you run and if you set the value en on System_Setting.ini file will use the database on the dump file instead of the one on EmuMMC or SysMMC so, all your instances will share the same bluetooth database, including headsets and controllers.

And if you use MissionControl you can even spoof any mac from controllers synced with other consoles or PCs and you don't need to lose your sync with external devices.

More information on:

https://github.com/Atmosphere-NX/Atmosphere/releases/tag/1.5.1

@zekromisblack
Copy link
Author

Wait one moment.

Since version 1.5.1, Atmosphère have a new setting enable_external_bluetooth_db = u8!0x1 on SD:/atmosphere/system_settings.ini file:

Once you enable that setting the first instance of atmosphère you run will copy the actual Bluetooth sync database to the file SD:/atmosphere/bluetooth_devices.db then on all instances of Atmosphère you run and if you set the value en on System_Setting.ini file will use the database on the dump file instead of the one on EmuMMC or SysMMC so, all your instances will share the same bluetooth database, including headsets and controllers.

And if you use MissionControl you can even spoof any mac from controllers synced with other consoles or PCs and you don't need to lose your sync with external devices.

More information on:

https://github.com/Atmosphere-NX/Atmosphere/releases/tag/1.5.1

that does not allow me to get the pairing keys from that database file, and i have no idea how its formatted in a hex editor

@impeeza
Copy link

impeeza commented Jun 15, 2023

its a dump of the HOS database, so you can look on Switchbrew page about that information.

@TechniXC
Copy link

@zekromisblack Hey! I think I found the sollution! It works for me to transfer non OEM joy-cons LTK to L4T, but you could do the same for all your BT devices.

You could open bluetooth_devices.db with https://hexed.it/ and on the first BT device mac start at 0x00000008.
Then LTK is the sequence of 16 bytes between 25:08 and 01 bytes. Aprox address of it's first byte is 0x00000031. Important thing that LTK bytes here in REVERSE order. That's mean if you have 78A62351XXXXXXXXXXXXXXD37C24 sequence in bluetooth_devices.db you should copy LTK as 247CD3XXXXXXXXXXXXXX5123A678.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants