views:

485

answers:

2

Just for the Heck of it, I requested all the permissions from my application (hello world), to see what are the types of permissions that are granted and what are those that are refused! To my amusement I found about 40 of the permissions not granted! Two were returned as unknown permissions.

Here is the log of all the permissions that were denied to me -

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)

Now for a fact I know level two permissions are not granted to third party application developers and are reserved only for OEMs. But I am surprised as a lot of level three permissions have been denied to me (if not all!). Hence my question would be why is it so, do I need to add something else to my manifest for those permissions to be accepted? Also is not the system supposed to grant my permissions on the emulator because after all its for development? And is it intelligent as in it would reject permissions that it deems unreasonable of my application? Is android system that advanced that it understands code?

I would much appreciate it if you could actually explain me this concept in a couple of lines instead of pointing me to the regular permissions and security documentations. I have read through it a couple of times and I guess my understanding is lacking in some perspective. Hence I would much prefer to read some other attempt at explaining it to me. Thanks

+4  A: 

Someone tested that before you, but that's an interesting thinking : http://groups.google.com/group/android-developers/browse_thread/thread/3af09c76f3ba8d96/d314c4adaaa217c4?show_docid=d314c4adaaa217c4&pli=1

Sephy
Thanks this link actually helped a bit, but then back again to documentation problem! :D
Shouvik
+1 for your help.. :)
Shouvik
+1  A: 

Android permissions are separated to four groups:
- Regular
- Dangerous
- System or Signed
- Signed

Permissions in the first two groups can be granted to any application.
The last two can be obtained only by applications which are system - preinstalled in the device's firmware or which are signed with the "platform key", i.e. the same key that was used to sign the firmware.

adamk

related questions