The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Rust опередил C/C++ по объёму кода, добавляемого в платформу Android

14.11.2025 15:16

Компания Google подвела итоги использования компонентов на языке Rust в платформе Android. Стратегия по внедрению в Android методов безопасной разработки для нового кода оказалась успешной. В 2025 году впервые доля уязвимостей, вызванных ошибками при работе с памятью, оказалось меньше 20% от общего числа уязвимостей. Для сравнения в 2024 году этот показатель в Android составлял 24%, а в 2019 году - 76%. При этом средний показатель по индустрии продолжает оставаться на уровне 70%.

Использование кода на Rust при разработке системных компонентов Android началось в 2020 году. В 2025 году объём нового кода на Rust в Android превысил объём добавляемого за год кода на C и C++.

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

Помимо безопасности внедрение Rust положительно повлияло на скорость, продуктивность и качество разработки. Для кода на Rust зафиксировано в 4 раза меньше откатов изменений в результате выявления непредвиденных ошибок, а также снижение времени рецензирования на 25%.



При включении в состав Android изменений сопоставимого размера, изменения на Rust требуют примерно на 20% меньше ревизий, чем их эквиваленты на C++.

Данные показатели объясняются упрощением тестирования и смещением выявления ошибок на ранние стадии разработки, на которых ошибки становятся заметны ещё до того, как разработчик приступает к проверке кода. Кроме того, за счёт исключения накладных расходов на sandbox-изоляцию в коде на Rust удалось добиться повышения производительности.

Из недавних проектов, связанных с использованием Rust в Android, отмечено задействование в ядре Linux 6.12 первого широко применяемого драйвера на языке Rust, а также использование Rust при разработке прошивок и прикладных приложений. Помимо уже применяемого в ядре драйвера на Rust, совместно с компаниями ARM и Collabora на данном языке развивается новый драйвер GPU. Реализован на языке Rust и задействован в Google Play Services протокол Nearby Presence для обнаружения локальных устройств по Bluetooth. Для включения в следующий релиз приложения Google Messages запланировано включение новой реализации протокола MLS, написанной на Rust. В браузерном движке Chromium задействованы написанные на Rust парсеры для web-шрифтов, изображений PNG и формата JSON.

В настоящее время в Android на Rust написано около 5 млн строк кода, в которых выявлена лишь одна потенциальная уязвимость, вызванная проблемами при работе с памятью. Таким образом плотность подобных уязвимостей в коде на Rust составила 0.2 уязвимости на миллион строк кода. Для сравнения в коде на языках C и C++ данный показатель составляет около 1000 уязвимостей на миллион строк кода. Ключевым источником проблем в Rust является код, находящийся в unsafe-блоках. Доля подобного кода оценивается в 4% от всего кода, написанного на Rust.

