Sunday, August 09, 2009

iPhone + Linux + VirtualBox

У вас была ситуация, когда вдруг вы напрочь забыли пароль от винды, которая затаилась у вас на том дальнем маленьком разделе харда только затем, чтобы обновлять ваше йаМобилко? Вот у меня случилось недавно.

Но меня спасла Sun VirtualBox! Хотя тоже без пары приколов не обошлось, о чем я сейчас и расскажу. И если вы относитесь к тому типу людей, которые, увидев первое сообщение об ошибке обновления прошивки iPhone, начинают нервно бегать, грызть ногти и подвывать "ААааа! Нафига ж я вообще стал его обновлять, он же неофициальный, теперь никогда не включится!" , то, возможно, мой рассказ сэкономит вам полночи :)

Предположим, вы ужe поставили себе VirtualBox 3.0 на свой любимый линукс и взвели там какую-нибудь винду. Чтобы оставаться честным человеком и не нарушать лицензий, могу порекомендовать Windows7 RC - бесплатно аж до 2010 года, и отлично работает. Предположим, что и с сеткой у вас проблем нет - например, подсоединяем адаптер виртуалки через NAT. Потом Sun Guest Additions, iTunes, разрешить гостевой ОС доступ к USB, и (это уж как кому нравится, но я так делаю) сохранить snapshot - так, на будущее. Вдруг захочется снести тунец, в котором ваш бекап контактов лежит? Конечно, вместо снапшота виртуалки можно архивировать папку бекапа из скрытых-зарытых папок тунца, и называется она там нечитабельно.

Теперь самое интересное. Если воткнуть iPhone, разрешить виртуалке общаться с ним по USB, штатным способом начать его обновлять и уйти варить кофе, оставив вот такую примерно картинку :

то по возвращении, вместо сообщений "Все круто, расслабьтесь" и перезагружающегося телефона, непременно увидим месагу "Очень неизвестная ошибка номер х_Х" и нашего дружка в режиме восстановления. У меня так было, я ругался матом, даже скриншот не сделал. Но все оказалось достаточно просто, есть один маленький секрет ;)

Секретик:
  1. Во время обновления прошивки, iPhone несколько раз отваливается, и подключается как устройство другого типа. ( я насчитал 3 : в режиме DFU, в режиме восстановления и в норме)
  2. Гостевая ОС не видит этих новых устройств, пока мы не нажмем кнопку "подказать эту новую USB хрень"
  3. iTunes терпеливо ждет чуть не по минуте, пока iPhone покажется, но все же не бесконечно долго, и, в конце концов, кидает ошибку.
  4. Из первых трех пунктов делается несложный вывод: запустив этот долгий и нудный процесс, нельзя уходить от компа, надо постоянно погдядывать на лампочку активности USB нашей виртуалки, и если тунец показывает, что трудится над обновлением, а она долго не мигает, то надо быстренько на нее кликнуть и подключить то устройство, в которое превратился теперь iPhone.

Да, и еще: владельцам неофицальных мобилок на данный момент не рекомендуется обновляться на 3.1 - не включится, пошлет нафиг с вашей российской симкой. Зато есть 3.0 + redsn0w :) Правда вот, на линуксе я его так и не запустил - поставляется каким-то мутным бинарником, который в упор не видит библиотек, так что пользовал его все на той же виртуалке.

Удачи!

2 comments:

Mikler said...

Я пока допер, что тунец - это iTunes, прошло минуты четыре :)
А что за виртуалка? а то я юзаю ломанную ВМВарь. есть сильные отличия? :)

Unknown said...

Честно, не знаю отличий, т.к. Sun VirtualBox - моя любовь с первой установки. sudo apt-get install virtualbox-3.0 - и счастье твое, бесплатно!