Программно изменить манифест - пользовательские разрешения Android

Электрический токСистема разрешений Android вызывает следующую проблему:

Приложение A определяет пользовательское разрешение для:

com.package.permission.READ_APP_DATA

Когда установлено приложение B, объявляющее пользовательское разрешение, оно предоставляется.

Однако, если приложение A установленопосле приложение B, то разрешениене предоставлен приложению Б.

Хотя это не может быть обычным явлением, поскольку приложение B часто является плагином приложения A, это, конечно, может произойти и для моего приложения.

С приложениями SuperUser, согласными ввести глобальное пользовательское разрешениеandroid.permission.ACCESS_SUPERUSER это может быть большой проблемой, если пользователь решит переключить приложение SuperUser.

Чтобы решить эту проблему, я намерен использовать следующий код в своем приложении для настраиваемого разрешения, которое я собираюсь начать объявлять:

checkPermissions(this, getCallingActivity().getPackageName()); // get the package name from the sender first

private boolean checkPermissions(Context context, String callingPackage) {

    final List apps = context.getPackageManager().getInstalledPackages(PackageManager.GET_PERMISSIONS);

    for (PackageInfo pi : apps) {

        if (pi.packageName.equals(callingPackage)) {

            String[] permissions = pi.requestedPermissions;

            if (permissions != null) {
                for (String permission : permissions) {
                    if (permission.equals("com.package.permission.READ_APP_DATA")) {
                        return true;
                    }
                }
            }
        }
    }
    return false;

Согласно названию этого вопроса: это метод?безопасный'? Или есть способ / рут-хак, что приложение 's манифест может быть изменен после его установки и разрешения программнодобавил» к приложению Б?

Ответы на вопрос(2)

Ваш ответ на вопрос