As respostas para essa pergunta dá a você uma ideia geral, embora um pouco vaga no lado do macOS, então vou soletrar o procedimento que usei.
Versões do SO da seguinte forma. Os nomes e locais dos arquivos parecem estar sujeitos a alterações de acordo com as versões, então foi isso que funcionou para mim.
- MacOS High Sierra 10.13.1
- Ubuntu 17.04
Estou assumindo que você tem um sistema de arquivos (chave USB ou qualquer outro) que seja pelo menos leitura-gravação no MacOS e legível no Ubuntu.
A idéia geral é que, ao emparelhar um dispositivo a um sistema operacional, uma chave de link exclusiva é gerada, o que é necessário para a autenticação na próxima vez em que o pareamento estiver ativo. Você pode transferir essas chaves de link de pareamentos MacOS para pares do Ubuntu, de forma que os pareamentos funcionem em ambos os sistemas operacionais.
- Boot Ubuntu
- Parear dispositivo (s) como de costume
- Reinicie no MacOS
- Parear dispositivo (s) como de costume
- Em um tipo de janela de terminal:
sudo defaults read com.apple.bluetoothd.plist LinkKeys
. Isso lhe dará algo como:
{ "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>; }; }
Aqui a0-99-9b-16-43-d2
é o endereço MAC do adaptador bluetooth no meu sistema.
A seguir, estão os endereços MAC de dispositivos que eu emparelhei ( 00-1f-20-47-e5-22
e 04-0c-ce-3d-15-4d
e as chaves de link associadas a esses pares ( 4d6b002f 37584c09 ee219365 b78ba03e
e fe998c62 4bb29a7c 40b2e670 10db71ed
, respectivamente).
- Redirecione essa saída para um arquivo visível para o MacOS e o Ubuntu:
sudo defaults read com.apple.bluetoothd.plist LinkKeys > /Volumes/4T/linkkeys.txt
- Desligue todos os dispositivos que você emparelhou
- Reinicie no Ubuntu. Não ative seus dispositivos Bluetooth ainda. Espero que você tenha um teclado e mouse com fio para usar neste momento
- Abra uma janela de terminal
- Pare o serviço bluetooth:
sudo service bluetooth stop
- Procure no diretório
/var/lib/bluetooth
. Você deve ver uma entrada de subdiretório para o endereço MAC do adaptador bluetooth formatado comoA0:99:9B:16:43:D2
. Dentro dele, você deve ver subdiretórios para cada endereço MAC do dispositivo, como00:1F:20:47:E5:22
e04:0C:CE:3D:15:4D
. Dentro desses diretórios, você encontrará arquivos denominadosinfo
. Edite esses arquivos com seu editor favorito:
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
- Nesses arquivos, você encontrará uma entrada
Key
. Essa chave precisa ser igual à encontrada no MacOS, mas com algumas diferenças importantes de formatação:- espaços removidos
- dígitos hexadecimais em maiúsculas
- Inteiro de 128 bits de byte-swap (ou seja, dividido em dois pedaços de dígitos hexadecimais e invertido)
Você pode conseguir isso da seguinte maneira:
$ 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 $
Edite essas chaves reformatadas na entrada Key dos arquivos de informação apropriados. Muito provavelmente sudo
será necessário.
- Reinicie o serviço Bluetooth:
sudo service bluetooth start
- Agora, ligue seus dispositivos Bluetooth. Eles devem ser reconhecidos e os emparelhamentos ativos / válidos tanto no MacOS quanto no Ubuntu.
Atualização: Os emparelhamentos parecem ter persistido por meio de atualizações no MacOS e no Ubuntu. Agora estou executando 10.13.6 e 18.04, respectivamente, e ainda não tive que refazer este procedimento.