The OpenNET Project / Index page

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

Root-уязвимость в инструментарии управления пакетами Snap

02.12.2022 13:49

Компания Qualys выявила третью в этому году опасную уязвимость (CVE-2022-3328) в утилите snap-confine, поставляемой с флагом SUID root и вызываемой процессом snapd для формирования исполняемого окружения для приложений, распространяемых в самодостаточных пакетах в формате snap. Уязвимость позволяет локальному непривилегированному пользователю добиться выполнения кода с правами root в конфигурации Ubuntu по умолчанию. Проблема устранена в выпуске snapd 2.57.6. Обновления пакетов выпущены для всех поддерживаемых веток Ubuntu.

Интересно, что рассматриваемая уязвимость была внесена в процессе исправления похожей февральской уязвимости в snap-confine. Исследователям удалось подготовить рабочий эксплоит, предоставляющий root-доступ в Ubuntu Server 22.04, в котором кроме уязвимости в snap-confine также задействованы две уязвимости в процессе multipathd (CVE-2022-41974, CVE-2022-41973), связанные с обходом проверки полномочий при передаче привилегированных команд и небезопасной работой с символическими ссылками.

Уязвимость в snap-confine вызвана состоянием гонки в функции must_mkdir_and_open_with_perms(), добавленной для защиты от подмены каталога /tmp/snap.$SNAP_NAME на символическую ссылку в момент после проверки владельца, но перед обращением к системному вызову mount для bind-монтирования в него каталогов для пакета в формате snap. Добавленная защита сводилась к переименованию каталога /tmp/snap.$SNAP_NAME в другой каталог в /tmp со случайным именем, если он существует и не принадлежит пользователю root.

При эксплуатации операции переименования каталога /tmp/snap.$SNAP_NAME исследователи воспользовались тем, что snap-confine также создаёт каталог /tmp/snap.rootfs_XXXXXX для корня содержимого пакета snap. Часть "XXXXXX" в имени выбирается случайно при помощи mkdtemp(), но пакет с именем "rootfs_XXXXXX" может пройти проверку в функции sc_instance_name_validate (т.е. идея в том, чтобы имя $SNAP_NAME приняло значение "rootfs_XXXXXX" и тогда операция переименования приведёт к перезаписи каталога /tmp/snap.rootfs_XXXXXX с корнем snap).

Для того чтобы добиться одновременного использования /tmp/snap.rootfs_XXXXXX и переименования /tmp/snap.$SNAP_NAME было запущено два экземпляра snap-confine. Как только первый экземпляр создавал /tmp/snap.rootfs_XXXXXX процесс блокировался и запускался второй экземпляр с именем пакета rootfs_XXXXXX, что приводило к тому, что временный каталог /tmp/snap.$SNAP_NAME второго экземпляра становился корневым каталогом /tmp/snap.rootfs_XXXXXX первого. Сразу после выполнения переименования второй экземпляр аварийно завершался, а /tmp/snap.rootfs_XXXXXX подменялся с манипуляцией состоянием гонки, как при эксплуатации февральской уязвимости. После подмены с первого экземпляра снималась блокировка выполнения и атакующие получали полный контроль над корневым каталогом snap.

