RuStore и поддержка разных архитектур
Не так давно в RuStore завезли Signal. И это (по крайней мере сейчас) оригинальное приложение. Я даже упоминал об этом на lor.sh, и люди посчитали, что это поддельное или пропатченное приложение. Но нет, обновление из RuStore без проблем установилось поверх существующего оригинального приложения, что означает, что это тоже оригинальное. Ну, либо VK смогли украсть закрытый ключ подписи, конечно.
Всё было ничего до недавнего времени, пока не появилось обновление Signal, несовместимое с текущей версией. И я испугался, что VK пытается сейчас уже раздавать подделку, из-за чего и сел разбираться.
Вытянул приложение с личного телефона, с эмулятора и из RuStore и сравнил их. Приложение в RuStore имеет оригинальную подпись производителя:
Да что там говорить, это буквально один и тот же файл, который я добыл из 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 настоящий (пока?), но магазин пока не готов к реальности :)