Разрешить только Android OS, чтобы открыть активность запуска

В моем приложении для Android есть уязвимость, связанная с тем, что мое приложение может быть открыто вредоносным приложением. Я использую следующий фильтр намерений в Launcher Activity.

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

Этот фильтр намерений делает Основную активность доступной для других приложений. Есть ли способ выставить Основную активность только на ОС Android, а не на другие приложения. Насколько я понимаю, мы не можем использовать "exported=false".

1 ответ

Решение

Есть ли способ выставить Основную активность только на ОС Android, а не на другие приложения.

Не так, как вы определяете условия.

Каждое действие, экспортированное или нет, "подвергается" "ОС Android". В противном случае они были бы непригодны даже для самого приложения. Разница между экспортируемым действием и тем, что нет, заключается в том, может ли стороннее приложение запустить действие.

Сам домашний экран - это просто приложение. Устройство поставляется с предварительно установленным хотя бы одним домашним экраном, и пользователи могут устанавливать другие из Play Store или из других источников. Следовательно, с точки зрения вашего приложения, домашний экран - это сторонняя деятельность.

В моем приложении для Android есть уязвимость, связанная с тем, что мое приложение может быть открыто вредоносным приложением

Экспортируемая активность сама по себе не является "уязвимостью безопасности". Ваш аргумент похож на то, что "на моем веб-сайте есть уязвимость системы безопасности - как мне разрешить открывать мою домашнюю страницу только из результатов поиска Google, но не с помощью закладки или любого другого веб-сайта?".

Излишне экспортировать действия плохо с точки зрения безопасности, но активность запуска запускается по необходимости.

Другие вопросы по тегам