И хотя Cyanogen Inc появились на свет лишь в прошлом году, собственно CyanogenMod уже давно является серьезным проектом с мощной ключевой командой и более чем 10 миллионами пользователей. Разработчики после объединения в корпорацию с удвоенными силами взялись за добавление новых функций в систему, о чем мы уже писали. Одной из целей команды стал переход на инкрементальные обновления прошивок, но как оказалось, процесс это очень сложный и требует много времени и сил.

С выходом Oppo N1 CM Edition, первого официального устройства с CyanogenMod, сертифицированного Google и имеющего на борту стандартные приложения поискового гиганта изначально, команда разработчиков начала получать свежий опыт. Недавно они на собственной шкуре ощутили гнев владельцев смартфона, ожидающих решение проблемы с неработающим фирменным аксессуаром O-Click. Недовольство было вызвано затянувшимся ожиданием исправления ошибки, о которой сообщили еще 7 января.

Пользователям кажется, что такая проблема решается очень быстро, потому патч должен приходить в день его написания, однако в реальности все оказалось сложнее. Для исправления таких локальных ошибок у серьезных производителей смартфонов принято отправлять на конкретную модель устройства инкрементальные OTA-обновления. Но оказалось, что процесс доставки таких маленьких "заплаток" не слишком отличается от аналогичного у полноценной прошивки. Именно этим CyanogenMod и объясняют большую задержку, рассказывая о тех шагах, что проходит инкрементальное обновление, пока доберется до смартфона обычного пользователя.

После обнаружения вызывающего ошибку кода создается исправляющий патч, который немедленно отправляется в собственный отдел оценки качества. Эти ребята проверяют, что "заплатка" действительно решает обнаруженную проблему и нормально устанавливается через OTA. Естественно, отслеживается и ситуация с новыми ошибками, которые может вызывать патч.

Кажется, что сейчас инкрементальную "OTA-заплатку" можно отправлять на устройства заждавшихся ее пользователей. Однако это не так, после отдела проверки качества прошивку с установленным патчем начинают тестировать в CTS (Compatible Test Suite). Эта система поставляется вместе с SDK и позволяет определить, насколько новая сборка совместима с Android. Для прохождения полного набора тестов и получения подтверждения требуется около 8 часов. Если произошел какой-то сбой, даже не связанный с работой самой прошивки, то приходится запускать CTS заново.

Наши внимательные читатели наверняка видели инфографику от HTC, описывающую процесс создания обновлений, а потому в курсе, что и это еще не все. Готовая прошивка отправляется OEM (в случае с N1, к Oppo) и Google, в случае успешной сертификации с их стороны CyanogenMod начинают отправку инкрементального OTA-обновления. В итоге от создания патча до его установки на смартфоне пользователя прошло около трех недель.

Cyanogen Inc понимают, что для привыкших к частым обновлениям постоянных пользователей прошивки эта цифра кажется чудовищной, и работают над тем, чтобы следующие OTA-пакеты приходили быстрее, но фантастики ждать все равно не стоит. В будущем инкрементальные патчи планируется вводить для все большего количества устройств. Для этого в тех версиях CyanogenMod, что устанавливались с помощью CM Installer, уже внедрено новое приложение обновления.

Естественно, новая система патчей не затронет "ночники", релиз-кандидатов и M-сборки, в этом нет необходимости, да и реализовать практически нереально из-за объемов работы. Стабильные сборки, загружаемые с официального сайта вручную, тоже пока не имеют механизма установки инкрементальных обновлений.

[via CM Blog]