Android权限保护级别18和50权限、级别、Android

由网友(青稚)分享简介:在我做的所有的应用程序的所有权限的转储上的Nexus 7,我得到(预期)的权限与保护等级0(NORMAL),1(危险),2(签字)。没有什么是3岁以下(SIGNATURE_OR_SYSTEM)日志*。但也有很多的权限,其保护级别设置为18,有些是50。我找不到这些值的重新present任何文件。有谁知道?*它不记录下3...

在我做的所有的应用程序的所有权限的转储上的Nexus 7,我得到(预期)的权限与保护等级0(NORMAL),1(危险),2(签字)。没有什么是3岁以下(SIGNATURE_OR_SYSTEM)日志*。

但也有很多的权限,其保护级别设置为18,有些是50。

我找不到这些值的重新present任何文件。有谁知道?

*它不记录下3.什么

这些都是什么记录:

  android.permission.ACCESS_CACHE_FILESYSTEM  -  18
android.permission.ACCESS_CHECKIN_PROPERTIES  -  18
android.permission.ACCESS_DOWNLOAD_MANAGER  -  18
android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED  -  18
android.permission.ACCESS_MTP  -  18
android.permission.ALLOW_ANY_ codeC_FOR_PLAYBACK  -  18
android.permission.BACKUP  -  18
android.permission.BIND_APPWIDGET  -  18
android.permission.BIND_DIRECTORY_SEARCH  -  18
android.permission.BIND_KEYGUARD_APPWIDGET  -  18
android.permission.BIND_REMOTEVIEWS  -  18
android.permission.BIND_WALLPAPER  -  18
android.permission.CALL_PRIVILEGED  -  18
android.permission.CHANGE_COMPONENT_ENABLED_STATE  -  18
android.permission.CHANGE_CONFIGURATION  -  18
android.permission.CONNECTIVITY_INTERNAL  -  18
android.permission.CONTROL_LOCATION_UPDATES  -  18
android.permission.CRYPT_KEEPER  -  18
android.permission.DELETE_CACHE_FILES  -  18
android.permission.DELETE_PACKAGES  -  18
android.permission.DOWNLOAD_CACHE_NON_PUR​​GEABLE  -  18
android.permission.GLOBAL_SEARCH  -  18
android.permission.INSTALL_LOCATION_PROVIDER  -  18
android.permission.INSTALL_PACKAGES  -  18
android.permission.MANAGE_USB  -  18
android.permission.MANAGE_USERS  -  18
android.permission.MASTER_CLEAR  -  18
android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS  -  18
android.permission.MODIFY_NETWORK_ACCOUNTING  -  18
android.permission.MODIFY_PHONE_STATE  -  18
android.permission.MOUNT_FORMAT_FILESYSTEMS  -  18
android.permission.MOUNT_UNMOUNT_FILESYSTEMS  -  18
android.permission.MOVE_PACKAGE  -  18
android.permission.PACKAGE_USAGE_STATS  -  18
android.permission.PACKAGE_VERIFICATION_AGENT  -  18
android.permission.PERFORM_CDMA_PROVISIONING  -  18
android.permission.READ_FRAME_BUFFER  -  18
android.permission.READ_NETWORK_USAGE_HISTORY  -  18
android.permission.READ_PRIVILEGED_PHONE_STATE  -  18
android.permission.REBOOT  -  18
android.permission.RECEIVE_DATA_ACTIVITY_CHANGE  -  18
android.permission.RECEIVE_EMERGENCY_BROADCAST  -  18
android.permission.RETRIEVE_WINDOW_CONTENT  -  18
android.permission.SEND_SMS_NO_CONFIRMATION  -  18
android.permission.SERIAL_PORT  -  18
android.permission.SET_TIME  -  18
android.permission.SET_WALLPAPER_COMPONENT  -  18
android.permission.SHUTDOWN  -  18
android.permission.STATUS_BAR  -  18
android.permission.STOP_APP_SWITCHES  -  18
android.permission.UPDATE_DEVICE_STATS  -  18
android.permission.UPDATE_LOCK  -  18
android.permission.WRITE_APN_SETTINGS  -  18
android.permission.WRITE_GSERVICES  -  18
android.permission.WRITE_MEDIA_STORAG​​E  -  18
com.android.chrome.TOS_ACKED  -  18
。com.android.launcher.permission preLOAD_WORKSPACE  -  18
com.android.vending.TOS_ACKED  -  18
com.android.vending.billing.ADD_CREDIT_CARD  -  18
com.android.vending.billing.BILLING_ACCOUNT_SERVICE  -  18
com.google.android.c2dm.permission.SEND  -  18
com.google.android.gallery3d.permission.GALLERY_PROVIDER  -  18
com.google.android.gtalkservice.permission.SEND_HEARTBEAT  -  18
com.google.android.partnersetup.permission.UPDATE_CLIENT_ID  -  18
com.google.android.permission.BROADCAST_DATA_MESSAGE  -  18
com.google.android.providers.gsf.permission.WRITE_GSERVICES  -  18
com.google.android.xmpp.permission.BROADCAST  -  18
com.google.android.xmpp.permission.XMPP_ENDPOINT_BROADCAST  -  18

