RuStore и поддержка разных архитектур

А мужики знают,  что лежат в 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 вот так работает.

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