Нет Wi-Fi? Подключаем Интернет на iPhone через USB

27.02.2011, Денис Ежков

интернет, Apple iPhone, USB

Так получилось, что у моего Айфона вышел из строя Wi-Fi модуль, после чего задача выхода в Интернет из дома резко усложнилась. Живу я в городе, где сервисными центрами Apple даже не пахнет, поэтому возможности заменить неисправный модуль нет. Я решил перелопатить Google на предмет ответа на вопрос «А можно ли получить Интернет на Айфоне через дата-кабель?». После довольно продолжительных изысканий был найден способ, позволяющий провернуть подобное в Windows. Кстати, способ будет полезен также и тем, у кого дома нет Wi-Fi роутера.

Для начала – необходимый инструментарий:

  • iPhone 3g, iOS 4.2.x, jailbreak
  • iTunes 10.1
  • CCProxy
  • iPhone USB Toolkit
  • .NET Framework 3.5
  • текстовый редактор

CCProxy и USB Toolkit можно скачать одним архивом отсюда.

Подготавливаем iPhone

Для того, чтобы можно было настроить интернет через провод, ваш телефон должен быть подвергнут джейлбрейку. Также через Cydia необходимо установить OpenSSH и SBSettings (да-да, придется разориться немного на EDGE/3G). OpenSSH необходим для того, чтобы с телефоном можно было связаться через протокол SSH. SBSettings дает возможность быстрого включения/отключения SSH-сервера и всей внешней периферии (Bluetooth, Wi-Fi, 3G, EDGE).

Подготавливаем компьютер

Для начала необходимо установить .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. Вот на этой странице представлены ссылки на все версии 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 включить каскадное проксирование и вписать настройки вашего прокси-сервера.

Подведем итог. Первый раз всегда самый трудный. Если вы прошли все эти шаги, и у вас все заработало - вы молодец. Последующие подключения делаются совсем просто:

  1. Подключаем Айфон к USB
  2. Запускаем SSH-туннель (1_start_ssh_tunnel.cmd)
  3. Запускаем CCProxy
  4. Запускаем прокси-туннель (proxy_tunnel.cmd)
  5. ...
  6. PROFIT!

Вот и все. Сложно только на первый взгляд. Успехов!



Комментарии

01.03.2011 07:11 От: tima2030kz

И на второй раз тоже! Проще просто скачивать что надо на компьютер,а потом перемещать это в iTunes и синхронизировать на телефон.Дешево,просто и сердито!

01.03.2011 20:20 От: Денис Ежков
tima2030kz 01.03.2011 07:11:
И на второй раз тоже! Проще просто скачивать что надо на компьютер,а потом перемещать это в iTunes и синхронизировать на телефон.Дешево,просто и сердито!

Да кто ж спорит. На вкус и цвет. Я например терпеть не могу через тунца синхронизироваться. Мне проще зайти с телефона в тот же AppStore, Installous или Cydia и установить сразу в телефон, что нужно.

02.03.2011 11:22 От: tima2030kz

У меня iPhone 4 ,свободный от блокировок. Разлочки ему не нужны. Джейлбрек тоже делать нет смысла. Поэтому мне проще производить загрузки официально. У меня стоит уже около 130 программ и все бесплатные...Портить телефон ради Сидии не хочется. Проще наверно истратить несколько долларов и загрузить пяток платных программ,если сильно захочется.Впрочем,кому как удобнее...

02.03.2011 11:30 От: Денис Ежков
tima2030kz 02.03.2011 11:22:
У меня iPhone 4 ,свободный от блокировок. Разлочки ему не нужны. Джейлбрек тоже делать нет смысла. Поэтому мне проще производить загрузки официально. У меня стоит уже около 130 программ и все бесплатные...Портить телефон ради Сидии не хочется. Проще наверно истратить несколько долларов и загрузить пяток платных программ,если сильно захочется.Впрочем,кому как удобнее...

Видимо, вы не разобрались в проблематике вопроса. :) Оставим пустые споры. Этот мануал имеет право на существование уже хотя бы потому, что он единственный рабочий, и раз этот способ нашёл применение в моём телефоне, то я уверен, что найдутся и другие люди, которым это нужно :)

03.03.2011 20:21 От: exentrich

Все прошло хорошо, до шага с файлом proxy_tunnel.cmd , он выдает такую ошибку:

Looking up host "127.0.0.1" Connecting to 127.0.0.1 port 22 Network error: Software caused connection abort FATAL ERROR: Network error: Software caused connection abort

В чем может быть проблема? Я менял iTunesMobileDevice.dll на установленный в системе, но это не помогает. Уверен в preferences.plist и остальном.

03.03.2011 20:39 От: Денис Ежков
exentrich 03.03.2011 20:21:
Все прошло хорошо, до шага с файлом proxy_tunnel.cmd , он выдает такую ошибку:

Looking up host "127.0.0.1" Connecting to 127.0.0.1 port 22 Network error: Software caused connection abort FATAL ERROR: Network error: Software caused connection abort

В чем может быть проблема? Я менял iTunesMobileDevice.dll на установленный в системе, но это не помогает. Уверен в preferences.plist и остальном.

Забыл уточнить :) ssh_tunnel.cmd ловит только одно подключение. Потом его надо перезапустить. Прошу прощения.

Объясняю. Вы запустили ssh_tunnel, потом winscp и отредактировали preferences.plist. winscp уже задействовал один коннект. Почему-то при попытке второго коннекта ssh_tunnel падает. Просто перезапустите его и сразу (без winscp) запускайте proxy_tunnel

21.03.2011 11:17 От: MazaHACKa

