Извлеките apk и объедините с обновлениями, затем установите новый apk

android

516 просмотра

1 ответ

Прежде всего, когда у вас есть приложение на вашем телефоне, а у этого приложения есть обновление в магазине Play, Google возвращает только обновленную часть кода, а не весь пакет (например, 3 мг вместо 8 мг, то есть размер всего пакета). Я исследовал и выяснил, что на стороне Android, Google Play извлекает локальное приложение и объединяет файл обновления, загруженный из магазина Play, и генерирует новый APK, а затем устанавливает новый APK вместе с обновлением. Учтите, что в магазине игр нет хранилища ключей apk для подписи нового apk, но apk успешно установлен. Теперь у меня есть приложение, которое загружает обновленный APK с моего сервера. Сервер обнаруживает изменения между двумя apks и возвращает только сделанные изменения. Теперь, на стороне Android, я хочу, чтобы мое работающее приложение извлекало локальный apk, сливало его с обновлениями и генерировало новый apk (например, play store). Также он должен подписать новый apk, но это не должно положить мое хранилище ключей в файл на стороне пользователя. Я недавно в Windows, разархивировал файл apk и добавил некоторые файлы из другого apk к нему. Оба apks подписаны. Поместил этот новый apk в мой телефон. но Android не может установить приложение и говорит: «Приложение не может быть установлено». Как я могу это сделать?

Автор: Saber Solooki Источник Размещён: 08.11.2019 11:17

Ответы (1)


0 плюса

Приложения не могут изменять свои APK. Файл apk доступен для записи только пользователю, systemпоэтому обычные приложения на нерутированных устройствах не могут обновлять или изменять свой собственный или любой другой apk.

Единственным способом было бы сохранить в apk на SD-карте и затем запустить боковую загрузку приложения, чтобы пользователь мог выбрать его установку. Но AFAIR, которые требуют, чтобы устройство было активировано для «Установка приложений из неизвестных источников» (которое по умолчанию отключено).

Подпись: подпись APK состоит из текстового файла, содержащего хэши каждого файла и APK, а также подписи этого текстового файла.

Поэтому, если у вас есть два APK: один старый APK и один новый APK оба подписаны правильно, и вы извлекаете изменения (включая текстовый файл с хэшами и его подписью) между старым и новым и применяете извлеченные изменения к старому apk «обновленный старый apk» не будет побитно идентичным, но имеет тот же контент. Поэтому подпись снова будет действительной.

Автор: Robert Размещён: 20.08.2016 12:31
Вопросы из категории :
32x32