diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp index 1f62df05f3d..6567b0dac0d 100644 --- a/src/tools/androiddeployqt/main.cpp +++ b/src/tools/androiddeployqt/main.cpp @@ -2129,7 +2129,12 @@ bool readAndroidDependencyXml(Options *options, } else if (reader.name() == "permission"_L1) { QString name = reader.attributes().value("name"_L1).toString(); QString extras = reader.attributes().value("extras"_L1).toString(); - options->permissions.insert(name, extras); + // With duplicate permissions prioritize the one without any attributes, + // as that is likely the most permissive + if (!options->permissions.contains(name) + || !options->permissions.value(name).isEmpty()) { + options->permissions.insert(name, extras); + } } else if (reader.name() == "feature"_L1) { QString name = reader.attributes().value("name"_L1).toString(); options->features.append(name);