Odpowiedzi na to pytanie dają ogólny pomysł, choć nieco niejasny po stronie macOS, więc opiszę procedurę, którą zastosowałem.
Wersje systemu operacyjnego w następujący sposób. Nazwy i lokalizacje plików mogą się zmieniać w zależności od wersji, więc to działało dla mnie.
- MacOS High Sierra 10.13.1
- Ubuntu 17.04
Zakładam, że masz system plików (klucz USB lub cokolwiek innego), który jest przynajmniej do odczytu i zapisu w MacOS i do odczytu w Ubuntu.
Ogólna idea polega na tym, że podczas parowania urządzenia z systemem operacyjnym generowany jest unikalny klucz łącza, który jest niezbędny do uwierzytelnienia przy następnym parowaniu. Możesz przenieść te klucze linków z par MacOS do par Ubuntu, aby pary działały w obu systemach operacyjnych.
- Uruchom Ubuntu
- Sparuj urządzenia jak zwykle
- Uruchom ponownie w systemie MacOS
- Sparuj urządzenia jak zwykle
- W oknie terminala typu:
sudo defaults read com.apple.bluetoothd.plist LinkKeys
. To da ci coś w rodzaju:
{
„a0-99-9b-16-43-d2” = {
„00-1f-20-47-e5-22” = <4d6b002f 37584c09 ee219365 b78ba03e>;
„04-0c-ce-3d-15-4d” = <fe998c62 4bb29a7c 40b2e670 10db71ed>;
};
}
Oto a0-99-9b-16-43-d2
adres MAC adaptera bluetooth w moim systemie.
Poniżej znajdują się adresy MAC urządzeń, które sparowałem ( 00-1f-20-47-e5-22
i 04-0c-ce-3d-15-4d
klucze łącza powiązane z tymi parami ( 4d6b002f 37584c09 ee219365 b78ba03e
i fe998c62 4bb29a7c 40b2e670 10db71ed
odpowiednio).
- Przekieruj to wyjście do pliku widocznego zarówno dla MacOS, jak i Ubuntu:
sudo defaults read com.apple.bluetoothd.plist LinkKeys> /Volumes/4T/linkkeys.txt
- Wyłącz wszystkie sparowane urządzenia
- Uruchom ponownie w Ubuntu. Nie włączaj jeszcze urządzeń Bluetooth. Mam nadzieję, że w tym momencie masz przewodową klawiaturę i mysz
- Otwórz okno terminala
- Zatrzymaj usługę Bluetooth:
usługa sudo bluetooth stop
- Zajrzyj do katalogu
/var/lib/bluetooth
. Powinieneś zobaczyć pozycję podkatalogu dla adresu MAC adaptera bluetooth, sformatowanego jak A0:99:9B:16:43:D2
. Wewnątrz powinieneś zobaczyć podkatalogi dla każdego adresu MAC urządzenia, takiego jak 00:1F:20:47:E5:22
i 04:0C:CE:3D:15:4D
. W tych katalogach znajdziesz pliki o nazwie info
. Edytuj te pliki za pomocą swojego ulubionego edytora:
sudo gedit / var / lib / bluetooth / A0: 99: 9B: 16: 43: D2 / 00: 1F: 20: 47: E5: 22 / info
sudo gedit / var / lib / bluetooth / A0: 99: 9B: 16: 43: D2 / 04: 0C: CE: 3D: 15: 4D / info
- W tych plikach znajdziesz
Key
wpis. Ten klucz musi być taki sam jak w MacOS, ale z pewnymi istotnymi różnicami w formatowaniu:
- spacje usunięte
- cyfry szesnastkowe dużymi literami
- 128-bitowa liczba całkowita zamieniona na bajty (tzn. podzielona na 2 cyfry szesnastkowe i odwrócona)
Możesz to osiągnąć w następujący sposób:
$ echo 4d6b002f 37584c09 ee219365 b78ba03e | sed 's / //g;s/../\U&\n/g' | tac | tr -d '\ n'; Echo
3EA08BB7659321EE094C58372F006B4D
$ echo fe998c62 4bb29a7c 40b2e670 10db71ed | sed 's / //g;s/../\U&\n/g' | tac | tr -d '\ n'; Echo
ED71DB1070E6B2407C9AB24B628C99FE
$
Edytuj te ponownie sformatowane klucze we wpisie Klucz odpowiednich plików informacyjnych. Najprawdopodobniej sudo
będzie to wymagane.
- Uruchom ponownie usługę Bluetooth:
uruchomienie usługi sudo bluetooth
- Teraz włącz urządzenia Bluetooth. Powinny one zostać rozpoznane, a pary aktywne / ważne w MacOS i Ubuntu.
Aktualizacja: Wydaje się, że sparowania utrzymały się dzięki aktualizacjom zarówno w systemie MacOS, jak i Ubuntu. Używam teraz odpowiednio 10.13.6 i 18.04 i nie musiałem jeszcze powtarzać tej procedury.