iOS vs Android: адское обновление системы по воздуху
Вот вам наглядная демонстрация того, почему iOS до сих пор рулит.
Нынче стало модно ругать iOS, мол, тормозит, Apple уже не торт и, вообще, все плохо в «яблочном» мире, в то время как Android яростно рулит, педалит и очень быстро работает. Доля истины во всем этом есть, но это лишь доля. Не стоит в праведном гневе забывать о плюсах одной платформы и минусах другой. В поддержку этого я расскажу о своих увлекательных приключениях с обновлением Nexus 6, которые начались с момента его покупки два месяца назад и продолжаются по сей день.
Эталонный гуглофон, в том числе и по софту
Незнакомые с моим творчеством читатели легко могут заподозрить Романа Юрьева в бездумном фанбойстве в отношении к Apple и ее продукции. Знакомые же помнят, что я всегда старался относиться к обеим конкурирующим платформам ровно и если уж не горел дикой любовью к Android, воспринимал ее адекватно. Вот примеры:
Тем не менее, основной платформой всегда оставалась iOS в силу того, что для меня лично она банально удобнее, работать в ней комфортнее, плюс экосистема (iPhone + iPad + MacBook), как бы избито это ни звучало. Да, я экспериментировал, устраивал себе переезды на Android, но всегда возвращался на iOS, о чем так же детально рассказывал ранее:
При этом всегда хвалил смартфоны серии Nexus за их длительную и качественную программную поддержку, сравнивая ее с таковой у Apple. Все-таки продвигаемые и поддерживаемые самой Google устройства, оперативно получающие программные обновления в течение двух, а то и более лет. Хороший пример — Nexus 4 2012 года выпуска, которым владеет моя жена и который до сих пор еще бодрячком на фоне Android-смартфонов того же периода, но от других производителей. Официальный Android 6 ему уже не светит, но до Android 5.1.1 он был обновлен, и продолжает получать плановые ежемесячные апдейты. Работает довольно шустро и в качестве звонилки + минипланшета жену вполне устраивает.
Наэкспериментировавшись с Android-устройствами сторонних производителей, решил и себе для работы, гаджетоманской души и в качестве дополнительного смартфона приобрести эталонный «гуглофон» в лице Nexus 6. Уж очень он мне понравился, когда обозревал аппарат и сравнивал его с iPhone 6 Plus.
6-дюймовый AMOLED-дисплей (очень нравится именно эта технология и размер) с QHD-разрешением, отличный дизайн и, конечно же, всегда новейший Android на борту. Вот только не ждал я, что у эталонного «гуглофона», так сказать, «лица Android» все может быть настолько нестабильно и печально со стандартными функциями обновления прошивки. И, скажу вам честно, это мое самое большое разочарование в Google и ее платформе. Но, обо всем по порядку.
OTA-битва «iOS против Android»
OTA — это аббревиатура от «Over-The-Air», то есть, обновление «по воздуху», когда прошивка закачивается в смартфон через Wi-Fi или сотовую сеть, после чего автоматом устанавливается, сохраняя все данные пользователя. В Android эта фишка появилась немного раньше, чем в iOS, чем любители «робота» долгое время троллили владельцев iPhone/iPad. Хотя в итоге реализация OTA оказалась лучше у Apple.
Так, буквально на днях программно обновились практически все устройства Apple. Вышла iOS 9.1, OS X 10.11.1 и watchOS 2.0.1. У меня пять устройств Apple: iPad mini 2, iPad Air 2, iPhone 6 Plus, MacBook 12" и Apple Watch — все они обновились в течение получаса практически одновременно. Как происходил процесс:
- «Настройки → Основные → Обновление ПО → Установить iOS 9.1» для iPad и iPhone.
- «Запуск приложения Watch на iPhone → Основные → Обновление ПО → Установить watchOS 2.0.1» для Apple Watch.
- «App Store → Updates → Установить обновление OS X El Capitan 10.11.1» для MacBook.
- 30 минут и все гаджеты обновлены автоматом. При этом я не принимал никакого активного участия в процессе, а просто пил чай и расслаблял мозг после тяжелого трудового дня.
Чуть позже вышло OTA-обновление Android 6 Marshmallow для Nexus 6. Как происходил процесс:
- Система сообщила, что «есть обновление, нажмите для установки».
- Нажал, перешел в меню установки, тапнул по кнопке «Загрузить» и… облом. Моментально высветилось «Не удалось загрузить», а кнопка сменила название на «Загрузить снова».
Давил кнопочку много раз, ждал несколько часов (вдруг ажиотаж и все такое, сервера Google не выдержали) — никакого эффекта. Каких-то манипуляций с системой я не проводил — ни рута, ни разблокированного загрузчика, ни даже стороннего лаунчера. Все стоковое, чистое и аккуратное. Как я решил проблему? Потратил час, а то и больше времени на то, чтобы установить обновление по шнурку, используя «Терминал», Android SDK, ADB и команду «sideload», манипуляции с самим смартфоном, чтобы ввести его в нужный режим (типа DFU в iPhone). В общем, было весело и чуть позже я расскажу насколько весело, но приключения начались намного раньше. Буквально сразу после того, как я распечатал новенький, в пленочках Nexus 6 и включил его, что происходило в Москве в час ночи. Если бы не тот опыт, стоивший мне четырех часов напряженного труда, то апдейт на Android 6 я бы ставил намного дольше.
Итак, что же произошло. Я распечатал Nexus 6, включил его, сделал базовую настройку, введя свою учетную запись Google. Потом операционная система бодро мне сообщила: «Есть обновление до Android 5.1, давай-ка его установим?». На душе стало хорошо от ощущения того, что у меня в руках Android-смартфон с самой лучшей программной поддержкой от самой «корпорации Добра»! Конечно же, я согласился. Обновление шустро скачалось с серверов Google, телефон перезагрузился, начался процесс установки, все шло хорошо, но в конце я увидел вот такую печальную картину:
Повторюсь, это новенький, чистый флагманский Nexus 6, на который устанавливалось загруженное самой же Google ПО. «Ну, ладно, вдруг какой небольшой глюк. Сейчас перезагружу, и все заработает. В крайнем случае, накачу обновление снова», подумал я и зажал на несколько секунд кнопку питания, чтобы аппарат перезагрузился. Как же я был наивен…
Система вроде бы загрузилась и начала стандартную оптимизацию программ, которая происходит каждый раз после обновления ОС. Причем процесс этот оооочень неспешный, даже на флагманских устройствах. В моем случае на него уходило минут 15–20. Вот только до конца он не доходил, на 49-м приложении телефон сам по себе уходил в перезагрузку и так по кругу.
У владельцев смартфонов Apple тоже случались казусы, я читал об этом, хоть сам с проблемами при OTA-обновлении iOS-устройств не сталкивался, хотя постоянно обновляю их именно так с того самого момента, как появилась возможность. Что в таком случае делать пользователю iPhone? Подключить смартфон к компьютеру через USB-кабель, запустить iTunes и нажать на одну кнопку «Восстановить iPhone». После этого автоматом загрузится нужная прошивка, установится, а если до того человек не поленился сделать резервную копию данных, то он успешно восстановит еще и адресную книгу, заметки, СМС и информацию/настройки из сторонних приложений.
Что же в таком случае предлагает Google? Сейчас я вам расскажу этот анекдот, который длится уже много лет. Ведь в Android поддержка OTA появилась раньше, чем в iOS, а вот с системой экстренной помощи «корпорация Добра» не разобралась до сих пор.
Наивный Рома полез в поисковик Google с запросом о восстановлении прошивки в Nexus, надеясь, что есть какое-то простое однокнопочное решение на манер такового у Apple. Ага, щаз!
Вот коротенько и в формате инструкции во что вылились мои 3-часовые приключения:
Необходимо скачать и установить Android Studio
А чтобы сделать это, нужна установленная Java в системе. Если речь об установке Android 6, то помимо упомянутого выше дистрибутива в процессе установки Android SDK потребует найти и установить еще и Java SE Development Kit 7.
Затем потребуется пройти в скрытую папку «Библиотеки», найти там «Android\SDK\platform-tools». Всем этим хламом вы, извините, загаживали систему только ради двух файлов: adb и fastboot, которые используются для манипуляций с прошивкой Nexus.
Необходимо скачать нужную стоковую прошивку с Google Developers — их там много всяких, выбирать придется аккуратно.
После загрузки ее надо будет распаковать во временную папку, куда так же забросить и упомянутые выше файлы.
Для прошивки Nexus даже стоковой прошивкой нужно разблокировать загрузчик (bootloader).
Во-первых, загружаем Nexus в режиме «bootloader/fastboot», зажав на выключенном устройстве кнопки «громкость вниз + питание».
Во-вторых, проверяем, а видит ли компьютер телефон, для этого в «Терминале» переходим в папку с прошивкой и раздобытыми выше файлами и вводим команду «fastboot devices». Если она покажет серийный номер подключенного телефона, значит все ок, можно двигаться дальше и вводить команду «fastboot oem unlock», затем перезагрузить телефон командой «fastboot reboot», после чего вновь ввести его в режим перепрошивки.
Теперь можно перепрошивать скачанной ранее и распакованной стоковой прошивкой. Снова через «Терминал».
И это оказалось не так просто, как я думал. Необходимо запустить скрипт «flash-all.sh», который по идее все сделает сам, но он ничего не делал. Гении Google не дописали там перед командами fastboot пару символов, если мне не изменяет память вот такие «./». Ок, руками все вписал, сохранил скрипт, началась перепрошивка, модема, еще чего-то — всего там по очереди заливается 5 или 6 файлов — но на самом большом, собственно операционной системе, высветилась ошибка. Телефон не перепрошивался и оставался «кирпичом».
Я долго и нудно искал причину, которая оказалась в какой-то неправильной версии модуля fastboot. В принципе сам виноват, так как пытался сэкономить время и взял рекомендуемый в инструкции архив с парой упомянутых модулей. В общем, таки поставил Android Stodio, взял вроде бы правильные файлы, но вновь случился затык. Не перепрошивался телефон. И все это в 3 часа ночи. После тяжелого и напряженного дня. Забрасывать процесс не хотелось, так как под утро все полученные знания забудутся и придется снова собирать мозги в кучу, а времени на это тогда не было. Нужно все сделать сразу и забыть.
Прошивка всех файлов по очереди вручную.
Да, я все-таки добил процесс, найдя еще один метод, когда каждый файл прошивки закачивается в телефон вручную в строго определенной последовательности. После этого телефон ожил, заработал уже на Android 5.1.1, я все настроил, установил приложения и их тоже настроил. (Нормальная система резервирования данных на Android? Нет, не слышал.) На все про все еще минут 40 работы. А потом обнаружил, что вместо 64 ГБ система видит 32 ГБ. Оказалось, надо было после перепрошивки сделать так называемый «Wipe» — полностью обнулить смартфон, все кэши и т. п. Хотя это и так происходит в процессе прошивки.
Повторный Wipe.
Как вы понимаете, пришлось загружать телефон в режиме перепрошивки, находить в сервисном меню нужную команду, обнулять аппарат, после чего вновь устанавливать все свои приложения и настраивать Nexus.
Примерно таким образом мне пришлось устанавливать и OTA-обновление Android 6, скачав нужный файл (важно не ошибиться, так как «защиты от дурака» там нет — зашьешь что-то не то, получишь «кирпич»), установив Android Stodio (так как все лишнее я с удовольствием снес после выше описанных приключений) и поработав с «Терминалом». Да, было намного быстрее, и не пришлось вновь переустанавливать все приложения, заливать медиаконтент и настраивать телефон. Но это операция далеко не для простых обывателей.
Доколе, Google?
К чему весь этот большой текст выше? Во-первых, надеюсь, он поможет кому-то из владельцев Nexus. Во-вторых, я хотел показать, насколько ВСЕ ПЛОХО у Google с, казалось бы, базовой функцией — восстановления телефона после сбоя, который произошел по вине самой компании.
Ладно, я опытный пользователь, умеющий работать с «Терминалом», пользоваться поиском Google, и не раз перепрошивавший смартфоны практически на всех актуальных платформах. А что в таком случае делать не столь опытным людям? Человек купил дорогой смартфон, самый лучший от Google, с самой хорошей программной поддержкой и получил «кирпич» сразу после первого обновления. Допустим, он потратил свое время и отнес аппарат в магазин/сервис/знакомому, ему перепрошили Nexus, а потом вновь облом, так как на автомате нельзя установить важное обновление системы.
На этом фоне, друзья, вопли, мол «Apple уже не та», «все у компании плохо», «iOS пошла под откос» и прочие выглядят смешно. Да я молиться готов на Apple за то, что компания экономит мое время вот уже с 2008 года, когда всю свою работу я перевел на Mac и окончательно переехал на экосистему компании. Сколько было сменено фирменных ноутбуков, операционных систем, смартфонов и до сих пор у меня мое рабочее пространство, контент, приложения, документы еще с тех самых времен. Я переезжаю на новый ноутбук с помощью Time Machine или обновляю OS X вообще без напряга по нажатию одной кнопки. Я меняю свой смартфон на новый и в течение получаса, пока пью чай или кофе, получаю все свои приложения, данные и даже «сейвы» в игрушках. Да я только лишь на переезд между пятью Android-смартфонами потратил времени и сил на порядок больше, чем за семь лет работы с двумя десятками устройств Apple.
Так вот, доколе Google? Что мешало компании за столько лет выпустить простое однокнопочное решение, которое позволяет хотя бы стоковую прошивку восстановить по нажатию одной кнопки? Я не думаю, что у столь могущественной корпорации нет на это возможностей. Да и разных моделей в серии Nexus единицы. Но компания этого не сделала, и если у вас возникнут проблемы с самым лучшим и весьма дорогим «гуглофоном», то это будут только ваши проблемы, на которые «корпорации Добра» плевать.
А что касается проблем iOS 9, то со временем все они будут решены. По крайней мере, раньше в подобных ситуациях Apple не подводила. У Android тоже проблем хватает до сих пор и их немало. В том числе и у самой новой версии. Но чтобы понимать это, необходимо пользоваться обеими платформами одновременно. Я пользуюсь и до сих пор делаю выбор в пользу iOS, как основной. Она продолжает экономить мое время, нервы, силы и, соответственно, деньги.
Android же пока личное время лишь тратит. Надеюсь, в будущем Google решит все «детские» проблемы платформы.