web-dev-qa-db-fra.com

Pourquoi ces autorisations sont-elles refusées?

Juste pour le plaisir, j'ai demandé toutes les autorisations de mon application (bonjour le monde), pour voir quels sont les types d'autorisations qui sont accordés et quels sont ceux qui sont refusés! À mon grand amusement, j'ai trouvé environ 40 des autorisations non accordées! Deux ont été retournés en tant qu'autorisations inconnues.

Voici le journal de toutes les autorisations qui m'ont été refusées -

W/PackageManager(   61): Not granting permission Android.permission.ACCESS_CHECKIN_PROPERTIES to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.ACCESS_SURFACE_FLINGER to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.ACCOUNT_MANAGER to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.BIND_APPWIDGET to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.BIND_DEVICE_ADMIN to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.BIND_INPUT_METHOD to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.BIND_WALLPAPER to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.BRICK to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.BROADCAST_PACKAGE_REMOVED to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.BROADCAST_SMS to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.BROADCAST_WAP_Push to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.CALL_PRIVILEGED to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.CHANGE_COMPONENT_ENABLED_STATE to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.CLEAR_APP_USER_DATA to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.CONTROL_LOCATION_UPDATES to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.DELETE_CACHE_FILES to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.DELETE_PACKAGES to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.DEVICE_POWER to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.DIAGNOSTIC to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.FACTORY_TEST to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.FORCE_BACK to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.GLOBAL_SEARCH to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.HARDWARE_TEST to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.INJECT_EVENTS to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.INSTALL_LOCATION_PROVIDER to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.INSTALL_PACKAGES to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.INTERNAL_SYSTEM_WINDOW to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.MANAGE_APP_TOKENS to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.MASTER_CLEAR to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.READ_FRAME_BUFFER to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Unknown permission Android.permission.READ_HISTORY_BOOKMARKS in package com.robosoft.linuxtop
W/PackageManager(   61): Not granting permission Android.permission.READ_INPUT_STATE to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.REBOOT to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.SET_ACTIVITY_WATCHER to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.SET_ORIENTATION to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.SET_PREFERRED_APPLICATIONS to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.SET_TIME to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.STATUS_BAR to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.UPDATE_DEVICE_STATS to package com.robosoft.linuxtop (protectionLevel=2 flags=0x8444)
W/PackageManager(   61): Not granting permission Android.permission.WRITE_GSERVICES to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)
W/PackageManager(   61): Unknown permission Android.permission.WRITE_HISTORY_BOOKMARKS in package com.robosoft.linuxtop
W/PackageManager(   61): Not granting permission Android.permission.WRITE_SECURE_SETTINGS to package com.robosoft.linuxtop (protectionLevel=3 flags=0x8444)

Maintenant, pour un fait, je sais que les autorisations de niveau deux ne sont pas accordées aux développeurs d'applications tierces et sont réservées uniquement aux OEM. Mais je suis surpris car beaucoup d'autorisations de niveau trois m'ont été refusées (sinon toutes!). Par conséquent, ma question serait pourquoi est-ce le cas, dois-je ajouter quelque chose d'autre à mon manifeste pour que ces autorisations soient acceptées? De plus, le système n'est-il pas censé accorder mes autorisations sur l'émulateur, car après tout, c'est pour le développement? Et est-il intelligent, car il rejetterait les autorisations qu'il juge déraisonnables pour mon application? Est Android système qui a avancé qu'il comprend le code?

J'apprécierais beaucoup si vous pouviez réellement m'expliquer ce concept en quelques lignes au lieu de me pointer vers les autorisations régulières et les documentations de sécurité. Je l'ai lu plusieurs fois et je suppose que ma compréhension fait défaut dans une certaine perspective. Par conséquent, je préférerais de loin lire une autre tentative pour me l'expliquer. Merci

32
Shouvik

Les autorisations Android sont séparées en quatre groupes:
- Ordinaire
- Dangereux
- Système ou signé
- Signé

Les autorisations des deux premiers groupes peuvent être accordées à n'importe quelle application.
Les deux derniers ne peuvent être obtenus que par des applications système - préinstallées dans le firmware de l'appareil ou signées avec la "clé de plate-forme", c'est-à-dire le même clé que celle utilisée pour signer le firmware.

32
adamk
9
Sephy