Annuncio pubblicitario
Volevo provare SiriProxy per alcuni Arduinodomotica progetti, ma mi rifiuto di acquistare un nuovo telefono quando il mio iPhone 4 funziona ancora bene (sì, ho smesso di usare il mio HTC One X Perché il mio prossimo telefono non è un iPhone, da un fanboy di Apple [Opinione]Sono stato chiamato fanboy di Apple in numerose occasioni, quindi potrei anche accettare il soprannome e andare avanti. Sì, adoro i prodotti Apple e rabbrividisco al pensiero di toccare Windows ... Leggi di più ; 6 mesi con Android è più che sufficiente per me). Ma poi ho capito; io ho già Siri, sul mio iPad 3. Potrei sicuramente usarlo? In effetti puoi. Quindi, in questo tutorial, ti guiderò a far funzionare SiriProxy con il tuo iPad 3 e Mac OS X - gran parte di questo sarà rilevante solo per Mountain Lion.
Ti avverto anche in anticipo, questa è roba piuttosto difficile e quasi tutto fatto dalla riga di comando, e mentre ho provato a analizzalo passo dopo passo nel modo esatto in cui ha funzionato per me, potresti aver bisogno di alcuni errori su Google come e quando sorgere.
Requisiti
- iPad o iPhone con funzionalità Siri. Non mostrerò come hackerare Siri su dispositivi più vecchi utilizzando server falsi, quindi non chiedere.
- Mac OS X. Puoi installare SiriProxy anche su Linux ma non ci proverò oggi.
- iOS6.1
Preparazione
Scarica il programma di installazione pkg per la versione di OS X da MacPorts.org. MacPorts ci consente di installare una varietà di utility UNIX che sono state portate su Mac. Devi anche avere XCode installato, che può essere scaricato gratuitamente dal Mac App Store, ma è un download pesante quindi inizia subito.
MacPorts aggiunge alcune nuove voci di percorso al tuo sistema, ma non si aggiorna correttamente. Evitare comando port non trovato errori più tardi, corri
fonte .profile
A questo punto, dovrai installare anche XCode, dall'App Store. Quando installato esegui questo comando per dire al tuo sistema dove si trova il compilatore:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
Successivamente, installa DNSMasq; un semplice server di inoltro DNS che ci consente di intercettare le richieste a un determinato IP.
sudo port installa dnsmasq
Installa Ruby e RVM
Scarica e installa il gestore pacchetti RVM con questo comando:
bash <Quindi eseguilo per aggiungerlo correttamente al tuo sistema:
[[-s "$ HOME / .rvm / scripts / rvm"]] &&. "$ HOME / .rvm / scripts / rvm"Installa Ruby usando il seguente comando; questo utilizzerà l'ultima versione 1.9.3 al momento in cui scrivo, e ti suggerisco di fare lo stesso o il resto di questa guida probabilmente non funzionerà.
rvm install 1.9.3Se ricevi un mucchio di testo rosso casuale con un errore, esegui invece questo:
rvm install 1.9.3 –with-gcc = clangQuindi fa
rvm usa 1.9.3 predefinitoper impostare la versione predefinita dell'ambiente ruby. Congratulazioni, ora hai Ruby sul tuo sistema!
Scarica SiriProxy
Inizia usando Git per clonare il progetto SiriProxy sul tuo computer.
git clone git: //github.com/plamoni/SiriProxy.gitcd / SiriProxyQuando lo fai per la prima volta, potresti ricevere un avviso di sicurezza sui file di script rilevati. Vai avanti e fidati di questo se hai scaricato dalla fonte github.
Successivamente copieremo il file di configurazione.
mkdir ~ / .siriproxycp ./config.example.yml ~ / .siriproxy / config.ymlApri quel file di configurazione usando il tuo editor di testo preferito e modifica l'IP nella parte superiore del file da 0.0.0.0 all'IP locale del tuo Mac. Andare avanti:
rvmsudo gem installa il rake bundlerrvmsudo rake installQuesto dovrebbe installare SiriProxy per te, ma dovremo ripeterlo in seguito per gestire gli errori. Per ora, continuiamo e facciamo alcuni certificati.
Per prima cosa avremo bisogno di OpenSSL.
sudo port install opensslLa prima volta che ho eseguito questo, ha fallito con numerosi errori zlib; per risolvere questo ho dovuto correre
sudo port -f attiva zlibSuccessivamente, genereremo certificati:
siriproxy gencertsSe tutto va bene, dovresti vedere un messaggio simile a questo.
Utilizzare il Finder-> Vai alla cartella opzione di menu per inserire il percorso elencato nell'output; dovresti trovare a ca.pem file lì. Invialo tramite email a te stesso, quindi aprilo sul tuo dispositivo compatibile Siri. Questo passerà alle impostazioni e ti darà la possibilità di installarlo come nuovo certificato. No, il tuo dirà che lo è non attendibile (in rosso) la prima volta - ho fatto questo screenshot dopo l'installazione, così dice di fiducia.
Di nuovo sul tuo Mac, esegui il comando seguente per aggiornare alcuni file casuali necessari.
installazione in bundleImposta l'inoltro DNS
Il passaggio finale è trasformare il tuo Mac in un server DNS in grado di intercettare le chiamate ai server Apple e instradarle invece tramite SiriProxy. Ancora una volta, usando Finder-> Vai alla cartella, apri / opt / local / etc e modifica dnsmsq.conf. Aggiungi la seguente riga, sostituendo 192.168.0.6 con l'indirizzo IP locale del tuo Mac.
address = / guzzoni.apple.com / 192.168.0.6Per attivare il servizio DNSMasq, eseguire quanto segue. Dovrai farlo ad ogni riavvio (insieme all'avvio di SiriProxy come descritto in seguito).
sudo / opt / local / sbin / dnsmasqSul tuo iPad o iPhone, apri le impostazioni di rete e modifica il server DNS del WiFi nel tuo indirizzo IP Mac. Sì, SiriProxy funziona solo tramite il WiFi di casa, ma teoricamente puoi VPN nel router di casa se desideri utilizzarlo mentre sei in giro. Non lo copriremo oggi.
Avevo anche bisogno di impostare una nuova regola di port forwarding sul mio router; la porta 53 deve essere inoltrata al tuo IP Mac. (Questa è la porta utilizzata da DNS)
Avviare SiriProxy
Il passaggio finale è avviare il server SiriProxy e testare. Fallo usando:
export rvmsudo_secure_path = 1Se a questo punto, visualizzi una schermata piena di errori come "simbolo non valido" non appena premi il tasto Home, continua con questo bit. Ricevi errori a causa di una versione precedente di CFPropertyList inclusa nel pacchetto SiriProxy. Spero che questo sia risolto presto, quindi potresti non averne bisogno, ma nel caso ...
Scarica la versione più recente di CFPropertyList in questo modo:
sudo gem installa CFPropertyList -v 2.1.2Ora usa Finder a Vai alla cartella ~ / .rvm / gems /. Naviga all'interno dell'ultimo Ruby - nel mio caso ruby-1.9.3-P385 / e copia il file gemme / CFPropertyList-2.1.2 / lib cartella sopra a ruby-1.9.3-p385@SiriProxy/gems/CFPropertyList 2.2.0 . Sì, autenticare e sovrascrivere il file versione precedente lib con la lib dalla versione più recente; un attacco orribile, ma l'unico modo per farlo funzionare. L'ultima correzione necessaria è modificare manualmente il file gemspec file. Fallo cambiando nella directory SiriProxy e aprendola siriproxy.gemspec. Fallo dalla riga di comando con VI o Nano usando:
sudo vi siriproxy.gemspecO semplicemente usa un editor di testo. Sostituisci la riga che contiene circa 4 righe dal fondo “CFPropertyList” con il seguente:
s.add_runtime_dependency ('CFPropertyList', '2.1.2')Adesso corri
rvmsudo aggiornamento siriproxyE tutto dovrebbe andare bene con il mondo. Riavviare il server e ripetere il test.
server siriproxy rvmsudoProvalo chiedendo a Siri di "testare il proxy siri" e dovresti ottenere una risposta che è attivo e funzionante. Vedi di più comandi di test Qui.
La prossima volta, esamineremo alcuni plugin SiriProxy che puoi eseguire e inizieremo effettivamente a utilizzare questa cosa.
Ad essere onesti, l'intero processo è stato immensamente complicato di quanto sperassi, ma spero che questa guida si riveli utile per alcuni di voi, dal momento che mi ci sono voluti letteralmente tutto il giorno per avere ragione. Hai qualche consiglio per i plugin SiriProxy che dovrei controllare? Questo processo ha funzionato per te? Facci sapere nei commenti e cercherò di aiutarti, ma il pagina del progetto GitHub è pieno di gente molto più esperta.
James ha una laurea in Intelligenza Artificiale ed è certificato CompTIA A + e Network +. È lo sviluppatore principale di MakeUseOf e trascorre il suo tempo libero giocando a paintball e giochi da tavolo VR. Costruisce PC da quando era un bambino.