А у меня ssh_tunnel запускается, и работает до первой попытки подключения. То есть консоль висит, до того как запускаю proxy_tunnel или winscp(preferences.plist я через ifunbox редактировал)... Перед вылетом в консоли пишется следующее: new connection ! AMDeviceNotificationSubscribe = -402653085 callback error !

SSH запустил через SBSettings, телефон не блокировал.

21.03.2011 11:25 От: Денис Ежков
MazaHACKa 21.03.2011 11:17:
А у меня ssh_tunnel запускается, и работает до первой попытки подключения. То есть консоль висит, до того как запускаю proxy_tunnel или winscp(preferences.plist я через ifunbox редактировал)... Перед вылетом в консоли пишется следующее: new connection ! AMDeviceNotificationSubscribe = -402653085 callback error !

SSH запустил через SBSettings, телефон не блокировал.

Возможно, из-за другой версии iTunesMobileDevice.dll Поиграйтесь с разными версиями. Попробуйте откатиться на более старую версию Тунца

21.03.2011 12:10 От: MazaHACKa

Решил проблему заменой iTunesMobileDevice.dll, но теперь при попытке коннекта выбивает таймаутом..

21.03.2011 17:09 От: MazaHACKa

Эту проблему тоже решил... просто использую туннель i-funbox'а. Вроде всё сделал по туториалу, но когда захожу в Safari ничего не происходит, и в консоли proxy_tunnel не пишет о request'ах

14.04.2011 21:25 От: barik88

Скажите пожалуйста, а для 2ж есть вариант?

14.04.2011 21:40 От: Денис Ежков
barik88 14.04.2011 21:25:
Скажите пожалуйста, а для 2ж есть вариант?

К сожалению, не могу сказать про 2g ничего. Просто в руках не было такой модели для опытов :(

27.04.2011 00:11 От: eegee

При запуске winscp он закрывает окошко с ssh_tunnel, а потом выдает ошибку (при попытке подключения): "Network error: Software caused connection abort" В чем проблема?

06.06.2011 15:12 От: eteng500

у меня iPhone 4, не запускается winscp.cmd но файл изменил через iFunBox. после запуска файла proxy_tunnel.cmd у меня нет запросов от РС. за чего это может происходить? может для iPhone 4 нужно по другому делать настройки? что то я не нашол версии AMDS 3.3.0.47, может 3.2.0.47?

06.06.2011 15:21 От: eteng500

как CCProxy включить каскадное проксирование и вписать настройки вашего прокси-сервера????

12.06.2011 20:56 От: maximaizer

все настроил как написано, но после запуска proxy_tunnel.cmd ничего не происходит: "connecting to 127.0.0.1 port 22 " и все


Новое сообщение:
Complete in 32 ms, lookup=1 ms, find=31 ms
Новости

«Билайн» открыл предзаказ на iPhone SE

Если вас заинтересовала новинка Apple - iPhone SE, то можно оформить предзаказ на этот девайс на сайте интернет-магазина Билайн

Apple Watch как пульт управлениям камерой GoPro

Официальное приложение от известного производителя экшн-камер GoPro получило обновление, добавившее интересую функциональность.

Аналитическое агентство KGI рассказало об iPhone 6C

Аналитическое агентство KGI представило свое видение смартфона, который может выйти на рынок под именем iPhone 6C. По мнению аналитиков в модельном ряду Apple он займет нишу «доступной» модели и будет представлять собой улучшенную версию iPhone

Степень проникновения iOS 9 достигла 70%

Компания Apple обнародовала статистику, согласно которой по итогам ноября iOS 9 установлена на 70% совместимых устройств. Еще 22% совместимых с iOS 9 устройств работают под управлением iOS 8, а 8% - продолжают использовать более старые версии iOS.

Что нас ждет в iPhone 7?

Учитывая текущий цикл обновления продуктов Apple, от iPhone 6S глобальных изменений никто не ждал. Однако, с iPhone 7 ситуация совершенно иная. Это должно быть принципиальное обновление «яблочного» смартфона, которое принесет не только улучшенный функционал, но и обновленный дизайн.

Apple Watch 2 могут быть представлены во 2 квартале 2016 года

Со смарт-часами Apple связано много интересных нюансов. В частности, компания Apple так и не раскрыла данные об их продажах, хотя для об успехах в реализации других устройств она рапортует весьма охотно. Впрочем, не стоит забывать, что Apple Watch являются первопроходцем, своеобразной пробой пера, а со вторым поколением этого гаджета ситуация может быть совершенно иной.

Объявлены российские цены iPad Pro и Apple Pencil

11 ноября компания Apple начнет прием предварительных заказов на iPad Pro и Apple Pencil в 40 странах, включая Россию.

Продажи Apple Watch не превысили 7 млн. устройств

Не секрет, что компания Apple любит рассказывать о своих успехах. Она охотно рапортует о росте продаж iPhone и других успехах. Однако это совершенно не касается Apple Watch, которые производитель даже не выделил в отдельную категорию.

Panic Mode – тревожный режим для iPhone / iPad

Патентное ведомство США опубликовало заявку компании Apple, в которой описывается методика использование дактилоскопического сенсора для активации Panic Mode (режима паники), в котором устройство выполняет ряд специальных действий.

Компания Apple подвела итоги финансового года

2015 финансовый год, для американской компании Apple завершившийся 26 сентября, принес отличные результаты. Выручка за 4 квартал составила $51,5 млрд, чистая прибыль – $11,1 млрд. Относительно 2014 года рост выручки составил 22%, при этом прибыль выросла еще больше – на 30%.