Отмеченная выше уязвимость CVE-2025-48530 найдена в библиотеке Crabby Avif, включающей парсер и декодировщик для формата Avif. Проблема была выявлена сотрудниками Google до публикации релиза и не затронула пользователей. Уязвимость вызвана ошибкой в unsafe-блоке, приведшей к переполнению буфера. Отмечается, что даже если бы ошибка не была замечена её эксплуатация была бы блокирована поставляемой в Android системой распределения памяти Scudo, по умолчанию задействованной в прошивках для Google Pixel и некоторых других устройств.

  1. Главная ссылка к новости (https://security.googleblog.co...)
  2. OpenNews: В ядро Linux 6.18 принята реализация Binder IPC для Android, написанная на Rust
  3. OpenNews: Google переписал на языке Rust прошивку pvmfm, используемую в Android
  4. OpenNews: Около 21% нового компилируемого кода в Android 13 написано на языке Rust
  5. OpenNews: Rust включён в число основных языков для разработки платформы Android
  6. OpenNews: Методы безопасной работы с памятью позволили существенно снизить число уязвимостей в Android
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64251-rust
Ключевые слова: rust, android
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (46) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 15:43, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    лучший! надеюсь в будущем 99% и 1% для с и с++
     
     
  • 2.13, Аноним (13), 16:10, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Этому устаревшему мусору и 1% много - уж 1% допереписать вообще не проблема, и забыть их как страшный сон.
     
     
  • 3.62, Вапел Дупов (?), 17:40, 14/11/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.5, Аноним (5), 15:47, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    Основная проблем в таких отчётах это соответствие действительности. Весь год внедряли Rust, руководство хочет получить свои премии и бонусы ведь близится конец года. Что делаем - шлёпаем красивые отчётики с доказательством собственной экономической эффективности и о-па премия в кармане.
     
     
  • 2.22, Аноним (22), 16:24, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Основная проблем в таких отчётах это соответствие действительности.
    > шлёпаем красивые отчётики

    Казалось бы, коммиты публичны, как и сам код - или да проверь. Но нет, мы будет плести теории коварных растозаговоров. 😂

    > Весь год внедряли Rust

    Не год, а уже почти шесть лет:

    "Использование кода на Rust при разработке системных компонентов Android началось в 2020 году"

    > руководство хочет получить свои премии и бонусы

    Опять менеджеры гугла подгадили опеннетным экспертам! Конечно руководство получит бонусы: кочличество дыреней сократилось-то!

     
     
  • 3.36, Аноним (36), 16:44, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я и с публичными коммитами тебе что угодно нарисую. Тут и без продвигателей в опенсурсе возникают вопросы почему сделали так, а не иначе, а уж при желании я тебе такую сову на глобус натяну, что бейсик станет самым безопасным, быстрым и ревьюевымым языком в мире.
     

  • 1.6, Аноним (6), 15:47, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Ну естественно опередил, раст же надо как то продвигать и пиарить, да и чтоб качественно писать на расте, нужно реально очень много писать. Ну и если цель переписывание всего подряд, конечно кода будет больше.
    В то время как си код компактный и лаконичный, на си уже всё написано.
     
     
  • 2.24, Аноним (22), 16:26, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Ну и если цель переписывание всего подряд, конечно кода будет больше.

    Тем временем в новости:

    "В конечном счёте в Google решили не пытаться переписать старый код на языках безопасно работающих с памятью, а сосредоточиться на использовании подобных языков для нового кода."

     
     
  • 3.55, Аноним (55), 17:19, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У них там разве весь код не го с котлином? Какой им толк от си с плюсами (они вообще на них писали кроме пары либ), естественно, раст обгонит что угодно с его тысячами гигабайт.

    Нет, это всё прекрасно, но давайте трезво оценивать такие "новости".

     

  • 1.8, Арчи (?), 15:53, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    В статье противоречивая инфа про уязвимости. С одной стороны, говорится, что в новом коде уязвимостей нет, с другой стороны утверждается, что уязвимости в новом коде всегда растут экспоненциально. И только со временем их становится меньше. Времени по сравнению со старым кодом прошло еще не достаточно для таких громких заявлений. Я так думаю.
    Далее, количество строк кода, совсем не показатель. Говорит совсем ни о чем, только о том, что кода написали больше. Ну написали, молодцы.
    Опять-же недавно тут-же писали, что два аудита в новом коде ничего не нашли, а потом исследователи уязвимости таки нашли.
    Во-общем новость отдает какими новостями из газеты Правда, что советские микросхемы самые большие в мире. Ну-да, проект гугловский, имеют право.
     
     
  • 2.28, Аноним (28), 16:35, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Времени по сравнению со старым кодом прошло еще не достаточно для таких громких заявлений. Я так думаю.

    Тем временем в новости:

    В 2025 году впервые доля уязвимостей, вызванных ошибками при работе с памятью, оказалось меньше 20% от общего числа уязвимостей. Для сравнения в 2024 году этот показатель в Android составлял 24%, а в 2019 году - 76%. При этом средний показатель по индустрии продолжает оставаться на уровне 70%.

     
     
  • 3.42, Аноним (36), 16:48, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Когда я был студентом моему ментору не хотелось тратить на меня время и он соврал что якобы руководитель хочет меня уволить за то что я часто делаю ошибки (примерно также как и другие студенты). И я стал гораздо меньше ошибаться.
    Тут то же самое.
     
  • 2.40, VladSh (?), 16:46, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Где написано, что "уязвимости в новом коде всегда растут экспоненциально"?

    Про экспоненциальную зависимость была лишь одна фраза:
    "а для старого кода наблюдается экспоненциальная зависимость безопасности от времени - со временем в старом коде ошибки выявляются всё реже и реже."

    Так при чём здесь газета "Правда"?

     
     
  • 3.46, Арчи (?), 16:57, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    По смыслу статьи, и я имел ввиду под новым кодом, тот на котором пишут сейчас (или недавно). А под старым, тот на котором было написано много лет назад. Ведь "старый" код тоже когда-то был новым. Разве не так?

    А газета Правда имелась ввиду, что считать преимуществом количество написанного кода, все равно что при коммунистах писали, про самые большие микросхемы. Т.е. преимуществом (а на самом деле свидетельством отсталости) считался размер. И конечно-же, это была ирония.

     

  • 1.9, Аноним (9), 16:01, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > В настоящее время в Android на Rust написано около 5 млн строк кода

    Которые добавили примерно 0 фич к условному андроиду 4.4 до всяких растов. Так победим!

     
     
  • 2.23, Аноним (9), 16:25, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Crabby Avif, включающей парсер и декодировщик для формата Avif

    Crabby Avif 🦀 Avif parser/decoder implementation in Rust. Features: Supports dav1d (ASM/C), libgav1 (C++) or android mediacodec as the underlying AV1 decoder. Лол.

     
     
  • 3.58, Аноним (55), 17:21, 14/11/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     

  • 1.10, xsignal (ok), 16:02, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А Android Runtime написана на C++, шах и мат! Так что основой основ, самым надёжным фундаментом, всегда будут C и C++.
     
  • 1.11, Аноним (11), 16:02, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Про количество новых логических ошибок есть инфа?
     
     
  • 2.45, Аноним (36), 16:49, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Её не выгодно разглашать ;)
     

  • 1.12, xsignal (ok), 16:05, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А раст... Ну нравится вам язык с подтяжками, чтобы штанишки у тех, кто не умеет работать с памятью не падали - пользуйтесь на здоровье!)
     
     
  • 2.16, Аноним (13), 16:12, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Дело не в том что мы будем пользоваться, дело в том что мы вас заставим, некомпетентных в своей самоуверенности что _вы_ умеете работать с памятью.
     
     
  • 3.18, xsignal (ok), 16:16, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если что-то не работает по причине памяти - примеры в студию. Только не надо этих списков теоретических CVE, за которыми в реальности ничего не стоит.
     
  • 2.30, Аноним (28), 16:38, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Так у сисшники без подтяжек при работе с памятью "падают" в 70% случаев, или это какие-то неправильные сисшники...
     
  • 2.37, НяшМяш (ok), 16:44, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Человечество развивается, молотки эволюционируют в гвоздезабивные пистолеты, телеги в автомобили. И только сишники довольно урчат с палками-копалками.
     

  • 1.14, ddwrt (?), 16:11, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Лучшие времена Андроида прошли в эпоху 4.x.x. Сейчас постоянно рапортуют о каких-то улучшениях, а глаза мне говорят, что система превращается в свалку. Про кодовую базу даже боюсь представить что там творится.
     
     
  • 2.15, xsignal (ok), 16:12, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Про кодовую базу даже боюсь представить что там творится

    "Разнообразие")

     
  • 2.34, Аноним (28), 16:39, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Лучшие времена Андроида прошли в эпоху 4.x.x.

    Это который безбожно тормозил, тёк памятью и жрал батарейку то? Ну-ну...

     
     
  • 3.50, Арчи (?), 17:12, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    htc Desire HD (https://ru.wikipedia.org/wiki/HTC_Desire_HD), Android 4, заряжал по выходным, в течение недели активно пользовался, и так много лет.

    htc Wildfire E2 (https://www.htc.com/cis/smartphones/htc-wildfire-e2/), Android 10, при прочих равных (т.е. звонки, смс, почта) заряда хватает максимум на пару суток.

     
     
  • 4.59, Аноним (9), 17:34, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    У меня был такой, это если скайп на него не ставить. Сейчас скайп умер, но другие кодеры обленились, понатащили всяких котлинов, обмазались DI контейнерами и прочими базвордами, так что то же самое стало потреблять в 10ки раз больше оперативы и CPU.
     
  • 3.60, Пишу с 3 пня (?), 17:35, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это который безбожно тормозил, тёк памятью и жрал батарейку то? Ну-ну...

    Щито?? Samsung Galaxy S2 заряжал максимум раз в 3 дня, при том, эксплуатировал очень активно, смотрел видео, сидел а соцсетях, слушал музон. И самое збавное, что эта система для него была даже не родной.

    Современный телефон с несравнимо большим объёмом аккума пюмне приходится заряжать каждый день. И интерфейс у него жутко лагает по сравнению с тем, что было на Самсунге с Андроид 4.4.

     

  • 1.17, Аноним (17), 16:14, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    А всё почему? Потому что раст умеет безопасно работать с памятью!
     
     
  • 2.21, xsignal (ok), 16:20, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вот только прокладка между монитором и клавиатурой теперь мало что умеет...
     
     
  • 3.33, Ан333ним (?), 16:39, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да, вообще. На придумывают всяких ИИ и растов, и сидят тупеют.
     
     
  • 4.61, Пишу с 3 пня (?), 17:39, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ИИ классная штука, но только в виде справочника и brainstormer'а. Но находятся уникумы, которые выкладывают в гитхаб проекты написанные полностью с помощью ИИ, без аудита. ЧСХ, читая такой код можно нехило лулзов словить.
     

  • 1.25, Аноним (22), 16:31, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сейчас воины против Раста расскажут, как они повыкидавали свои андроидные смартфоны. Повыкидывали ведь? Не могут же они быть лицемерами, которые на словах воюют протиа Раста, а на деле уплетают за обе щеки устройства с этой "раковой опухолью".
     
     
  • 2.29, Ан333ним (?), 16:37, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Наоборот, они купят пиксели, гугл поддержат и будут с них рассказывать какие корпорации плахие, следят все такое...
     

  • 1.32, Медведь (ok), 16:39, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А если поискать аналитику про мед не от пчёл, то всплывают такие статейки:

    https://dl.acm.org/doi/pdf/10.1145/3763800

     
     
  • 2.41, НяшМяш (ok), 16:47, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Чё сказать-то хотел - что llvm кривое поделие на крестах?
     
     
  • 3.44, Медведь (ok), 16:48, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А самому почитать слабо? Я смотрю, ржавозависимым в штаны нагадить может ну вот прям каждый... Даже, закрыв глаза, допустим, что проблемы в llvm -- а что, у вас уже есть какой-то другой ржакомпилер?
     

  • 1.39, Аноним (39), 16:46, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В целом получается по важным производственным параметрам Rust "вроде не хуже" C++. Других выводов учитывая разные подходы в языках тут не сделать, т.к. структура издержек при разработке у них тоже возможно разная и не факт что выбранные показатели равноценны для обоих.

    Ну есть важная инфа для размышления и для тех и для других...

     
  • 1.49, Аноним (49), 17:08, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > В конечном счёте в Google решили не пытаться переписать старый код на языках безопасно работающих с памятью, а сосредоточиться на использовании подобных языков для нового кода.

    Ага. Помню, помню, как они в бравурных отчётах слегка упоминали о том, что выяснилось, что rust подходит не для всего.

    Где нужно учитывать разнообразие архитектур железа - rust не тянет.

    Так и будут тащить 2 языка теперь. То что полегче - парсеры и сетевые протоколы на раст. То что посложнее как и раньше.

     
     
  • 2.57, Аноним (57), 17:21, 14/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Правильно сделали 171 A Practical Guide to Transitioning to Memory-Safe Langu... большой текст свёрнут, показать
     

  • 1.52, Аноним (57), 17:17, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > плотность подобных уязвимостей в коде на Rust составила 0.2 уязвимости на миллион строк кода.
    > Для сравнения в коде на языках C и C++ данный показатель составляет около 1000 уязвимостей на миллион строк кода.

    0.2 vs 1000

    Чуть более, чем на три *порядка*. ЧТД.

     
  • 1.56, Аноним (56), 17:20, 14/11/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.63, Медведь (ok), 17:44, 14/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Из свеженького:

    > Команда Rust выпустила важное точечное обновление: Rust 1.91.1. Несмотря на то, что это точечное обновление, в Rust 1.91.1 исправлены две серьёзные проблемы, которые появились в предыдущей версии 1.91.0.
    > 1. Устранение сбоев Wasm и незаметного повреждения
    > 2. Исправление блокировки Cargo в системе illumos

    Вот же злобные сишники, опять пришлось за ними подчищать, ведь кто, кроме них, мог?... И никто из ржавозависимых не сделал гневной новости, позор!

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру