2012-11-22 4 views
8

Wenn ich einen Dump aller Berechtigungen auf allen Anwendungen auf einem Nexus 7 mache ich bekomme (wie erwartet) Berechtigungen mit Schutzstufen 0 (NORMAL), 1 (GEFÄHRLICH), 2 (UNTERSCHRIFT). Nichts protokolliert unter 3 (SIGNATURE_OR_SYSTEM) *.Android Berechtigungen Schutzstufen 18 und 50

Aber es gibt auch viele Berechtigungen, deren Schutzstufe auf "18" und manche auf "50" gesetzt sind.

Ich kann keine Dokumentation darüber finden, was diese Werte darstellen. Weiss es jemand?

* Es Anmeldung nichts unter 3.

Diese sind, was protokolliert wurde:

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 
+1

Wie lauten die Berechtigungsnamen und -werte für die 18- und 50-Ebenen? Sind irgendwelche Apps aus der AOSP, für die Sie die Quelle untersuchen können? – CommonsWare

+0

Wie machst du es? Viele der 18 sind nur "signatureOrSystem" und 50 sind nur "gefährlich". – kennytm

+0

Dumping über Logcat (Iteration über alle/PackInfo's von ApplicationInfo und Bildung einer Menge aller Berechtigungen) Der Wert wird aus PermissionInfo.protectionLevel genommen. –

Antwort

14

Gerade gesehen, eine alte offene Frage. Obwohl du deine Antwort vielleicht schon bekommst, beantworte ich sie trotzdem. Es kann anderen helfen. :)

Es gibt auch viele Berechtigungen, deren Schutzstufe auf "18" und einige auf "50" gesetzt sind.

Der folgende Code wird von PermissionInfo.java in Android Quelle abgerufen:

/** 
* 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; 

Also, wenn es eine Signatur/System Erlaubnis ist, würde das Level 18 sein (0x10 | 0x2). Wenn die Berechtigung für spezielle Entwicklungstools verwendet wird, wäre dies 50 (0x10 | 0x20 | 0x2).

Ich kann keine Dokumentation darüber finden, was diese Werte darstellen. Weiss es jemand?

Wie ich answered in an existing question, können Sie überprüft die Sicherheitsstufe und die Beschreibung dieser Berechtigungen in framework/base/core/res/AndroidManifest.xml und framework/base/data/etc/platform.xml. Ich poste einige von ihnen hier für Ihre Referenz.

<!-- 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" /> 

Wenn es eine @hide Anmerkung auf dem XML-Block ist, können Sie keine Ressourcen aus der Dokumentation zu dieser Berechtigung finden.

1

Die Entwicklungserlaubnis 0x20, die diejenigen zusammensetzt, auf die Sie sich beziehen, sind eine Reihe von Berechtigungen, die von Google während der Android-Entwicklung eingeführt wurden und von der PackageManager automatisch nicht gewährt werden. Um sie verwenden zu können, müssen Sie die Verwendung von adb shell pm grant permission gewähren.

Sie können den Code sehen, der das tut und die Änderung, die von Google auf dieser 02/21/2012 commit eingeführt wurde.

+0

Wenn Sie Erlaubnis sagen, meinen Sie etwas wie android.permission.MAIN_APP_DISPLAYED? –

Verwandte Themen