Juste pour ajouter quelques détails connexes à ceux de @ReddyLutonadio réponse , android.permission.REQUEST_INSTALL_PACKAGES
est celui qui définit les applications qui apparaîtront dans la liste que vous avez mentionnée, et il est requis sur Android 8+ pour installer des applications provenant de sources autres que Google Play. Mais cette permission seule ne définit pas si l'application est autorisée à installer des paquets inconnus ou non. Il a un niveau de protection Signature
:
Le système accorde ces autorisations d'application au moment de l'installation, mais uniquement lorsque l'application qui tente d'utiliser une autorisation est signée par le même certificat que l'application qui définit l'autorisation.
Cela signifie que les applications de l'utilisateur n'auront jamais cette permission. Les applications qui sont autorisées dans "Settings" > "Apps & Notifications" > "Advanced" > "Special App Access" > "Install unknown apps"
sont ceux qui ont un fonctionnement AppOps OP_REQUEST_INSTALL_PACKAGES
autorisé. Vous pouvez également vérifier à partir de adb shell
:
~$ appops query-op REQUEST_INSTALL_PACKAGES allow
Les résultats doivent être les mêmes que dans les paramètres. Pour refuser l'une des applications :
~$ appops set org.fdroid.fdroid REQUEST_INSTALL_PACKAGES deny
Et il apparaîtra comme Not allowed
dans les paramètres.
D'autres permissions qui sont contrôlées avec AppOps peuvent être vues avec dumpsys package | grep -A100 'AppOp Permissions:' | sed '/^$/q'
.
RELATION :