Отправка файлов APK для Android для установки, приложения/vnd.android.пакет-ошибка разбора архива

#android #security #apk

Вопрос:

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

Вот содержимое заголовка, используемое для обслуживания файла:

 header('Content-Description: File Transfer');  header('Content-Type: application/vnd.android.package-archive');  header("Content-Disposition: attachment; filename="".$filename.'"');  header('Content-Transfer-Encoding: binary');  header('Expires: 0');  header('Cache-Control: must-revalidate');  header('Pragma: public');  header('Content-Length: ' . filesize($androidPackage));  

Кроме того, MIME для файлов APK на сервере установлен в application/vnd.android.package-архив

Ошибка синтаксического анализа возникает в следующей конфигурации телефона: Samsung Galaxy S10 в сети Verizon Android версии 11 (API 30) Цель сборки APK 28, мин. 21

Я включил специальный доступ:устанавливайте неизвестные приложения для браузеров.

Приложение по-прежнему не будет устанавливаться из браузера (указывая на веб-сайт моего сервера).

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

Я также могу установить его на свое локальное устройство с помощью отладки разработчика.

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

1. Неясно, когда у вас возникает ошибка синтаксического анализа. Я бы предположил, что вы сначала загрузите файл в хранилище устройства, а затем попытаетесь открыть его из хранилища устройства. Довольно непонятно, чем вы занимаетесь. Даже неясно, используете ли вы свое собственное приложение для загрузки файла или используете какой-либо браузер.

2. Можете ли вы устанавливать APK из своих тестовых браузеров, когда ссылки находятся непосредственно на APK, а не с помощью Content-Disposition: attachment; ?

3. Уточнил, что проблема связана с загрузкой из браузера, а не из моего собственного приложения. Кроме того, файл APK можно загрузить с сервера, но также не открывать из локального хранилища телефона.

Ответ №1:

Предложение по общему программному обеспечению сработало.

Если я направлю браузер непосредственно к файлу, он установится, предварительно предупредив пользователя об установке неизвестных приложений.

 lt;a href="MyApp.apk"gt;Direct Downloadlt;/agt;