android.permission.CHANGE_CONFIGURATION  -  50
android.permission.DUMP  -  50
android.permission.INTERACT_ACROSS_USERS  -  50
android.permission.READ_LOGS  -  50
android.permission.SET_ALWAYS_FINISH  -  50
android.permission.SET_ANIMATION_SCALE  -  50
android.permission.SET_DEBUG_APP  -  50
android.permission.SET_PROCESS_LIMIT  -  50
android.permission.SIGNAL_PERSISTENT_PROCESSES  -  50
android.permission.WRITE_SECURE_SETTINGS  -  50
 
Android系统新权限模型剖析与预警

解决方案

刚看到一个古老的悬而未决的问题。虽然你可能已经得到你的答案,我反正回答。它可以帮助别人。 :)

  

也有很多,其保护级别设置为18和权限的一些是50。

下面code都PermissionInfo.java检索的Andr​​oid源:

  / **
 *附加​​标志{@link #protectionLevel},相应的
 *要在< code>系统< / code取代;价值
 * {@link android.R.attr#的ProtectionLevel}。
 * /
公共静态最终诠释PROTECTION_FLAG_SYSTEM = 0×10;

/ **
 *附加​​标志{@link #protectionLevel},相应的
 *要在< code>发展< / code取代;价值
 * {@link android.R.attr#的ProtectionLevel}。
 * /
公共静态最终诠释PROTECTION_FLAG_DEVELOPMENT = 0x20的;
 

所以,如果有一个签名/系统的权限,水平将18(0×10 | 0X2)。如果用于特殊的开发工具的许可使用,这将是50(为0x10 |为0x20 | 0X2)。

  

我找不到这些值的重新present任何文件。有谁知道?

正如我在现有的问题的回答,您可以检查的保护水平和这些权限在说明框架/基/核心/ RES / AndroidManifest.xml中框架/基/数据的/ etc / platform.xml 。我张贴一些人在这里,供大家参考。

 <! - 配置用于调试的应用程序。 - >
<允许机器人:名称=android.permission.SET_DEBUG_APP
    机器人:permissionGroup =android.permission,group.DEVELOPMENT_TOOLS
    安卓的ProtectionLevel =签名|系统|发展
    机器人:标签=@字符串/ permlab_setDebugApp
    机器人:说明=@字符串/ permdesc_setDebugApp/>

<! -  @hide包检验需要有PackageManager在此之前的权限将
     信任它来验证软件包。
 - >
<允许机器人:名称=android.permission.PACKAGE_VERIFICATION_AGENT
    机器人:标签=@字符串/ permlab_packageVerificationAgent
    机器人:说明=@字符串/ permdesc_packageVerificationAgent
    安卓的ProtectionLevel =签名|系统/>
 

如果有是XML块上的 @hide 注释,你找不到任何资源从大约此权限的文档。

When I do a dump of all permissions on all apps on a Nexus 7 I get (as expected) permissions with protection levels 0 (NORMAL), 1 (DANGEROUS), 2 (SIGNATURE). Nothing is logging under 3 (SIGNATURE_OR_SYSTEM)*.

But there are also a lot of permissions whose protection level is set at '18' and some that are '50'.

I can't find any documentation on what these values represent. Does anybody know?

*It's not logging anything under 3.

These are what was logged:

android.permission.ACCESS_CACHE_FILESYSTEM - 18
android.permission.ACCESS_CHECKIN_PROPERTIES - 18
android.permission.ACCESS_DOWNLOAD_MANAGER - 18
android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED - 18
android.permission.ACCESS_MTP - 18
android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK - 18
android.permission.BACKUP - 18
android.permission.BIND_APPWIDGET - 18
android.permission.BIND_DIRECTORY_SEARCH - 18
android.permission.BIND_KEYGUARD_APPWIDGET - 18
android.permission.BIND_REMOTEVIEWS - 18
android.permission.BIND_WALLPAPER - 18
android.permission.CALL_PRIVILEGED - 18
android.permission.CHANGE_COMPONENT_ENABLED_STATE - 18
android.permission.CHANGE_CONFIGURATION - 18
android.permission.CONNECTIVITY_INTERNAL - 18
android.permission.CONTROL_LOCATION_UPDATES - 18
android.permission.CRYPT_KEEPER - 18
android.permission.DELETE_CACHE_FILES - 18
android.permission.DELETE_PACKAGES - 18
android.permission.DOWNLOAD_CACHE_NON_PURGEABLE - 18
android.permission.GLOBAL_SEARCH - 18
android.permission.INSTALL_LOCATION_PROVIDER - 18
android.permission.INSTALL_PACKAGES - 18
android.permission.MANAGE_USB - 18
android.permission.MANAGE_USERS - 18
android.permission.MASTER_CLEAR - 18
android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS - 18
android.permission.MODIFY_NETWORK_ACCOUNTING - 18
android.permission.MODIFY_PHONE_STATE - 18
android.permission.MOUNT_FORMAT_FILESYSTEMS - 18
android.permission.MOUNT_UNMOUNT_FILESYSTEMS - 18
android.permission.MOVE_PACKAGE - 18
android.permission.PACKAGE_USAGE_STATS - 18
android.permission.PACKAGE_VERIFICATION_AGENT - 18
android.permission.PERFORM_CDMA_PROVISIONING - 18
android.permission.READ_FRAME_BUFFER - 18
android.permission.READ_NETWORK_USAGE_HISTORY - 18
android.permission.READ_PRIVILEGED_PHONE_STATE - 18
android.permission.REBOOT - 18
android.permission.RECEIVE_DATA_ACTIVITY_CHANGE - 18
android.permission.RECEIVE_EMERGENCY_BROADCAST - 18
android.permission.RETRIEVE_WINDOW_CONTENT - 18
android.permission.SEND_SMS_NO_CONFIRMATION - 18
android.permission.SERIAL_PORT - 18
android.permission.SET_TIME - 18
android.permission.SET_WALLPAPER_COMPONENT - 18
android.permission.SHUTDOWN - 18
android.permission.STATUS_BAR - 18
android.permission.STOP_APP_SWITCHES - 18
android.permission.UPDATE_DEVICE_STATS - 18
android.permission.UPDATE_LOCK - 18
android.permission.WRITE_APN_SETTINGS - 18
android.permission.WRITE_GSERVICES - 18
android.permission.WRITE_MEDIA_STORAGE - 18
com.android.chrome.TOS_ACKED - 18
com.android.launcher.permission.PRELOAD_WORKSPACE - 18
com.android.vending.TOS_ACKED - 18
com.android.vending.billing.ADD_CREDIT_CARD - 18
com.android.vending.billing.BILLING_ACCOUNT_SERVICE - 18
com.google.android.c2dm.permission.SEND - 18
com.google.android.gallery3d.permission.GALLERY_PROVIDER - 18
com.google.android.gtalkservice.permission.SEND_HEARTBEAT - 18
com.google.android.partnersetup.permission.UPDATE_CLIENT_ID - 18
com.google.android.permission.BROADCAST_DATA_MESSAGE - 18
com.google.android.providers.gsf.permission.WRITE_GSERVICES - 18
com.google.android.xmpp.permission.BROADCAST - 18
com.google.android.xmpp.permission.XMPP_ENDPOINT_BROADCAST - 18

android.permission.CHANGE_CONFIGURATION - 50
android.permission.DUMP - 50
android.permission.INTERACT_ACROSS_USERS - 50
android.permission.READ_LOGS - 50
android.permission.SET_ALWAYS_FINISH - 50
android.permission.SET_ANIMATION_SCALE - 50
android.permission.SET_DEBUG_APP - 50
android.permission.SET_PROCESS_LIMIT - 50
android.permission.SIGNAL_PERSISTENT_PROCESSES - 50
android.permission.WRITE_SECURE_SETTINGS - 50

解决方案

Just saw an old unanswered question. Although you might already get your answer, I'll answer it anyway. It may help others. :)

there are also a lot of permissions whose protection level is set at '18' and some that are '50'.

The following code is retrieved from PermissionInfo.java in Android Source:

/**
 * Additional flag for {@link #protectionLevel}, corresponding
 * to the <code>system</code> value of
 * {@link android.R.attr#protectionLevel}.
 */
public static final int PROTECTION_FLAG_SYSTEM = 0x10;

/**
 * Additional flag for {@link #protectionLevel}, corresponding
 * to the <code>development</code> value of
 * {@link android.R.attr#protectionLevel}.
 */
public static final int PROTECTION_FLAG_DEVELOPMENT = 0x20;

So if there is a signature/system permission, the level would be 18(0x10 | 0x2). If the permission use used for special development tools, it would be 50(0x10 | 0x20 | 0x2).

I can't find any documentation on what these values represent. Does anybody know?

As I answered in an existing question, you can checked the protection level and the description of these permissions in framework/base/core/res/AndroidManifest.xml and framework/base/data/etc/platform.xml. I post some of them here for your reference.

<!-- Configure an application for debugging. -->
<permission android:name="android.permission.SET_DEBUG_APP"
    android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS"
    android:protectionLevel="signature|system|development"
    android:label="@string/permlab_setDebugApp"
    android:description="@string/permdesc_setDebugApp" />

<!-- @hide Package verifier needs to have this permission before the PackageManager will
     trust it to verify packages.
-->
<permission android:name="android.permission.PACKAGE_VERIFICATION_AGENT"
    android:label="@string/permlab_packageVerificationAgent"
    android:description="@string/permdesc_packageVerificationAgent"
    android:protectionLevel="signature|system" />

If there is a @hide annotation on that xml block, you cannot find any resources from documentation about this permission.

阅读全文

相关推荐

最新文章