Страницы

Поиск по вопросам

понедельник, 8 июля 2019 г.

Теряется ли возможность обновлять android приложение после переподписывания?

Представим скачавшему не понравился дизайн приложения и он решил его декомпилировать.Изменил фон приложения,потом обратно собрал приложение и подписал его своим ключом.
Будет ли у него возможность обновлять это самое приложение через Google Play ? Или пересобранное и переподписанное приложение уже никакого отношения к оригиналу иметь не будет? Если всё-же есть возможность обновлять "форк" apk,то будет ли конфликт при обновлении ? Т.е вернётся ли фон пересобранного приложения на фон оригинала после обновления ?


Ответ

Приложения уникально идентифицируются по пакету и по сертификату, которым оно подписано. Засим, при изменении одного из этих параметров обновлений из маркета автоматических не будет. В случае изменения пакета маркет не сможет найти приложение у себя, а в случае изменения подписи - не сможет обновить.
Если пересобрать APK с другой подписью и попытаться обновить его приложением с большей версией и другой подписью будет выведено сообщение о конфликте подписей и указано, что текущая версия будет удалена, все её данные потёрты и приложение будет заменено полностью.
Естественно, что все ресурсы приложения (строки, стили etc), будучи частью APK файла никак не передаются/не сохраняются между обновлениями. Они содержаться в разных файлах и после замены одного файла другим полностью теряются.
Если вам надо дать возможность смены темы юзерами, то надо писать какие-то параметры в места, которые не затираются при обновлениях. Например в БД или вообще отдельный файл на диске, за пределами папки приложения или вообще на сервер какой-то. В этом случае вам придётся ещё реализовать программное извлечение этих значений и программное применение и к внешнему виду приложения.
С другой стороны есть способ загрузки кода рантайме по ссылке. Для этого делается dex модуль, он скачивается и сохраняется где-то в памяти телефона. После чего используется PathClassLoader Но этот способ прямо запрещён гуглом к использованию в приложениях для маркета из-за соображений безопасности.
Однако, при наличии определённых навыков, кто-то может поменять пакет (идентификатор) приложения, и даже попытаться выложить его в маркет как отдельное приложение.

Комментариев нет:

Отправить комментарий