На последнем этапе создавалась символическая ссылка /tmp/snap.rootfs_XXXXXX/tmp, которая использовалась функцией sc_bootstrap_mount_namespace() для bind-монтирования доступного на запись реального каталога /tmp в любой каталог ФС, так как вызов mount() следует символическим ссылкам перед монтированием. Подобное монтирование блокируется ограничениями AppArmor, но для обхода этой блокировки в эксплоите были задействованы две вспомогательные уязвимости в multipathd.

  1. Главная ссылка к новости (https://blog.qualys.com/vulner...)
  2. OpenNews: Локальные root-уязвимости в инструментарии управления пакетами Snap
  3. OpenNews: Критическая уязвимость в PolKit, позволяющая получить root-доступ в большинстве дистрибутивов Linux
  4. OpenNews: Уязвимость во Flatpak, позволяющая повысить привилегии в системе
  5. OpenNews: Обновление Flatpak 1.10.2 с устранением уязвимости, нарушающей sandbox-изоляцию
  6. OpenNews: Опасные уязвимости в утилитах beep и patch
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/58242-suid
Ключевые слова: suid, qualys, snap
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (74) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 15:01, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Ладно
     
     
  • 2.50, Аноним (50), 19:10, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    как и ожидалось - троянский шнапс!
     
     
  • 3.89, Тот_Самый_Анонимус_ (?), 05:31, 04/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Сморти шире. Линь — троян, ведь каждую уязвимость внедряли умышленно.
     

  • 1.2, Андрей (??), 15:11, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Ну наконец!

    Дождались!

     
  • 1.3, Аноним (3), 15:15, 02/12/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –5 +/
     

     ....ответы скрыты (2)

  • 1.5, pashev.ru (?), 15:18, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Бггг.
     
  • 1.6, Аноним (6), 15:23, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ништяк, что это жс программисты только не придумывают, лишь бы не использовать dirfd.
     
     
  • 2.25, Аноним (25), 16:39, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тупяк, что это опеннет эксперты только не напишут, лишь бы не думать.

      

     
     
  • 3.28, Аноним (6), 16:52, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Тупяк, что это опеннет эксперты только не напишут, лишь бы не думать.

    Так даже в расте давно озабатились тем, что файлы могут подменять, если их не идентифицировать однозначно. А тут не догадались. При чём тут эксперты?

     

  • 1.7, Аноним (7), 15:25, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Мда.. это даже не ping у freebsd, это просто с какой нить веб странички можно поиметь юзера..
     
     
  • 2.32, Аноним (32), 17:04, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >Уязвимость позволяет локальному непривилегированному пользователю добиться выполнения кода с правами root в конфигурации Ubuntu по умолчанию.

    Не может

     

  • 1.9, Аноним (9), 15:42, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему Canonical не может отказаться от Snap?
     
     
  • 2.11, Аноним (11), 15:59, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем им это делать?
     
  • 2.12, user32.dll (?), 15:59, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Чтобы от Mi-6 пакеты правильные совать
     
  • 2.47, fuggy (ok), 18:57, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Выпилили бы snapd и уязвимость была бы решена.
     
  • 2.65, Аноним (65), 22:51, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Почему Canonical не может отказаться от Snap?

    Ещё не время, сперва Маркуша будет пыжится-пыжится, а потом на всех обидится и закопает свой велосипед, согласно устоявшейся уже традиции...

    А если реально смотреть, то если они сольют snap в пользую флатпака, то они нехило так сдадут позиции намного быстрее, чем сейчас, ибо для конченного пользователя нет разницы на каком дистре будет флатпаками намазано.

     
  • 2.85, Аноним (85), 15:06, 03/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что самонадеянные пакеты это будущее линукс, хочешь ты этого или нет.
     

  • 1.10, Аноним (11), 15:57, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    Как мы можем видеть из новости, Go вполне подоходит для промышленного применения — CVE на нём пишутся не хуже, чем на C.
     
     
  • 2.14, user32.dll (?), 16:01, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно, столовый нож отрезает пальцы не хуже, чем канцелярский, другое дело ржавый нож, да?
     
  • 2.15, Анонушка (?), 16:15, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    snap-confine написан на си, и фиксы касались кода на си
     
     
  • 3.66, Аноним (65), 22:54, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > snap-confine написан на си, и фиксы касались кода на си

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

    Это ещё в новости забыли упомянуть про тот случай, когда в снапстор залили заведомо вредоносных пакетов.

    Сикурность во все поля.

     
  • 2.16, Аноним (16), 16:15, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    CVE и на р.... отлично пишутся. Так что ты пердеж не засчитан.
     
  • 2.21, Аноним (21), 16:33, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Только фикс делали в файле mount-support-test.c
    https://github.com/snapcore/snapd/commit/21ebc51f00b8a1417888faa2e83a372fd29d0

    Опять сишные дыры! Причем в Go проекте!

     
     
  • 3.43, Аноним (11), 17:47, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    То есть в данном случае мы действительно можем наблюдать как ненастоящие сишники прокрались в проект и cve напрогали? Ой-вей.
     
     
  • 4.46, Аноним (21), 18:32, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А в ping и openssl тоже ненастоящие сишники прокрались? А в grub2? А в zlib?
    Ой-вей, сколько ж их развелось однако. А настоящие вообще существуют? Или они как драконы или единороги?
     
  • 3.74, Аноним (74), 23:29, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ехал void через void видил void void void.
     

  • 1.13, Аноним (13), 16:01, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Шляпа космонавта, ненужно! Самое нормальное это appimage.
     
     
  • 2.17, Аноним (16), 16:15, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Как его обновлять прикажешь?
     
     
  • 3.31, Аноним (31), 17:03, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    AppImageUpdate
     
  • 3.45, Аноним (74), 18:27, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Можете хоть ржать хоть смеяться, но пропреетарному коммерческому портабельному-о... большой текст свёрнут, показать
     
     
  • 4.52, BrainFucker (ok), 20:14, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > какая-нибудь mozilla вообще была рада распространять установщик firefox для линукса под setup.exe

    А она и распространяет. У неё с сайта можно скачать портабельный тарбол бандл Firefox и Thunderbird, распаковать куда хочешь и использовать без всяких плясок с dependency hell. Чем я и пользуюсь с удовольствием.

     
     
  • 5.75, Аноним (74), 23:31, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    tar.bz2 это не exe. 🤳
     
     
  • 6.84, BrainFucker (ok), 06:00, 03/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > tar.bz2 это не exe. 🤳

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

    И кстати, никаких рут уязвимостей в этом случае, приложение можно поставить без прав рута. Чем не могут похвастаться даже традиционные пакетные менеджеры типа apt, с их встроенными pre-install и post-install скриптами может прозойти что угодно.
    Правда, я предпочитаю распаковывать с рутовыми правами в директорию /opt, зато приложение доступно на запись только руту, чтобы никто не мог его модифицировать, но это частности. Но и в этом случае при распаковке ничего из архива с рутовыми правами не выполняется.

     
  • 4.81, Искренне недоумеваю (?), 03:19, 03/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    gt оверквотинг удален Что не так со стабильностью api abi в рамках цикла 10 ле... большой текст свёрнут, показать
     
  • 3.48, Аноним (3), 19:03, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Скачать свежую версию .AppImage
     
  • 2.24, Аноним (25), 16:37, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А как его установить в систему так чтобы появилась иконка в меню, работала ассоциация с файлами по типам, можно было выбрать из списка подходящих к типу файла программ?

    Еще нужно чтоб программа стала доступна в path, это легко, но само не произойдет. Особенно если внутри пакет должно быть несколько программ...

     
     
  • 3.39, НяшМяш (ok), 17:22, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Примерно как-то так https://docs.appimage.org/user-guide/run-appimages.html#integrating-appimages-
     
  • 3.53, BrainFucker (ok), 20:15, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А как его установить в систему так чтобы появилась иконка в меню, работала ассоциация с файлами по типам,

    У меня это KDE умеет делать с любым приложением не важно как оно установлено, хоть из тарбола.

     
  • 2.67, Аноним (65), 23:00, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Шляпа космонавта, ненужно! Самое нормальное это appimage.

    Гавна из под коня, лучше уж простой архив со статической линковкой, чем он же, но затолканный в какой-то ошалелый формат образа, который хз кто проверял и хз кто собирал. При том, что как правило с ним вместе не то что цифровой подписи не идёт, но даже порой и хэшсумм. Такого шлака ещё поискать.

    Самое вменяемое что есть из неродных пакетов и механизма их распространения, это пакетный менеджер nix и его стор. Другое дело, что никто из известных проектов не пытается его изкоробочно пропихнуть к себе в дистр, на замену снапам/флатпакам, и очень зря, была бы очень годная тема, потому что сам NixOS как полноценная рабочая основная ОС не подходит, шибко неустойчива, шибко R&D, шибко кpacнoглaзa.

     

  • 1.19, жявамэн (ok), 16:28, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    балдежно
     
  • 1.20, Аноним (25), 16:32, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Уязвимость в snap-confine вызвана состоянием гонки в функции must_mkdir_and_open_with_perms()

    с состоянием гонки в такой ситуации очень трудно что-то сделать

     
  • 1.22, Анонн (?), 16:34, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Смешно. В безопасном Go решили чуток поиспользовать божественную сишечку... и она отстрелила обе ноги.
     
     
  • 2.26, user32.dll (?), 16:49, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    При чем тут язык, если дело в подходе? У тех, кто ради инклюзивности решил даже от мозга отказаться, лучше что ли получится, без таких архиткетурных и логических ошибок?
     
     
  • 3.29, Анонн (?), 16:59, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Да, конечно язык ни при чем.
    На бажины совсем не влияют отсутствие optional, строки в виде char*, массивы в виде тупого указателя без знания размера, повсеместное использование кастов void* в то, что погромисту захотелось.
    Поэтому лажают в вычислениях размеров массивов и буфферов, переписывают чужую память, кастят не то и не туда. Но язык тут абсолютно ни при чем, конечно)))
     
     
  • 4.33, user32.dll (?), 17:04, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Попробуй написать какой-нибудь загрузчик ОС или микроконтроллера без этого всего и без unsafe конечно.
     
     
  • 5.36, Анонн (?), 17:12, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну так если оно тебе нужно только в загрузчике, то зачем тянуть его во все остальное, в том числе в юзерспейс? Может стоит отделать совсем низкоуровневые операции от которых отказаться нельзя, от тех, где в них необходимости?
    Oh ,shi... мы только что (пере)придумали концепцию safe-unsafe кода!
     
  • 4.34, user32.dll (?), 17:05, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    И зачем перескакивать, если состояние гонки, например, в моем следующем посте упомянуто в в самом расте, а не каком-то даже проекте на нём
     
     
  • 5.38, Анонн (?), 17:18, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А чего ты все время пишешь про раст, если пробема в Го и сишечке? Что за фиксация?
    Вот я пишу про дырявую сишку, но вообще не упоминал раст до твоих комментов.
     
     
     
    Часть нити удалена модератором

  • 7.60, Вы забыли заполнить поле Name (?), 21:50, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ты сейчас оскорбил очень многих петровичей. Жди в гости. А пока рекомендую сжечь и удолить все растоманские книжки.
     
  • 4.59, Вы забыли заполнить поле Name (?), 21:49, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > На бажины совсем не влияют отсутствие optional, строки в виде char*, массивы в виде тупого указателя без знания размера, повсеместное использование кастов void* в то, что погромисту захотелось.

    Первые 2 проблемы решаются на изи своим кодом. Ты еще спроси почему в с нет хэшей в стандартной либе.

     
  • 4.69, АнонимКо (?), 23:02, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да, конечно язык ни при чем.
    > На бажины совсем не влияют отсутствие optional, строки в виде char*, массивы
    > в виде тупого указателя без знания размера, повсеместное использование кастов void*
    > в то, что погромисту захотелось.
    > Поэтому лажают в вычислениях размеров массивов и буфферов, переписывают чужую память, кастят
    > не то и не туда. Но язык тут абсолютно ни при
    > чем, конечно)))

    Именно, язык не причём, если пользующаяся им макака - макака, как она есть.

     
  • 3.54, Аноним (54), 20:35, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Растоманы с тобой не согласны, они считают, что язык решает все проблемы.
     
     
  • 4.71, Мимокрокодил (?), 23:04, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Растоманы с тобой не согласны, они считают, что язык решает все проблемы.

    Если его не вынимать из дупы менеджера по инклюзивности и специалиста по толерантному поведению, возможно он и решает какие-то проблемы растоманов, только причём здесь реальные проблемы программ?!

     

  • 1.23, Антоннн (?), 16:34, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Кайф
     
     
  • 2.27, user32.dll (?), 16:50, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Когда нигилисту нечего будет предъявить, он обычно самоликвидируется
     

  • 1.30, user32.dll (?), 17:02, 02/12/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     
  • 1.37, Skullnet (ok), 17:13, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Всем неосиляторам flatpak посвящается!
     
     
  • 2.42, Аноним (42), 17:40, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Чем одна поделка лучше другой?
     
     
  • 3.51, Skullnet (ok), 19:28, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Чем одна поделка лучше другой?

    Тем что flatpak работает.

     
  • 2.73, Анонимъ (?), 23:05, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Всем неосиляторам flatpak посвящается!

    Fixed:
    Всем неосиляторам собирать нативные пакеты посвящается!

     
     
  • 3.90, Аноним (90), 09:56, 06/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Сборка нативных пакетов из всякого овна типа игогошечки - это тот ещё номер, потому что оно заточено под хипстабардак и постоянное переразвёртывание.
     

  • 1.44, Аноним (74), 17:48, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    ну наконец-то эта фейковая безопасность опровергнута.
     
     
  • 2.58, Аноним (50), 21:15, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это сразу было понятно, что динамическая возня в папке, куда пишут все, кому не лень, кончится плохо.
     

  • 1.56, Аноним (56), 20:39, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Я сразу говорил что ничем хорошим snap не закончится.
    От вашего раста тоже добра не ждите.
     
     
  • 2.61, Michael Shigorin (ok), 21:56, 02/12/2022 [^] [^^] [^^^] [ответить]  
  • –7 +/
    (озарило) А вот и наш ответ на Капитана Очевидность -- Капитан Зелёный! :)
     

  • 1.62, Чи (?), 22:17, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Давайте еще больше говна с SUID в дистры засунем
     
  • 1.63, InuYasha (??), 22:18, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    - What time is it?
    - I don't know
    - Time... to unpimp the auto!
    - *crash*
    - Oh, snap!
     
  • 1.64, Аноним (65), 22:48, 02/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    "Интересно, что рассматриваемая уязвимость была внесена в процессе исправления похожей февральской уязвимости в snap-confine"

    Перезаложили закладку просто

     
  • 1.77, Пахом (?), 00:40, 03/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Снапы не нужны. Они противоречат самой идеи линпукса – шарить пакеты.
     
  • 1.80, Аноним (80), 02:41, 03/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Qualys выявила третью в этому году опасную уязвимость

    Что значит "нашла уязвимость"?! Не палите контору!
    Майёр недоволен. Вставляйте новую - людям работать надо!

     
  • 1.86, А (??), 15:44, 03/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нормальные дистрибутивы - площадка для творчества и развития - взаимосогласованный набор сырцов под присмотром известной команды.

    Снэпы - попытка всё это выбросить и стать на рельсы Андроида с магазином. С андроидом вышло плохо - не используется, кроме чтения газет и звонков. Увы, можно было гораздо больше.

    А уж что за кабак внутри Снэпов в зависимостях от третьей, четвёртой+ сторон в бинарных блобах без сырцов.

    Снэпы - плохо.

     
     
  • 2.87, Аноним (11), 19:59, 03/12/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > С андроидом вышло плохо - не используется, кроме чтения газет и звонков.

    Очередной отрицатель реальности. Откуда вы лезете?

     

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



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

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