2010-08-13 7 views
30

Juste pour le plaisir, j'ai demandé toutes les permissions de mon application (hello world), pour voir quels sont les types d'autorisations accordées et quelles sont celles qui sont refusées! Pour mon amusement j'ai trouvé environ 40 des autorisations non accordées! Deux ont été renvoyés en tant qu'autorisations inconnues.Pourquoi ces autorisations sont-elles refusées?

Voici le journal de toutes les autorisations qui ont été rejetées pour moi -

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 un fait, je sais niveau deux autorisations ne sont pas accordées aux développeurs d'applications tiers et sont réservés uniquement pour les OEM. Mais je suis surpris car beaucoup de permissions de niveau trois m'ont été refusées (sinon toutes!). D'où ma question serait pourquoi est-ce, ai-je besoin d'ajouter quelque chose d'autre à mon manifeste pour que ces permissions soient acceptées? Aussi le système n'est-il pas supposé accorder mes permissions sur l'émulateur car après tout c'est pour le développement? Et est-ce intelligent parce qu'il rejette les permissions qu'il juge déraisonnables de mon application? Est-ce que le système Android a avancé qu'il comprend le code?

Je vous serais très reconnaissant si vous pouviez m'expliquer ce concept en quelques lignes au lieu de me pointer vers les permissions et les documentations de sécurité. Je l'ai lu à quelques reprises et je suppose que ma compréhension fait défaut dans une certaine perspective. Par conséquent, je préférerais de beaucoup lire une autre tentative pour me l'expliquer. Merci

+0

Pas un expert Android, mais en parlant comme quelqu'un avec un peu d'autre expérience dans les systèmes embarqués, beaucoup de ceux-ci semblent qu'ils pourraient être assez dangereux. Et cela n'aurait pas beaucoup de sens de les autoriser dans l'émulateur s'ils ne seraient jamais disponibles sur un vrai périphérique - ce serait un excellent moyen de perdre le temps d'un développeur qui doit se développer sans un périphérique pour un tandis que et par inadvertance repose sur une permission qu'il ne peut pas avoir. –

+0

Je suis d'accord avec vous, mais du point de vue des chercheurs, je pense que cela aurait dû être autorisé. En fait, je nous permet de tester ce qui est réellement Android nous permet de comprendre la mesure dans laquelle Android peut affecter l'appareil. – Shouvik

+1

Eh bien, je suppose que l'émulateur est open-source avec le reste du SDK, donc il devrait être possible de le reconstruire pour vous permettre d'accéder aux permissions. Mais ce serait difficile. –

Répondre

31

autorisations Android sont séparés en quatre groupes:
- régulier
- Dangerous
- Système signé ou
- Signé

Les autorisations dans les deux premiers groupes peuvent être accordées à n'importe quelle application.
Les deux derniers ne peuvent être obtenus que par les applications système - préinstallées dans le microprogramme de l'appareil ou qui sont et avec la «clé de plateforme», c'est-à-dire la même clé que celle utilisée pour signer le microprogramme.

+2

comment savoir ce que sont les groupes? Google ne mentionne pas lequel des quatre groupes l'autorisation est dans http://developer.android.com/reference/android/Manifest.permission.html –

+0

@adamk Si je mets l'application dans/system/app en théorie, l'application est devenue une application "système" donc je vais acquérir les privilèges pour utiliser INSTALL_PACKAGES c'est juste? mais il semble ne pas fonctionner http://stackoverflow.com/q/8130677/774543 – Zorb

+0

@Someone Somewhere: Les quatre groupes de sécurité apparaissent ici: http://developer.android.com/guide/topics/manifest/permission -element.html. La réponse acceptée a également un lien vers un thread qui mentionne les niveaux de protection signature et signatureOrSystem. – Theo

Questions connexes