Как вставлять уникальные данные в пакет Android APK при каждой загрузке?

Цель: внедрить информацию из заголовков HTTP в пакет APK «на лету» во время загрузки.

Ситуация: На веб-сайте компании есть пакет APK, доступный для общедоступной загрузки. Пользователь переходит на страницу загрузки, и сервер получает URL-адрес ссылки и URL-адрес целевой страницы. Нам нужно, чтобы URL-адреса были включены в пакет, чтобы, когда приложение установлено и пользователь создает учетную запись с помощью приложения, информация об URL-адресе была доступна для приложения и добавлялась к вновь созданным данным учетной записи (для целей анализа трафика и маркетинговой атрибуции).


person marko-36    schedule 04.09.2020    source источник


Ответы (2)


APK — это, по сути, архив.

Я думаю, что вы должны иметь возможность распаковывать, редактировать и снова архивировать его без изменения подписи, как вы можете видеть из этого подробного руководства

Чтобы поместить уникальный код в свое приложение, вы можете использовать папку с ресурсами, создав файл txt или json, содержащий этот код.

Затем вы можете получить уникальный код внутри своего приложения, программно прочитав папку с ресурсами.

person Francesco Re    schedule 04.09.2020
comment
Зависит ли подпись пакета от содержимого пакета, например, например. хэш будет? Итак, после запроса на загрузку необходимо будет создать уникальные данные txt/json, а также скомпилировать и подписать новый APK? Я полагаю, что (@Sintuz предлагает это) Или можно ли просто заархивировать предварительно скомпилированное приложение с новым txt/json и отправить его? - person marko-36; 04.09.2020
comment
@ marko-36 Да, подпись основана на содержимом, но я действительно не знаю, считается ли папка с ресурсами частью подписи (вероятно, да). Лучший способ узнать это попытаться сделать это самостоятельно. - person Francesco Re; 04.09.2020
comment
Если подпись меняется, вам нужно компилировать apk для каждой загрузки, что не очень простой процесс для автоматизации. - person Francesco Re; 04.09.2020

Чтобы изменить apk, вам нужно будет изменить код и перекомпилировать его. Невозможно изменить содержимое скомпилированного apk.

person Sintuz    schedule 04.09.2020
comment
Я думаю, вы сможете перекомпилировать его с исходным ключом. - person Francesco Re; 04.09.2020
comment
Ах да, моя вина - person Francesco Re; 04.09.2020