Niveles de protección de los permisos de Android 18 y 50
Cuando hago un volcado de todos los permisos en todas las aplicaciones en un Nexus 7 obtengo (como esperaba) permisos con niveles de protección 0 (NORMAL), 1 (PELIGROSO), 2 (FIRMA). Nada está registrando menos de 3 (SIGNATURE_OR_SYSTEM) *.
Pero también hay un montón de permisos cuyo nivel de protección se establece en '18' y algunos que son '50'.
- Fragmento implementando AsyncTask y Listview en android
- JSON Array iteration en Android / Java
- ¿Qué es el comando adb para enumerar todos los navegadores instalados en el dispositivo android?
- Obtener una cadena de texto de EditText?
- Cómo importar un paquete java en Android Studio
No encuentro ninguna documentación sobre lo que representan estos valores. ¿Alguien sabe?
* No registra nada debajo de 3.
Estos son los que se registraron:
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
- 'java.lang.String android.os.Bundle.getString (java.lang.String)' en una referencia de objeto nulo
- Crear un controlador personalizado de finalización / devolución de llamada para devolver objetos después de que se completa una solicitud HTTP
- Validación de EditText con TextWatcher
- ¿Qué es el parámetro "convertView" en el método getView () de ArrayAdapter
- Garbage Collection en android (Hecho manualmente)
- Android JSONObject: agrega Array al método put
- Lista lenta cuando se establece la fuente personalizada
- ¿Podemos ordenar las entradas por orden alfabético en una hoja de Excel basada en un cierto valor de columna
Acabo de ver una vieja pregunta sin respuesta. A pesar de que ya puede obtener su respuesta, voy a responder de todos modos. Puede ayudar a otros. 🙂
También hay un montón de permisos cuyo nivel de protección se establece en '18' y algunos que son '50'.
El siguiente código se recupera de PermissionInfo.java en Android Fuente:
/** * 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;
Así que si hay un permiso de firma / sistema, el nivel sería 18 (0x10 | 0x2). Si el uso del permiso usado para las herramientas especiales del desarrollo, sería 50 (0x10 | 0x20 | 0x2).
No encuentro ninguna documentación sobre lo que representan estos valores. ¿Alguien sabe?
Como respondí en una pregunta existente , puede comprobar el nivel de protección y la descripción de estos permisos en framework/base/core/res/AndroidManifest.xml
y framework/base/data/etc/platform.xml
. Puedo publicar algunos de ellos aquí para su referencia.
<!-- 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" />
Si hay una anotación @hide
en ese bloque xml, no puede encontrar ningún recurso de la documentación acerca de este permiso.
El permiso de desarrollo 0x20 que compone los que se está refiriendo son un conjunto de permisos introducidos por Google para ser utilizados durante el desarrollo de Android y nunca son concedidos por el PackageManager
automáticamente. Para poder usarlos debes conceder usando el adb shell pm grant permission
.
Puedes ver el código que hace eso y el cambio que introdujo Google en este 02/21/2012 commit .
- ¿Cómo dejar de mostrar el mensaje de Toast cuando la aplicación está cerrada?
- Cambiar el huso horario en android mediante programación