Le risposte a questa domanda ti danno l'idea generale, anche se un po 'vaga sul lato macOS, quindi spiegherò la procedura che ho usato.
Versioni del sistema operativo come segue. I nomi e le posizioni dei file sembrano essere soggetti a modifiche in base alle versioni, quindi questo è ciò che ha funzionato per me.
- MacOS High Sierra 10.13.1
- Ubuntu 17.04
Suppongo che tu abbia un filesystem (chiave USB o qualsiasi altra cosa) che sia almeno in lettura-scrittura in MacOS e leggibile in Ubuntu.
L'idea generale è che quando si accoppia un dispositivo a un sistema operativo, viene generata una chiave di collegamento univoca, necessaria per l'autenticazione la volta successiva che l'associazione è attiva. È possibile trasferire queste chiavi di collegamento dagli accoppiamenti MacOS agli accoppiamenti Ubuntu in modo tale che gli accoppiamenti funzionino in entrambi i sistemi operativi.
- Avvia Ubuntu
- Associare i dispositivi come al solito
- Riavvia in MacOS
- Associare i dispositivi come al solito
- In un tipo di terminale:
sudo defaults read com.apple.bluetoothd.plist LinkKeys
. Questo ti darà un output simile a:
{
"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>;
};
}
Ecco a0-99-9b-16-43-d2
l'indirizzo MAC dell'adattatore bluetooth sul mio sistema.
Seguenti che sono gli indirizzi MAC dei dispositivi che ho appaiati ( 00-1f-20-47-e5-22
e 04-0c-ce-3d-15-4d
e le chiavi di collegamento associati a tali accoppiamenti ( 4d6b002f 37584c09 ee219365 b78ba03e
e fe998c62 4bb29a7c 40b2e670 10db71ed
rispettivamente).
- Reindirizza questo output su un file visibile a MacOS e Ubuntu:
per impostazione predefinita sudo leggi com.apple.bluetoothd.plist LinkKeys> /Volumes/4T/linkkeys.txt
- Spegni tutti i dispositivi associati
- Riavvia in Ubuntu. Non accendere ancora i dispositivi Bluetooth. Spero che tu abbia una tastiera e un mouse cablati da usare a questo punto
- Apri una finestra del terminale
- Interrompere il servizio bluetooth:
servizio bluetooth stop sudo
- Cerca nella directory
/var/lib/bluetooth
. Dovresti vedere una sottodirectory per l'indirizzo MAC dell'adattatore bluetooth, formattato come A0:99:9B:16:43:D2
. Al suo interno dovresti vedere le sottodirectory per ciascun indirizzo MAC del dispositivo, come 00:1F:20:47:E5:22
e 04:0C:CE:3D:15:4D
. All'interno di quelle directory troverai file denominati info
. Modifica questi file con il tuo editor preferito:
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
- In questi file troverai una
Key
voce. Questa chiave deve essere identica a quella che hai trovato in MacOS, ma con alcune importanti differenze di formattazione:
- spazi rimossi
- cifre esadecimali in maiuscolo
- intero a 128 bit scambiato in byte (ovvero diviso in 2 blocchi di cifre esadecimali e invertito)
È possibile ottenere questo come segue:
$ echo 4d6b002f 37584c09 ee219365 b78ba03e | sed 's / //g;s/../\U&\n/g' | tac | tr -d '\ n'; eco
3EA08BB7659321EE094C58372F006B4D
$ echo fe998c62 4bb29a7c 40b2e670 10db71ed | sed 's / //g;s/../\U&\n/g' | tac | tr -d '\ n'; eco
ED71DB1070E6B2407C9AB24B628C99FE
$
Modifica queste chiavi riformattate nella voce Chiave dei file di informazioni appropriati. Molto probabilmente sudo
sarà richiesto.
- Riavvia il servizio bluetooth:
sudo service bluetooth start
- Ora accendi i tuoi dispositivi bluetooth. Dovrebbero essere riconosciuti e gli accoppiamenti attivi / validi in MacOS e Ubuntu.
Aggiornamento: gli accoppiamenti sembrano essere persistiti attraverso gli aggiornamenti su MacOS e Ubuntu. Ora sto eseguendo rispettivamente 10.13.6 e 18.04 e non ho ancora dovuto ripetere questa procedura.