Я пишу 1) приложение, в котором хранятся имя пользователя и пароль в AccountManager и 2) отдельное фоновое сервисное приложение, которое обращается к этим учетным данным для входа на мои серверы и т.д. Играя с этим, я нахожу, m можно вызвать AccountManager.getPassword(account) из Сервиса (приложение 2), чтобы получить доступ к типу учетных записей, которые я добавил в AccountManager, используя другое приложение (приложение 1).
Из-за этого я начинаю задаваться вопросом, что останавливает произвольное вредоносное приложение из 1), включая поля в манифесте, чтобы получить доступ к управлению учетной записью, а затем 2) от итерации по всем учетным записям определенного типа и вызова mAccountManger.getPassword(account) на них. Я знаю, что во время установки открывается диалоговое окно со всеми разрешениями, которые приложение запрашивает использовать, но я не думаю, что мы можем рассчитывать на то, что средний пользователь отклонит приложение, потому что он запрашивает подозрительные разрешения.
Есть ли способ предотвратить использование getPassword в типе учетной записи? Существуют ли способы защиты учетных записей в AccountManager из приложений, которые предоставили себе множество разрешений на учет?