Разрешить только 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, но не с помощью закладки или любого другого веб-сайта?".
Излишне экспортировать действия плохо с точки зрения безопасности, но активность запуска запускается по необходимости.