Скучный бложик тестировщика

Может быть очень скучно и столь же полезно

А мужики знают,  что лежат в RuStore?

Не так давно в RuStore завезли Signal. И это (по крайней мере сейчас) оригинальное приложение. Я даже упоминал об этом на lor.sh, и люди посчитали, что это поддельное или пропатченное приложение. Но нет, обновление из RuStore без проблем установилось поверх существующего оригинального приложения, что означает, что это тоже оригинальное. Ну, либо VK смогли украсть закрытый ключ подписи, конечно.

Всё было ничего до недавнего времени, пока не появилось обновление Signal, несовместимое с текущей версией. И я испугался, что VK пытается сейчас уже раздавать подделку, из-за чего и сел разбираться.

Вытянул приложение с личного телефона, с эмулятора и из RuStore и сравнил их. Приложение в RuStore имеет оригинальную подпись производителя:

RuStore при выкачивании apk даёт имя 0.apk

Да что там говорить, это буквально один и тот же файл, который я добыл из GPlay:

X — это установленный из GPlay

Но что за файл? Почему люди подозревают, что что-то здесь не так, почему приложение не устанавливается и RuStore пишет сообщение о несовместимости?

Выглядит крайне подозрительно. Оригинал ведь совместим

Вполне справедливые подозрения в подделке

Дело в том, что приложение в RuStore было загружено из стороннего магазина — из Aptoide. Что, кстати, немного забавно, ведь сам RuStore защищается от того, чтобы из него приложениях могли тянуть.

Правильно ли так делать?

Так вот в Aptoide была загружена версия более старшая, чем у пользователей, но под архитектуру Intel:

Теперь понятно, почему не устанавливалось на телефоны

Таких смартфонов сейчас уже не осталось, на сколько я знаю, а значит это версия скорее для эмуляторов. Кто-то вытянул с эмулятора Signal и загрузил в Aptoide. А RuStore спёр её к себе. Только ошибка VK заключается в том, что они не умеют разделять версии по архитектуре процессора (важно для нативного кода) и просто всегда отдают самую старшую.

Итог закономерен — RuStore предлагает версию с бОльшим version code, но под другую архитектуру процессора. И у пользователей она не устанавливается. Понятное дело, что в GPlay такого нет и тот отдаёт всегда правильную. Но мало того, свободный F-Droid тоже умеет понимать архитектуру и отдаёт правильную. А бедная инди компания VK не смогла это учесть. В общем, хочу успокоить пользователей — приложение не поддельное. Это просто VK вот так работает.

Пока писал эту статью, произошли изменения:

  • Aptoide убрал Signal под x86_64
  • RuStore, видимо, убрал вслед за ними. Либо, как вариант, мне прилетела более старшая версия из GPlay и только поэтому RuStore перестал предлагать обновиться

    Резюмируем. Signal в RuStore настоящий (пока?), но магазин пока не готов к реальности :)

В бложике описал известную проблему консольного клиента mariadb, который не может сожрать пароль, длинее 80 символов: https://lor.sh/@umnik/111828511992647563

Это привело к небольшому, но полезному спору. На одной стороне я, с фразой в более 90 символов, на другой стороне уважаемый (не ирония, не шутка) в своих кругах человек, считающий, что это бессмысленно. Кстати, рекомендую подписаться на канал этого человека, если вы связаны с ИБ, он правда хорош (нет, не реклама :); да и какая реклама, если у него почти 8k человек): https://t.me/infosecmemes

Читать дальше...

Подробное объяснение уязвимости CVE-2022-20551, исправленной в Android в феврале 2023 года.

Об AppOpsManager

Отслеживаем (логирование) и контроль доступа (разрешение, запрет) к критичным API системы происходит через механизм app-opов. App-opы (давайте просто app-ops во множественном числе и app-op в единственном) покрывают большой набор функциональности — от рантайм пермишенов до монитора состояния батарейки. Управление же всеми этими фичами, внутри, происходит через AppOpsManager

Read more...

Это просто подбивка списка изменений с пояснениями, чтобы не скакать по статьям на официальном сайте. Хотя правильнее, конечно, читать оригинал.

Изменения, касающиеся всех приложений

Здесь собраны изменения, которые задевают приложения, даже если их таргет ниже 14. Называется новая версия, если что, Android Upside-down cake — “перевёрнутый” пирог или “вверх ногами” или “наизнанку” — как угодно. В общем, суть в том, что после выпекания этот пирог переворачивают и то, что раньше было верхом пирога становится его дном.

Читать дальше...