Sono interessato all'implementazione di AirDrop come client su un dispositivo come un iPad o un computer Windows. Qualcuno può indicarmi la giusta direzione per implementare il protocollo AirDrop in Python o C. Qualsiasi aiuto su questo sarebbe molto apprezzato. Grazie in anticipo.Implementazione del protocollo AirDrop
risposta
Per il bene di voi o qualcuno che cercherà di decodificare e mettere in atto Airdrop, qui è quello che ho trovato e ciò che si dovrà fare per iniziare:
Ci sono due fasi e si può essere fatto in modo indipendente o in parallelo.
- decodificare il modo in cui viene creato e denominato
Per fare questo, ottenere iStumbler da qui http://istumbler.net/ e provare a vedere se una rete ad-hoc addizionale si presenta la rete ad-hoc WLAN fisico quando è in corso l'aria. Ho provato brevemente e sembra esserci una rete 802.11b ad-hoc, non crittografata, il cui nome inizia con una "H". (Ma potrei sbagliarmi, provalo tu stesso.) Prova a trovare il modello usato da Airdrop per nominare o identificare la rete. Prova da più Mac per trovare questo.
- decodificare i protocolli
Una volta che i clienti hanno aderito alla rete WiFi, Airdrop rileverà altri client tramite Bonjour.
In primo luogo, come descritto in http://osxdaily.com/2011/09/16/enable-airdrop-ethernet-and-unsupported-macs/, eseguire questo nel vostro terminale per far funzionare le cose, senza la rete nascosta ad-hoc:
defaults write com.apple.NetworkBrowser BrowseAllInterfaces 1
Quindi riavviare Finder .
Prendi il Browser Bonjour da qui: tildesoft.com
All'avvio Airdrop vi accorgerete che il vostro Mac pubblicizza un servizio di "_airdrop._tcp". Pubblica anche i vari indirizzi IP dell'host e della porta (ne viene creato uno nuovo ogni volta che Airdrop viene aperto nel Finder) che il tuo Mac sta ascoltando. Pubblica anche il nome del Computer e due chiavi "ehash" e "phash" e una chiave "flag" con valore 1. Dovresti vedere come vengono generati questi due hash e se sono richiesti . Probabilmente lo sono. Prova a pubblicare i tuoi dati su un secondo computer utilizzando una delle librerie Bonjour disponibili e guarda se compaiono su Airdrop (nel Finder).
Ho riscontrato che il servizio TCP esposto da ciascun client utilizza una connessione SSL. Il certificato del server sembra essere collegato al tuo ID Apple. Puoi trovare il certificato nel portachiavi. Un certificato client è richiesto anche dal server. Questo è probabilmente lo stesso certificato ID Apple dell'altro computer. Dovrai sperimentare con questo.
Non so quale protocollo viene utilizzato all'interno di quella connessione SSL e non ho accesso ad un secondo Mac per indagare al momento. Dovrai collegare MITM alla connessione (prova Charles e Wireshark). In ogni caso verrà utilizzato per trasferire l'icona dell'utente e negoziare il trasferimento e eventualmente anche per spostare i dati effettivi.
Penso che un'implementazione aperta di questo sarebbe di grande beneficio, anche se alla fine risultasse limitata agli utenti con un ID Apple - sono gratuiti dopotutto.
Buona fortuna!
Grazie mille. Ottimi consigli per iniziare. Sono arrivato al monitoraggio con Bonjour Browser, ma poi ho rinunciato. – petschekr
Grazie per la risposta utile, sono anche interessato a questo –
Correlati: http://stackoverflow.com/questions/5220136/how-the-new-mac-os-airdrop-works –