Формулировка больше путает, чем пугает. Но опасаться в данном случае есть чего.
Разберем, о чем же речь., как всегда попроще, чтобы не лезть в дебри всяких Binder, ContentProvider и проч. А речь о ситуации, когда одно приложение, используя механизмы Android, может использовать возможности другого, юзать его разрешения, получать доступ к его данным и вот это вот все. Например, приложение, не имеющее разрешения на выход в сеть, может выходить в сеть через другое приложение, у которого такое разрешение есть. Это принято называть Межпроцессным взаимодействием (IPC).
На скринах, прикрепленных к этому посту показан самый подходящий пример из того что я смог найти на своих устройствах: приложение Termux и его плагины.
Условия, при которых такое взаимодействие выходит на опасный уровень:
1. Приложения должны иметь совпадающую подпись.
2. Приложения должны работать в одном пользовательском пространстве (иметь общий UID).
На скринах все три приложения имеют один общий UserID и общую подпись F-Droid.
Что это дает?
Одинаковая подпись (Signature) - Использование signature-уровневых разрешений; вызов приватных API и компонентов друг друга.
Одинаковый UID (sharedUserId) - Полный общий sandbox: файлы, сеть, Разрешения назначаются UID-группе, а не пакету приложения.
На самом деле все намного сложнее (те самые Intent, Binder, Provider, Socket и т.д.), но защититься на базовом уровне не сложно. Если руки прямые, голова холодная и есть начальное представление о том что вообще вы держите в руках, инструкция для шарящих:
1. Для приложений, которым не доверяете, в манифесте выпилить или изменить android:exported="true" на "false" (см. скрин). Флаг, скажем так, отклоняет внешние события (да, опять Binder-связи, Broadcast-интенты и обращения к ContentProvider). Иначе приложение может просто отдать данные другому приложению, чтобы оно поработало курьером и отправило их за него.
2. Выпилить из манифеста sharedUserId (см. скрин). Разные UID - разные песочницы, и использование разрешений одной песочницы другой песочницей противоречит всей концепции андроид-песочниц (я тоже могу запутывать). Проще говоря никакого доступа в сеть через другое приложение.
3. Несомненно, подписать приложение своей подписью после всех манипуляций.
3.1 Если приложение которому вы не доверяете отказывается работать после проделанных манипуляций - см. инструкцию для чайников.
Инструкция для чайников:
1. Устанавливайте всратый Яндекс браузер в один профиль, а не менее всратый, но удобный Яндекс Go в другой, таким образом они будут работать в разных пользовательских пространствах и у них по определению не будет общей песочницы и общего UID.
2. Не используйте такие приложения.