2016-09-19 2 views
2

У меня есть классический случай, когда одно из моих приложений предоставляет контент для моего другого приложения. Я знаю, что поставщик контента может быть защищен с использованием разрешения с уровнем защиты подписи. Но меня беспокоит другое направление. Что делать, если приложение, содержащее контент-провайдер, не установлено, а вредоносное приложение содержит поставщика с тем же полномочием (я знаю, что полномочия не должны случайно сталкиваться, но я думаю о вредоносном приложении). Как я могу убедиться, что мое приложение запрашивает только провайдера, если оно определено в приложении с той же подписью?Подтвердить подпись ContentProvider

Самое близкое, что я могу придумать, это найти другое приложение через диспетчер пакетов и убедиться, что подпись соответствует. А поскольку у моего другого приложения есть контент-провайдер, другой контент-провайдер с тем же полномочием не может быть установлен на одном устройстве. Но с этим я делаю связь между именем пакета и полномочиями. Я надеюсь, что есть более чистый способ.

ответ

3

Позвоните resolveContentProvider() по телефону PackageManager, пройдя через руководство пользователя. Это даст вам подробную информацию о ContentProvider для этой строки. Оттуда проверьте подпись пакета этого провайдера, чтобы убедиться, что он соответствует вашим.

Смежные вопросы