Я давно хотел попробовать SiriProxy для некоторых проектов домашней автоматизации Arduino, но я отказываюсь покупать новый телефон, когда мой iPhone 4 все еще отлично работает. Но потом я понял; у меня уже есть Siri на моем iPad 3. Конечно, я могу это использовать? Действительно, можете. Поэтому в этом руководстве я расскажу вам, как заставить SiriProxy работать с вашим iPad 3 и Mac OSX
Я давно хотел попробовать SiriProxy для некоторых проектов домашней автоматизации Arduino, но я отказываюсь покупать новый телефон, когда мой iPhone 4 все еще отлично работает (да, я перестал пользоваться своим HTC One X; 6 месяцев с Android для меня более чем достаточно). Но потом я понял: у меня уже есть Siri на моем iPad 3. Наверняка я могу использовать ее? Действительно, можно. Так что в этом руководстве я расскажу вам, как заставить SiriProxy работать с вашим iPad 3 и Mac OS X – многое из этого будет актуально только для Mountain Lion
Заранее предупреждаю, что это довольно сложный материал и почти все делается в командной строке, и хотя я постарался разложить все по шагам в точном соответствии с тем, что получилось у меня, вам, возможно, придется самостоятельно ‘гуглить’ некоторые ошибки по мере их возникновения
Требования
- iPad или iPhone с поддержкой Siri. Я не буду показывать, как взломать Siri на старых устройствах с помощью поддельных серверов, так что не спрашивайте.
- Mac OS X. Вы можете установить SiriProxy и на Linux, но я не буду пробовать это сегодня.
- iOS6. 1.
Подготовка
Загрузите программу установки pkg для вашей версии OS X с сайта MacPorts.org. MacPorts позволяет нам устанавливать различные утилиты UNIX, которые были перенесены на Mac. Вам также понадобится установленный XCode, который можно бесплатно загрузить из Mac App Store, но он довольно объемный, так что приступайте к работе прямо сейчас
MacPorts добавляет некоторые новые записи путей в вашу систему, но не обновляет их корректно. Чтобы избежать ошибок port command not found в дальнейшем, выполните
source.profile
На этом этапе вам также потребуется установить XCode из магазина приложений. После установки выполните эту команду, чтобы указать системе, где находится компилятор:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
Далее установите DNSMasq – простой DNS-форвардер, который позволяет нам перехватывать запросы к определенному IP
sudo port install dnsmasq
Установите Ruby и RVM
Скачайте и установите менеджер пакетов RVM с помощью этой команды:
bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
Затем запустите это, чтобы правильно добавить его в вашу систему:
-s '$HOME/.rvm/scripts/rvm' && '$HOME/.rvm/scripts/rvm'
Установите Ruby с помощью следующей команды; здесь будет использоваться последняя версия 1. 9. 3 на момент написания статьи, и я советую вам сделать то же самое, иначе остальная часть этого руководства, вероятно, не будет работать
rvm install 1. 9. 3
Если вы получите кучу случайного красного текста с ошибкой, запустите это вместо этого:
rvm install 1. 9. 3 –with-gcc=clang
тогда делайте
rvm use 1. 9. 3 default
чтобы установить версию среды ruby по умолчанию. Поздравляем, теперь в вашей системе есть Ruby!
Загрузите SiriProxy
Начните с использования Git для клонирования проекта SiriProxy на вашу машину
git clone git://github.com/plamoni/SiriProxy.git
cd /SiriProxy
Когда вы делаете это впервые, вы можете получить предупреждение безопасности об обнаружении файлов сценариев. Доверьтесь этому, если вы загрузили его из источника на github
Далее мы скопируем файл конфигурации
mkdir ~/.siriproxy
cp./config.example.yml ~/.siriproxy/config.yml
Откройте этот файл конфигурации с помощью вашего любимого текстового редактора и измените IP в верхней части файла с 0. 0. 0. 0 на локальный IP вашего Mac. Двигаемся дальше:
rvmsudo gem install rake bundler
rvmsudo rake install
Это должно установить SiriProxy для вас, но нам нужно будет повторить это позже, чтобы разобраться с ошибками. А пока давайте продолжим и создадим несколько сертификатов
Сначала нам понадобится установленный OpenSSL
sudo port install openssl
В первый раз, когда я запустил эту программу, она не сработала из-за многочисленных ошибок zlib; чтобы исправить это, мне нужно было выполнить
sudo port -f activate zlib
Далее мы сгенерируем сертификаты:
siriproxy gencerts
Если все идет хорошо, вы должны увидеть сообщение, подобное этому
Используйте опцию меню Finder->Go to Folder для ввода пути, указанного в выводе; вы должны найти там файл ca.pem. Отправьте его себе по электронной почте, а затем откройте его на устройстве с поддержкой Siri. Это приведет к переходу к настройкам и даст вам возможность установить его как новый сертификат. Нет, в первый раз на вашем сертификате будет написано недоверенный (красным цветом) – я сделал этот снимок экрана после установки, поэтому на нем написано доверенный
Вернувшись на свой Mac, выполните следующую команду, чтобы обновить некоторые необходимые произвольные файлы
bundle install
Настройте переадресацию DNS
Последний шаг – превратить ваш Mac в DNS-сервер, который может перехватывать звонки на серверы Apple и направлять их через SiriProxy. Снова, используя Finder->Go To Folder, откройте /opt/local/etc и отредактируйте dnsmsq.conf. Добавьте следующую строку, заменив 192. 168. 0. 6 на локальный IP-адрес вашего Mac
address=/guzzoni.apple.com/192. 168. 0. 6
Чтобы активировать службу DNSMasq, выполните следующее. Вам нужно будет делать это при каждом перезапуске (вместе с запуском SiriProxy, как мы опишем позже)
sudo /opt/local/sbin/dnsmasq
На iPad или iPhone откройте настройки сети и измените DNS-сервер WiFi на IP-адрес вашего Mac. Да, SiriProxy будет работать только через ваш домашний WiFi, но теоретически вы можете подключить VPN к вашему домашнему маршрутизатору, если хотите использовать его вне дома. Мы не будем рассматривать этот вопрос сегодня
Мне также нужно установить новое правило переадресации портов на маршрутизаторе; порт 53 должен быть перенаправлен на IP-адрес вашего Mac.(Это порт, используемый DNS)
Запустите SiriProxy
Последний шаг – запуск сервера SiriProxy и тестирование. Сделайте это, используя:
export rvmsudo_secure_path=1
Если на этом этапе вы получаете экран, полный ошибок типа ‘недопустимый символ’, как только вы нажимаете кнопку Home, продолжайте этот пункт. Вы получаете ошибки из-за старой версии CFPropertyList, включенной в пакет SiriProxy. Надеюсь, это будет исправлено в ближайшее время, так что, возможно, вам это не понадобится, но на всякий случай
Загрузите самую новую версию CFPropertyList следующим образом:
sudo gem install CFPropertyList -v 2. 1. 2
Теперь используйте F inder для Go To Folder ~/.rvm/gems/. Перейдите внутрь последней версии Ruby – в моем случае ruby-1. 9. 3-p385/ и скопируйте папку gems/CFPropertyList-2. 1. 2/lib в ruby-1. 9. 3-p385@SiriProxy/gems/CFPropertyList 2. 2. 0 . Да, проверьте подлинность и перезапишите либу старой версии либой из новой версии; ужасный хак, но это единственный способ, которым я смог заставить ее работать. Последнее необходимое исправление – это ручное редактирование файла gemspec. Для этого перейдите в каталог SiriProxy и откройте siriproxy.gemspec. Сделайте это из командной строки с помощью VI или Nano, используя:
sudo vi siriproxy.gemspec
Или просто используйте текстовый редактор. Замените строку, которая находится примерно в 4 строке снизу и содержит ‘CFPropertyList’ , на следующую:
s.add_runtime_dependency('CFPropertyList', '2. 1. 2')
Теперь запустите
rvmsudo siriproxy update
И все должно быть хорошо в мире. Запустите сервер снова и проведите повторное тестирование
rvmsudo siriproxy server
Проверьте его, попросив Siri ‘test siri proxy’, и вы должны получить ответ, что он работает. Посмотреть другие тестовые команды можно здесь
В следующий раз мы рассмотрим некоторые плагины SiriProxy, которые вы можете запустить и начать использовать эту штуку
Честно говоря, весь этот процесс оказался более сложным, чем я надеялся, но я надеюсь, что это руководство окажется полезным для некоторых из вас, так как у меня ушел буквально целый день на то, чтобы все сделать правильно. Есть ли у вас какие-либо рекомендации по плагинам SiriProxy, которые я должен проверить? Сработал ли этот процесс для вас? Дайте нам знать в комментариях, и я постараюсь вам помочь, но на странице проекта на GitHub полно гораздо более знающих людей
Комментировать