Для начала – необходимый инструментарий:
- iPhone 3g, iOS 4.2.x, jailbreak
- iTunes 10.1
- CCProxy
- iPhone USB Toolkit
- .NET Framework 3.5
- текстовый редактор
CCProxy и USB Toolkit можно скачать одним архивом
Подготавливаем iPhone
Для того, чтобы можно было настроить интернет через провод, ваш телефон должен быть подвергнут
Подготавливаем компьютер
Для начала необходимо установить .NET Framework, если он у вас еще не стоит. Наличие установленного iTunes также обязательно. Еще нужно установить CCProxy, дистрибутив которого вы найдете в архиве.
iPhone USB Toolkit распаковываем в любую удобную папку и сразу заходим внутрь. Видим такую картину:
Для чего все это нужно? Из всего этого добра (собранного каким-то добрым человеком) нам необходимо всего три файла:
1_start_ssh_tunnel.cmd - файл, отвечающий за запуск программы для создания SSH-туннеля между Айфоном и компьютером.
proxy_tunnel.cmd - файл, отвечающий за запуск программы для создания туннеля между Айфоном и прокси-сервером CCProxy.
winscp.cmd- отвечает за запуск файлового менеджера, с помощью которого можно извлечь из Айфона любой файл.
В папке lib лежат те самые программы и необходимые библиотеки.
На этом месте хотелось бы остановиться подробнее. Основная библиотека, которая отвечает за создание SSH-туннеля - iTunesMobileDevice.dll. Если в вашем случае программе не удается создать туннель, то попробуйте заменить библиотеку в этой папке другой версией. Эта библиотека устанавливается вместе с Apple Mobile Device Support (AMDS), который устанавливается вместе с iTunes. Но AMDS может быть удален и переустановлен, не затрагивая iTunes. Вот
В данном случае используется библиотека от версии AMDS 3.3.0.47.
Итак, шаг первый. Создаем SSH-туннель iPhone – PC. Запускаем 1_start_ssh_tunnel.cmd. Должно появиться вот такое окно:
Если окно не появилось, а вместо него появилась ошибка о том, что программа не может найти ASL.dll, это значит, что AMDS установлен не в стандартную папку. В этом случае вам нужно открыть файл 1_start_ssh_tunnel.cmd текстовым редактором и исправить первую строчку на свою:
Но будем считать, что окно у вас появилось. Его закрывать НЕ НУЖНО на протяжении всей работы в Интернете. Туннель установлен, и теперь нужно приниматься за самую сложную часть инструкции.
Чтобы все программы в Афоне, использующие доступ в Интернет, лезли не через EDGE/3G, нам необходимо прописать в файлах конфигурации Айфона общесистемный прокси. Другими словами, мы указываем, что все свои запросы в интернет программа должна адресовать не в EDGE/3G, а на наш прокси-сервер через наш SSH-туннель.
Итак, второй шаг - прописать в настройках Айфона прокси-сервер. К сожалению в настройках самого Айфона не предусмотрено такой возможности, поэтому придется лезть в файловую систему и руками через текстовый редактор править настройки. К счастью, это делается лишь один раз. В дальнейшем программы сами будут определять работать им через EDGE, либо через внешний прокси.
Туннель работает, запускаем winscp.cmd. Насколько я помню, на этом этапе нас спросят о создании ключа соединения. Нам нужно согласиться на создание и на сохранение, чтобы каждый раз впоследствии не создавать. После этого появится окно файлового менеджера:
Справа - содержимое Айфона. Слева - папка на локальном компьютере. На правой панели нам нужна папка /private/var/preferences/SystemConfiguration, из которой нужен файл preferences.plist. Его мы и будем править. Проблема в том, что на Айфоне этот файл хранится в бинарном виде и просто так отредактировать его не получится. Нужно сначала преобразовать его в формат XML, отредактировать, а затем преобразовать обратно в бинарный вид.
После долгих изысканий оказалось, что вместе с iTunes поставляется прекрасный конвертер из одного формата в другой. Его мы и будем использовать. Находится он по умолчанию в папке Program Files\Common Files\Apple\Apple Application Support\ и называется plutil.exe
В файловом менеджере winscp открываем на левой панели эту папку. Нам нужно в нее скопировать файл preferences.plist
Затем простая операция. Запускаем консоль, переходим там в эту папку и набираем команду plutil.exe -convert xml1 preferences.plist
Команда означает, что мы преобразуем файл preferences.plist из текущего формата в формат XML.
Хочу обратить внимание. В бинарном виде файл настроек имеет меньший размер, чем в формате XML:
После преобразования открываем файл текстовым редактором и находим вот это место:
Нужно вставить вот такой текст:
<key>Proxies</key> <dict> <key>ProxyAutoConfigEnable</key> <integer>1</integer> <key>ProxyAutoConfigURLString</key> <string>file:///private/var/preferences/proxy.pac</string> </dict>
После того, как текст добавлен, нужно сохранить файл и преобразовать его обратно в бинарный вид командой plutil.exe -convert binary1 preferences.plist.
Итак, файл настройки готов. Теперь его нужно залить обратно в Айфон в папку /private/var/preferences/SystemConfiguration.
То, что мы вписали в настройки, включает общесистемный прокси и указывает на файл с настройками прокси: proxy.pac. Этот файл находится в скачанном вами архиве, и его нужно поместить в папку /private/var/preferences/
В моем случае в этом файле прописан прокси 127.0.0.1 с портом 8118. Если вам нужен другой порт - исправьте.
После того, как файлы отредактированы и залиты в Айфон, последний нужно перезагрузить. После перезагрузки Айфона перезапустите туннель (1_start_ssh_tunnel.cmd) и проверьте, что Айфон не восстановил preferences.plist из резервной копии. Он любит так делать, если вы ошиблись и некорректно произвели изменения в файле. Проверку можно сделать по размеру, либо сконвертировав в XML-формат и найдя нужные настройки, либо сравнив по содержимому с файлом на компьютере (вы ведь делаете резервные копии, да?)
Если вы дошли досюда, значит самое сложное уже позади, туннель работает и файл настроек корректно записан в Айфон.
Теперь необходимо настроить CCProxy на то, чтобы он слушал нужный порт. Вспомните, какой порт вы указали в файле proxy.pac. Если вы его не трогали, то это порт - 8118. Иначе - тот, что указали вы.
Туннель запущен, наш прокси настроен. Теперь самый последний этап. Запускаем файл proxy_tunnel.cmd. Он создаст обратный туннель от Айфона до нашего прокси-сервера. На этом этапе опять может понадобиться создавать и сохранять ключ соединения. После того, как прокси-туннель запущен, видим такое окно:
Все. Можно проверять работу Интернета в Айфоне. Запустите Сафари, Сидию, почтовый клиент или любую программу, которая работает с Интернетом. Если все работает как нужно, то мы увидим запросы:
Если вы производили настройку на порт, отличный от 8118, то необходимо перед запуском поправить файл proxy_tunnel.cmd
Еще одно уточнение. Для корректной работы Сафари необходимо, чтобы были прописаны настройки GPRS в телефоне, иначе Сафари ругнется на неправильную настройку Интернета и совсем откажется работать.
Еще, если ПК имеет доступ в Интернет так же через прокси, то необходимо в CCProxy включить каскадное проксирование и вписать настройки вашего прокси-сервера.
Подведем итог. Первый раз всегда самый трудный. Если вы прошли все эти шаги, и у вас все заработало - вы молодец. Последующие подключения делаются совсем просто:
- Подключаем Айфон к USB
- Запускаем SSH-туннель (1_start_ssh_tunnel.cmd)
- Запускаем CCProxy
- Запускаем прокси-туннель (proxy_tunnel.cmd)
- ...
- PROFIT!
Вот и все. Сложно только на первый взгляд. Успехов!