Хотелось бы поделиться своим взглядом на обновления с точки зрения разработчика рантайма Android. Часть нашей большой команды находится в России, я занимаюсь подсистемой Java, оптимизацией виртуальной машины и исправлением недочетов по мелочам. Зона нашей ответственности – всё, что выше ядра и ниже приложений. Мы хотим добиваться максимальной эффективности приложений, в том числе — энергоэффективности. Это то подразделение Samsung, которое не видно пользователю, но очень важное, ведь ошибка в этом слое ведет к неправильному поведению многих приложений.
Сегодня мы поговорим о том, как устроено обновление системы Android на текущий момент, каково мнение вендоров на этот счёт, и какие новые тенденции наблюдаются на ближайшие годы. А также советы пользователям: как часто обновляться, какие патчи ставить и как помочь разработчикам быстрее находить баги.
Источник — xkcd
Как обновляться
Есть проблема, которая заключается в том, что большое количество пользователей, как оказалось, вообще не обновляют свой телефон после покупки. Многие ошибки не случились бы, если бы пользователи вовремя обновляли свой телефон. Несколько лет назад обновления ставились не так часто, надо было ставить много галочек, периодически нажимать кнопку апдейта. Сейчас в современных версиях Android все достаточно просто, достаточно поставить галочку при покупке телефона, и оно будет обновляться.
Если апдейты выключить, то мы не получаем исправления критических ошибок. Да, могут обновиться отдельные приложения через Google Play, но серьёзные ошибки, особенно в безопасности, остаются неисправленными, а часть людей, которые не нажали эту кнопку или не знают, как это сделать, продолжают жаловаться на ошибки в приложениях.
Также, достаточно интересен момент, как вендор может повлиять на использование только самых новых образов ОС. Например, в устройствах Samsung за последние несколько лет есть такая фича, как Rollback Prevention: хардверные фьюзы, которые кодируют минимально приемлемые версии ОС. В старых версиях могут содержаться известные уязвимости, поэтому просто так старую операционку вы не загрузите на телефон.
Обновления в корпоративной среде
На B2B рынке есть свои особенности. Там обновляться можно только по рекомендации и под чутким руководством IT и ИБ департаментов. Корпоративным, пользователям нужно внимательно прислушиваться к рекомендациям IT-служб, а IT-службам использовать решения, позволяющие минимизировать риски. Например, Samsung Knox E-FOTA.
Там функционал такой:
- Выборочное обновление определённого списка устройств
- Контроль списка используемых в компании прошивок
- Выбор времени для обновления, согласно графику работы
Как будут выглядеть обновления в будущем
Сейчас идет тенденция на модуляризацию Android. В долгосрочных перспективах, Google ведет разработку новой операционной системы Fuchsia, она ещё достаточно сырая, но принципы, заложенные там, уже потихоньку переходят в Android. Одна из вещей – это модуляризация. Из монолитной операционной системы выделяются некоторые компоненты, которые могут обновляться независимо, через Google Play, точно так же, как приложения. Google пошла на этот шаг, поскольку их тоже не устраивает ситуация, когда люди не ставят обновления, плюс они пытаются уменьшить фрагментацию своих устройств, чтобы компонента была меньше завязана на вендора и больше на Google. Рядовой пользователь не знает, что такое Android Runtime, и говорить «Не хотели бы вы скачать новую версию Android Runtime?» выглядит немножко глупо. Поэтому Google внедряет систему невидимого апдейта. Она в принципе существует давно, например для GMS (Google Mobile Services), эта система основана на плагинах, и там плагины обновляются невидимым образом. Такой же принцип сейчас Google внедряет и для базовых компонентов Android. То есть в какой-то момент мы получим операционную систему, которая будет редко обновлять ядро, но по факту она будет обновляться часто в своих подсистемах. Даже будет не нужна перезагрузка телефона. Сейчас переходный период. У монолитной системы есть плюсы, есть минусы (вспоминаем полемику Торвальдса и Таненбаума 27-летней давности), но сейчас Google пошёл к микроядерной архитектуре и независимому обновлению компонентов.
Девелоперы приложений хотели бы иметь стабильную систему и меньшую степень фрагментации. Но не всегда это плюс для производителей телефонов, поскольку уменьшение фрагментации ведет к меньшей дифференциации, поскольку мы уже не можем внедрять новые оптимизации в этот компонент в случае, если обновление происходит из Google Play. Это другая сторона медали. А пользователь в скором времени будет освобожден от необходимости думать о том, нужно ли ему обновить тот или иной компонент. В дальнейшем Google сделает систему такой, что если вы покупаете телефон и подключаете Google Play, то вы автоматически подписываетесь на все обновления.
Как помочь разработчикам
Очень важен фидбек от пользователей, нужно ставить галочку, чтобы автоматически отсылать его. Какие-то проблемы могут быть решены просто при помощи небольшого обновления операционной системы. На основе фидбека Samsung решает, что же именно нужно исправлять и чем пользователи недовольны, например, отслеживает время старта приложения – конечно, если человек согласился отсылать эти данные и поставил соответствующую галочку.
Итак, подводя итог, что мы, как разработчики, ждем от пользователя:
- Обязательно ставить обновления безопасности, и делать это сразу
- Отправлять фидбек и не стесняться сообщать о том, что что-то не работает
- Если вы корпоративный пользователь, то следовать регламенту, принятому в вашей компании
Автор: Иван Майданский,
Expert Software Engineer
AI Compiler Lab
Исследовательский центр Samsung в России
Комментарии (44)
musicriffstudio
21.10.2019 16:37-4Единственное правильное желание пользователей — запретить любые обновления навсегда.
dartraiden
21.10.2019 21:48+1Единственнок правильное желание пользователей — стрелять себе в ноги? Нет.
questor
21.10.2019 16:44+1Проблема в том, что у вендоров для бюджетных телефонов особо и нет обновлений. Вон лежит у меня redmi 3s — до сих пор на шестом андроиде, потому что официальную прошивку не найти. Хотя вроде даже что-то обещали, что семёрку сделают. Но толи так и не выложили (давно не проверял), толи на офсайте бардак, но что-то пользоваться неофициальными билдами как-то желания нет: как-то неохота, что камера отвалится или ещё что.
Тем более как-то нет доверия к тому, что нужно какое-то заявление делать на сайте производителя, чтобы его 5-10 дней рассматривали — и это для простой разблокировки загрузчика! Б-р-р!
В общем, я бы и не против обновляться, но как-то этот процесс непрост для обычного пользователя.
Maawal
21.10.2019 21:57Может быть, я скажу непопулярную мысль, но почему, покупая бюджетный телефон, покупатель должен ожидать, что телефон будет обновляться в дальнейшем на новые версии ОС? Вы, например, можете быть уверены, что телефон будет также шустро работать на более новых версиях андроида? При этом, учитывая, насколько miui тяжеловесна сама по себе?
А что касается поддержки — обновления безопасности приходят, обновления интерфейса — тоже. По моему мнению, странно ожидать, что производитель будет делать новую прошивку для модели, на которой эта прошивка не сможет нормально работать.
Что касается заявки на разблокировку — от этого бреда, к счастью, уже отказались и право на разблокировку есть теперь у всех ми-аккаунтов, но зато сделали так, что теперь с момента привязки аккаунта к телефону в меню разработчиков и до, непосредственно, разблокировки загрузчика может пройти до месяца.VolCh
22.10.2019 09:27В целом это вполне оправданные ожидания. Чем телефон принципиально отличается от компьютера в этом плане? А обновления ОС компьютера приходить могут десятилетиями. Поставил XP когда-то и обновлялся себе до 10...
belmike
22.10.2019 10:44+1Да, вы правы, очень не популярная мысль… Вы даже не удосужились посмотреть, что это за модель и, какие у нее характеристики. 3GB ram, 8 ядер с частотой 1.4, 32GB rom. Если для для современной прошивки это мало, то кто-то ну оооочень зажрался… Что касается стоимости. Я не помню сколько он стоил три года назад (сейчас он стоит ~100$). Но точно не 100 долларов. Для меня бюджетный телефон это все, что меньше 100 долларов. Если аппарат, в момент выхода на рынок, стоит меньше 100 долларов, это бюджет. И ему можно все простить. Но 200, 300 и выше отдать за телефон и через год получить не обновляемый кирпич… Для меня это дорого. И не потому, что нет денег. Просто я считаю глупым на телефон выкидывать столько денег каждый год, два. Еще хоть какой-то в этом был смысл в начале эры android, когда телефоны были дико тупыми и топовые модели хоть как-то позволяли ими пользоваться, но сейчас, это просто развод. Конкретно эта модель до сих пор по железу оптимальна, но прошивок официальных не будет… Как то так… P.S. У меня эта модель телефона. С ней вообще нет проблем с производительностью. Что прошивка от производителя, что кастомные прошивки. Просто такая политика у всех вендоров телефонов, а не в том, что прошивка не потянет «бюджетный» телефон.
questor
22.10.2019 10:58К вашей непопулярной мысли нет никаких претензий. Покупатель возможно и согласен, что покупая бюджетный телефон он будет без обновлений — но проблема ведь не в покупателе, а в том, что это вдруг именно покупатель оказывается виноват в отсутствии обновлений.
И вот именно об этой ситуации я и говорил. Я своим телефоном вполне доволен. За свои 15 тысяч рублей я приобрёл неплохое железо, с хорошим соотношением цена/качество. Я и хотел обновиться, но вендор не шевелится.
Yuriy_krd
22.10.2019 08:43По поводу обновлений для бюджетных телефонов не совсем согласен. Имею два телефона — один — бюджетная Нокия 1 (цена на момент покупки 4 тыс) и достаточно дорогой личный. Так вот на Нокию обновления приходят почти каждый месяц, Нокия обновилась с 8 на 9 андроид. А личный телефон обновился всего 1 раз, и то, в пределах версии. На 9-ку так и не перешел и производитель подзабил на модель
kovserg
21.10.2019 20:05Вы преподносите обновление как что-то хорошее и нужное. Хотя если взглянуть со стороны пользователя ему это нафиг не надо и только лишняя головная боль. Вчера телефон работал, а сегодня всё по другому. И потом нынче телефон это сугубо одноразовое поделие и его проще выкинуть и приобрести новый чем разбираться что там фатально улучшили. Более того если взглянуть на обновления то они приводят только к увеличению потребления ресурсов. Например google play с 15мб уже приближается к гигабайту. Тот же viber и whatsapp после обновления на многих телефона пишут — упс надо еще гигабайтик, а то не влазим.
ps: Тезис «Кода без ошибок не бывает.» лучше интерпретировать по другому чем больше программа тем больше ошибок в ней. Не видел ни одного обновления которое уменьшало бы количество кода. Так все обновление это добавление новых ошибок. Получаем всё растёт как ком, больше исправлений -> больше ошибок -> еще больше исправления ->…musicriffstudio
21.10.2019 23:02именно.
Пользователь может добровольно обновлять (виндовс, андроид, офис, визуал студио, нужное подчеркнуть) только если ему делать нечего.
Если ему нужно использовать по назначению, а не просто поиграться — пользователь гуглит «как отключить обновления навсегда».
aleksandros
22.10.2019 12:56Во-во. Автор как-то умалчивает, что обновления содержат не только исправления ошибок, но и новые «удачные» дизайнерские решения. На вскидку. Если в 8-м Андроиде на Samsung S8 можно было включить вспышку либо одним, либо двумя нажатием на значок (в интерфейсе камеры), то в 9-м всегда требуется два. И конечно не обошлось без неуместной анимации, которая ещё больше затягивает. Так что, ошибки может и есть, но они не видны, а вот такие бесючки, которые ещё и сделаны специально, наблюдаешь по сто раз за день.
VolCh
23.10.2019 07:39Причём нормальных ченжлогов перед установкой обновления и возможности выбрать то, что нужно — нет.
MKMatriX
21.10.2019 21:24Хотите чтобы пользователи обновляли закрытие багов — не меняйте интерфейс. Совсем. Хотите обновить интерфейс — делайте это там где пользователи могут отказаться не потеряв в безопасности. И пожалуйста, не убирайте баги, которые для некоторых пользователей стали фичами, добавляйте им настройки.
dartraiden
21.10.2019 21:52
Кроме того, вспоминая другую известную картинку — не стоит так уж потакать пользователю в его желании наступать в горшок с говном.aleksandros
22.10.2019 14:12Насчёт интерфейса он во многом прав. У меня где-то лежит старенький Samsung S4. К примеру, у него дни, на которые установлен будильник, видны за километр, образно говоря. Потом был Samsung S6. Чтобы увидеть то же на нём приходилось едва ли не всматриваться. Мало того, что сам шрифт был размером миллиметра 3, так ещё «активные» дни отличала какая-то невнятная обводка толщиной в пиксель и другой цвет букв — что-то серо-голубое вместо просто серого. Сейчас пользуюсь Samsung S8, особых улучшений нет. По прежнему всё какое-то бледное, неконтрастное и мелкое, хотя диагональ вдвое больше чем у S4, а разрешение раз в 5.
Neurasthenic
22.10.2019 10:45Ага, пользователь должен денег за смарт. Пользователь должен делиться данными и по совместительству быть бетатестером прошивок, пока вендор не наиграется и не забросит поддержку. Дай бог на какой нибудь удачной фазе своих экспериментов это случится.
Но как бы это сказать… Это игра в одни ворота, причём за счёт пользователя.
А вот вендорам не кажется, что оплатив устройство пользователь должен получить возможность отката прошивок, если ему не зайдет обнова? Причём для этого ему нужно дать вменяемый инструмент. И вакханалию с невозможностью разблокировки загрузчика можно расценивать как плевок в ясны очи (привет Хуавей).В общем все делается так, чтоб покупатель не был хозяином своего устройства.
Так что проблема намного шире, чем кажется
Delion
22.10.2019 10:50«уменьшение фрагментации ведет к меньшей дифференциации, поскольку мы уже не можем внедрять новые оптимизации»
Шта?..
DaemonGloom
22.10.2019 14:10Если говорить про Самсунг — то часть пользователей может добровольно оставаться на старых прошивках из-за удаления в свежих версиях функций, которыми они пользуются.
Например — LinuxOnDex. Кому он мешал, что его решили убить в android 10? Что вообще такого кардинально изменилось в системе, что простую связку lxd+vnc+terminal решили убить? При этом настолько же качественный вариант другие разработчики сделать не смогут — ибо у них нет доступа к namespaces, который есть только у Самсунга.
MrSweeney
23.10.2019 11:01Ничего не имею против конкретного человека в лице топикстартера, но Самсунг в плане обновлений, подкладывает свинью.
Если с топ линейкой S проблем не много, то вот с А серией, в плане обновлений, это беда.
Устройство А5 2017, после 2 последних обновлений начал так жестко глючит, что стал работать в разы хуже заброшенного китайцами LeEco Le2, с которого я и перешёл на A5.
До этого, во втором обновлении после выхода устройства, забрали функцию "картинка в картинке". При том, что на более бюджетной J серии она есть.
У коллеги А6 2018, и после обновы с ONE UI он также глючит жесточайшим образом. Пользоваться устройством становится проблематично.
И что самое обидное, что видимо, Самсунг специально замедлил А серию. Либо обновления на столько багованные, что опять же, не красит компанию Самсунг.
Если я в 2018 году брал свой А5 в одну руку, и iPhone X в другую, выполнял одни и теже действия, и А5 уступал в доли секунды по быстродействию, что характеризовало его как хорошее устройство. То сейчас, мне не до сравнения с iPhone, мне хочется его об угол разбить.
В семье А5 у меня и и жены. Куплены с разницей в полгода. У коллеги А6.
Проблемы аналогичные. И именно после обновлений и "исправления ошибок".
P.s. никаких рутов, сток прошивка со всеми последними обновлениями. KNOX жив. Хард-ресет пробовал 2 раза.
sena
> Есть проблема, которая заключается в том, что большое количество пользователей, как оказалось, вообще не обновляют свой телефон после покупки
Конечно я не отношусь к большинству, хотя обновляю крайне редко, признаю. Это только потому что после получения рут обновления не ставятся… Зачем делать получение доступа рут таким сложным? Почему бы Гуглу не исправить этот баг?
screwer
FOTA обновления с SecureBoot происходят на блочном уровне, т.е. не прфайлово, а посекторно. Рут дает возможность вносить изменения в ФС. Если хотя бы один сектор переместился — есть риск получить кирпич на выходе, даже если пофайлово все абсолютно идентично.
Обновляйте прошивкой полного образа, вручную.
aamonster
Вы уверены насчёт "посекторно"? Звучит достаточно странно (привычный формат обновлений – хэши старых файлов + содержимое новых – выглядит надёжнее), но чем чёрт не шутит...
khim
aamonster
Не, ну если нужно обновлять каждый файл на системном разделе – тогда да, но и тогда придётся как минимум посчитать хэш всего раздела...
khim
Даже если не каждый. Сравните то время, которое ставятся обновления Windows и обновления Android… и это ещё у вас на десктопе железо мощнее.
aamonster
Я лучше сравню на андроиде OTA и накатывание из update.zip через recovery, это объективнее.
khim
Объективнее, чем что? OTA и uptade.zip используют практически одентичные алгоритмы, только OTA ещё и пытается мимнимизировать объём.
С файлами ни OTA, ни uptade.zip не работают…
aamonster
Я просто оставлю ссылку на привычные мне update.zip: http://4pda.ru/forum/index.php?showtopic=205817
ss-nopol
.
sena
Я так и прошивал помню, но это было давно. По-моему после этого надо было заново ставить все приложения.
khim
И всё равно ничего не работает. Посмотрите на то, как обновляются Ubuntu или Windows. Воплей про то, что обновление что-то где-то, в очередной раз, поломало — вагон.
Они, собственно, и решили. Вернее Google решил, а Samsung использовал. Обновления переводят систему из одного известного состояния в другое. Если систему кто-то «потрогал грязными лапками» и она не находится в одном из известных состояний, то дальше вопрос обновлений — это уже не к производителю.
Зависит от того чем прошивать. Если официальными средствами — да, всё сносится. Опять-таки из соображений что «если сюда кто-то влез и что-то испоганил, то есдинственный способ гарантировать, что закладок не осталось — это всё вернуть в девственно-чистое состояние».
ss-nopol
У меня всё отлично работает. Если кто-то влез в систему и что-то там сломал — это его проблемы. Никому не придёт в голову обвинять в этом создателя дистрибутива.
Гугл и Самсунг решили какую-то свою надуманную проблему, создав другую, более серьёзную проблему. Это не решение, это ленивый костыль. Если уж так хотелось снять с себя ответственность за обновление модифицированных инсталляций, то достаточно было бы вывести сообщение о том что система модифицирована и ответственность мы не несём.
Я не нашёл как это обойти. И вообще процесс получения рут специально сделан излишне сложным. На некоторых телефонах без каких-то левых приложений и не получишь.
Эти «соображения» не выдерживают никакой критики. Если кто-то влез и что-то изменил, то можно сообщить об этом пользователю и предоставить ему решать, что он хочет сделать.
khim
Хотелось не «снять с себя ответственнось», а «сделать так, чтобы люди, поломавшие подобным образом систему не звонили бы в техподдержку». Эта проблема была вполне себе решена.
Это не от Гугла зависит. На Гугловых телефонах всё просто.
Разумеется. Потому что требование отсуствие доступа к
root
у на телефонах, где можно установить Netflix — это тоже вполне себе жёсткое требование. С ним, правда, пока не очень получается: пока ещё способы получить root без отключения от Google Play находятся… над этим работают.Как при этом гарантировать, что у вас не будет доступа к Google Play и Netflix?
В этом же задача (пока не решённая) заключается…
ss-nopol
Эта задача появилась до появления Нетфликса.
И я не совсем понял, откуда взялась странная идея гарантировать отсутствие доступа таким образом? И главное, зачем?
khim
Например концепция BYOD предполагает, что администратор (а не владелец устройства) определяет — когда с него будут удалены конфиденциальные документы. Банк-клиенты часто хотят, чтобы у вас не было возможности что угодно с телефона копировать. И так далее.
Чем дальше в лес, тем таких требований больше. Пока что на телефонах root слишком легко доступен — но над этим работают… пока — с переменным успехом.
ss-nopol
> Хотелось не «снять с себя ответственнось», а «сделать так, чтобы люди, поломавшие подобным образом систему не звонили бы в техподдержку». Эта проблема была вполне себе решена.
При нынешнем отсутствии конкуренции можно вообще техподдержку отключить. Я думаю вся беда в этом и очень надеюсь что в скором времени это изменится. Потому как меру знать надо.
khim
Ваше желание или нежелание иметь root'а ничего в этом процессе не изменит: людей, которые хотят, чтобы вы не контролировали ваш телефон на много порядков больше, чем людей, которые считают это проблемой, увы.
ss-nopol
Гуглу с Самсунгом и прочим корпорациям. Кому же ещё?
Очень надеюсь и верю что это утверждение ложно. И что Либрем это только первая ласточка.
khim
Думаю желающим потратить свои деньги на ложное чувство безопасности и впредь мешать не будут.
Почему ложное? Потому что для тех «трёх с половиной гиков», которые будут готовы в эти игры играть можно и наружку выставить — не настолько это затратно.
А вот ваше предложение «сделать получение root'а несложным на массовых смартфонах» — боюсь спецслужбы не одобрят. Тут уже бюджета может и не хватить.
ss-nopol
Не, без массовости Либрем не выживет. Помрёт как и Нео 1973… Зато открытое железо может начать выпускать, например… Самсунг или Хуявей или прочие китайцы с русскими. В количествах, которые приведут к нормальной цене. И это будет бомба.
Это да…
khim
Знаете — у меня есть знакомый эсперантист, который вот так же рассуждает. Столько лет, сколько я его знаю: «а если вдруг все жители Земли выучат эсперанто и будут его использовать для общения — это будет круто». При этом зачем будут учить последний 1% жителей — он ответить может (что и самоочевидно), а вот зачем будут учить первый 1%… нет. Но без первого процента не будет и последнего…
Я вижу массу причин, которые могут побуждать Samsung и Huawei выпускать закрытые устройства (доступ к Netflix и деньги от спецслужб, хотя бы) и ни одного столь же денежного — против.
Так почему это случится-то?
Ну почему помрёт-то? Продавать гикам копеечные устройства с накруткой в тысячу процентов — это неплохой бизнес-план. Почему USB-свистки за €84 могут продаваться, а телефоны за двойную-тройную цену — нет?
Так что всё у них будет хорошо… но на Samsung и Huawei — не рассчитывайте. Нормальных людей сильно больше и заработать на них проще… хотя маржа и меньше, но продажи больше — на несколько порядков.
khim
А если у вас не инжинерная прошивка, то вам root и «не положен» в принципе… так что то, что его непросто получить — это не баг, а фича. И компромиссы тут невозможны… Netflix не поймёт, условно говоря.