Я хотел попробовать SiriProxy для некоторых Проекты Arduino для домашней автоматизации, но я отказываюсь покупать новый телефон, когда мой iPhone 4 все еще работает нормально (да, я перестал использовать свой HTC One X
; 6 месяцев с Android более чем достаточно для меня). Но потом я понял; У меня уже есть Siri, на моем iPad 3. Конечно, я мог бы использовать это? Действительно, вы можете. Так что в этом уроке я расскажу вам, как заставить SiriProxy работать с вашим iPad 3 и Mac OS X — хотя большая часть этого будет иметь отношение только к Mountain Lion.
Я также предупреждаю вас заранее, что это довольно сложная вещь, и почти все это делается в командной строке, и хотя я постарался разбить ее шаг за шагом точно так, как это работает для меня, вам может потребоваться Google некоторые ошибки себя, как и когда они возникают.
Требования
- iPad или iPhone с возможностями Siri. Я не буду показывать, как взломать Siri на старых устройствах с использованием поддельных серверов, поэтому не спрашивайте.
- Mac OS X. Вы также можете установить SiriProxy на Linux, но я не буду пробовать это сегодня.
- iOS6.1
Подготовка
Загрузите установщик pkg для вашей версии OS X с MacPorts.org. MacPorts позволяет нам устанавливать различные утилиты UNIX, которые были портированы на Mac. Вам также необходимо установить XCode, который можно бесплатно загрузить из Mac App Store, но это сложная загрузка, поэтому начните прямо сейчас.
MacPorts добавляет некоторые новые пути к вашей системе, но не обновляется правильно. Чтобы команда порта не нашла ошибок позже, запустите
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-> Перейти в папку опция меню для ввода пути, указанного в выводе; ты должен найти 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 должен быть перенаправлен на ваш Mac IP. (Это порт, используемый DNS)
Запустите SiriProxy
Последний шаг - запустить сервер SiriProxy и протестировать его. Сделайте это с помощью:
export rvmsudo_secure_path=1
Если в этот момент вы получаете экран, полный ошибок, таких как «недопустимый символ», как только вы нажимаете кнопку «Домой», продолжайте с этим битом. Вы получаете ошибки из-за более старой версии CFPropertyList, включенной в пакет SiriProxy. Надеюсь, это будет исправлено в ближайшее время, поэтому вам это может не понадобиться, но на всякий случай ...
Загрузите новейшую версию CFPropertyList, как это:
sudo gem install CFPropertyList -v 2.1.2
Теперь используйте FИндер для перехода в папку ~ / .rvm / gems / . Навигация внутри самого последнего Ruby - в моем случае рубин-1.9.3-P385 / и скопировать драгоценные камни / CFPropertyList-2.1.2 / Библиотека папка для ruby-1.9.3-p385@SiriProxy/gems/CFPropertyList 2.2.0 . Да, аутентифицируйте и перезаписывайте старую версию lib с помощью lib из более новой версии; ужасный взлом, но единственный способ, которым я мог заставить это работать. Последнее исправление необходимо вручную отредактировать 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 «протестировать siri proxy», и вы получите ответ, что он запущен и работает. Посмотреть больше тестовых команд здесь.
В следующий раз мы рассмотрим некоторые плагины SiriProxy, которые вы можете запустить, и фактически начнем использовать эту вещь.
Честно говоря, весь этот процесс оказался намного сложнее, чем я надеялся, но я надеюсь, что это руководство окажется полезным для некоторых из вас, поскольку буквально весь день у меня ушло на то, чтобы получить права. Есть ли у вас какие-либо рекомендации для плагинов SiriProxy, которые я должен проверить? Этот процесс работал для вас? Дайте нам знать в комментариях, и я постараюсь помочь вам, но страница проекта GitHub полна гораздо более знающих людей.