2010-08-13 92 views
30

只是为了它的问题,我请求了我的应用程序(hello world)的所有权限,查看授予的权限类型以及拒绝的权限类型!为了我的娱乐,我发现大约40个未授予的权限!两个作为未知的权限返回。为什么这些权限被拒绝?

这里是一个被剥夺了我的所有权限的日志 -

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) 

现在的一个事实,我知道二级未授予权限向第三方应用开​​发者和只为原始设备制造商保留。但我很惊讶,因为许多三级权限已被拒绝(如果不是全部!)。因此,我的问题是为什么会这样,我是否需要为我的清单添加其他内容以便这些权限被接受?也不是系统应该在模拟器上授予我的权限,因为毕竟它是为了开发?它是否聪明,因为它会拒绝它认为我的应用程序不合理的权限?它理解代码的先进的android系统?

我非常感谢它,如果你真的可以在几行中解释我这个概念,而不是指向我的常规权限和安全文档。我已经读了几遍,我想我的理解缺乏一些观点。因此,我更愿意阅读其他一些尝试向我解释它。由于

+0

不是Android的专家,但是作为一个在嵌入式系统方面有其他经验的人说话,其中很多看起来很危险。如果他们永远不能在真实的设备上使用,那么让他们进入模拟器并没有多大意义 - 这是一个很好的方式,可以浪费开发人员的时间,而这些开发人员必须在没有设备的情况下进行开发同时又无意中依赖他不能拥有的许可。 –

+0

我同意你的看法,但从研究人员的角度来看,我认为这些应该是被允许的。我实际上允许我们测试android实际上允许我们了解android可能会影响设备的程度。 – Shouvik

+1

好吧,我假设模拟器是开放源代码以及其余的SDK,所以应该可以重建它以允许您访问权限。尽管如此,不用努力。 –

回答

31

Android权限被分开,以四组:
- 定期
- 危险
- 系统或签名
- 签名

前两组中的权限可以授予任何应用程序。
最后两个只能通过应用程序系统 - 预装在设备的固件中,或者是签名为的应用程序与“平台密钥”,即与用于签名固件的密钥相同。

+2

我怎么知道这些小组是什么? Google在http://developer.android.com/reference/android/Manifest.permission中没有提及四个组中的哪一个。html –

+0

@adamk如果我把应用程序放在/ system/app中,理论上应用程序变成了“系统”应用程序,所以我将获得使用INSTALL_PACKAGES的权限,这是正确的吗?但它似乎不起作用http://stackoverflow.com/q/8130677/774543 – Zorb

+0

@Someone某处:四个安全组显示在这里:http://developer.android.com/guide/topics/manifest/permission -element.html。接受的答案还有一个提到签名和签名或系统保护级别的线索的链接。 – Theo