Академический Документы
Профессиональный Документы
Культура Документы
Android es un sistema operativo diseado por Android Inc. (una compaa ubicada en
Palo Alto, California) para dispositivos mviles, comprada por Google en el ao 2005,
que usa cdigo abierto.
En un principio se pens que Google diseara dispositivos mviles que hicieran uso
exclusivo del sistema operativo de Android, pero en 2007 se anunci la unin a la Open
Handset Alliance (OHA)2 lo que significaba que oficialmente Android se establecera
como una plataforma de cdigo abierto y con estndares pblicos. Esto permite que
cualquier desarrollador haga uso del cdigo y del sistema, extendindolo o
mejorndolo. De hecho, una persona podra descargarse el cdigo fuente, modificarlo
y venderlo instalado en terminales.
Android fue diseado para ejecutarlo en cualquier clase de dispositivo sin hacer
ninguna clase de presuncin sobre el tamao de la pantalla, la resolucin, etc. ya que,
por primera vez se hace distincin entre el hardware del dispositivo y el software que
se ejecuta en l. Su ncleo est diseado para que sea portable.
El hecho de que Google haya decidido que Android fuera un sistema operativo libre y
de cdigo abierto se debe a la filosofa de la compaa con respecto a que la
informacin debe ser universalmente accesible y til. Aunque Google tiene algunas
licencias propietarias (p. e. Gmail y Maps) y obtiene ciertos beneficios en el Android
market (Google Play), sus principales ingresos siguen viniendo de la publicidad. Por
tanto, el hecho de que se use cdigo abierto no influye en sus beneficios, a diferencia
de lo que ocurre con otras compaas como Apple.
El sistema operativo de Android est formado por varias capas y cada una de las capas
realiza una funcin. Las principales cuatro capas en la que se divide Android son:
1. El kernel.
2. Las libreras y la mquina Virtual Dalvik (mquina virtual ART a partir de la
versin KitKat de Android, ver en apartado 2.2.1).
3. Marco de aplicacin.
4. Las aplicaciones.
La arquitectura del sistema operativo de Android se muestra en la siguiente imagen:
Open Handset Alliance es un consorcio formado por un gran nmero de empresas punteras divididas
en cinco categoras: Operadoras, fabricantes de telfonos, empresas de software, empresas
semiconductoras y empresas de comercializacin.
Arquitectura del sistema operativo de Android. En color rojo se muestra el kernel, en verde
las libreras, en amarillo la mquina virtual, la primera capa de azul pertenece al marco de aplicaciones y
la segunda capa de azul pertenece a las aplicaciones.
Actividades
Es cada una de las pantallas que forman la interfaz de usuario. Cada aplicacin
es una agrupacin de actividades que hace que la experiencia de usuario sea
coherente, si bien, cada actividad es independiente a otra. Como ejemplo, se
muestran dos actividades correspondientes a dos pantallas de la aplicacin
desarrollada en este proyecto.
Servicios
Son componentes que se ejecutan en segundo plano para la realizacin de
acciones que requieran un mayor tiempo de ejecucin o que se realizan de
Proveedores de contenido
Los proveedores de contenido almacenan, recuperan y hacen accesibles a las
aplicaciones un conjunto de datos, es decir, actan como repositorios de datos
a los cuales las aplicaciones pueden acceder o incluso pueden modificar esos
datos si el proveedor del contenido lo permite. Esta es la nica forma de
compartir contenido entre aplicaciones. Un ejemplo de esto sera los contactos
de la agenda telefnica.
Receptor de anuncios
Es un componente que recibe y reacciona ante anuncios globales de tipo
Broadcast. No tienen una interfaz de usuario pero pueden crear una actividad o
crear una notificacin para informar al usuario. Algunos ejemplos de esto, son
el aviso de batera baja o las llamadas entrantes.
Las API (Application Programming Interface), se utilizan para obtener cierto nivel de
abstraccin haciendo de intermediario entre un usuario y las diferentes operaciones
que realiza una aplicacin, es decir, representa la capacidad de comunicacin entre
componentes software. Por ejemplo, se pueden considerar APIs ciertas libreras que
un programador puede usar para desarrollar una aplicacin que a la vez hacen uso de
libreras ya existentes.
Desde su creacin el sistema operativo de Android ha tenido varias versiones. Las
versiones no dan informacin sobre el software, sino sobre los niveles de API. Algunas
veces, la versin cambia debido a un cambio en las APIs y otras por mejoras hechas
gracias a errores detectados en el cdigo.
A continuacin se muestra una tabla con las diferentes versiones de Android y sus
niveles de API (tabla extendida con las caractersticas de cada versin en el Anexo A):
Lanzamiento
Versin
Nivel de API
23 de Sept. 2008
Android 1.0
Nivel de API 1
9 de Feb. 2009
Android 1.1
Nivel de API 2
Cupcake
Abril 2009
Android 1.5
Nivel de API 3
Donut
Sept. 2009
Android 1.6
Nivel de API 4
Eclair
26 de Nov. 2009
Android 2.0
Nivel de API 5
3 de Dic. 2009
Android 2.0.1
Nivel de API 6
12 de Enero 2010
Android 2.1
Nivel de API 7
Froyo
20 de Mayo 2010
Android 2.2
18 de Enero 2011
Android 2.2.1
22 de Enero 2011
Android 2.2.2
21 de Nov. 2011
Android 2.2.3
Gingerbread
Nivel de API 8
6 de Dic. 2010
Android 2.3
9 de Feb. 2011
Android 2.3.3
28 de Abril 2011
Android 2.3.4
25 de Julio 2011
Android 2.3.5
2 de Sept. 2011
Android 2.3.6
21 de Sept. 2011
Android 2.3.7
Nivel de API 9
Nivel de API 10
HoneyComb
Feb. 2011
Android 3.0
Nivel de API 11
10 de Mayo 2011
Android 3.1
Nivel de API 12
15 de Julio 2011
Android 3.2
20 de Sept. 2011
Android 3.2.1
Nivel de API 13
Ice-Cream Sandwich
Oct. 2011
Android 4.0/4.0.3
Nivel de API 14 y 15
Jelly Bean
27 de Jun. 2012
Android 4.1
Android 4.1.1/4.1.2
29 de Oct. 2012
Android 4.2
Nivel de API 17
24 de Julio de 2013
Android 4.3
Nivel de API 18
Nivel de API 16
KitKat
31 de Octubre de 2013
Android 4.4
Nivel de API 19
Yaffs2 es la evolucin de Yaffs y Yaffs1. Yaffs es un sistema de ficheros diseado por Charles Manning
para memorias flash NAND. Prolonga la vida de la memoria flash y es robusta a cambio de energa. El
tamao mximo del sistema de ficheros que proporciona es de 8 GiB
Seguridad en Android
Se puede afirmar que no existe ningn sistema que sea totalmente seguro. Por tanto,
Android no es una excepcin, ya que tambin presenta ciertas vulnerabilidades.
Android fue diseado con seguridad multicapa que proporciona la flexibilidad
requerida para una plataforma abierta. Adems, no slo fue diseada pensando en la
seguridad del usuario, sino tambin en la seguridad del desarrollador.
A nivel global, Google tiene la capacidad de eliminar remotamente una aplicacin no
slo de Android Market (actualmente Google Play Store), sino tambin directamente
de un dispositivo. La caracterstica de eliminacin de una aplicacin de forma remota
es un control de seguridad que Android posee donde una aplicacin peligrosa podra
ser eliminada de la circulacin activa de una forma rpida y escalable para prevenir de
mayores exposiciones a los usuarios. El control de seguridad fue ejercido por primera
vez en Junio de 2010 cuando un investigador de seguridad distribuy una aplicacin de
prueba que la poda permitir descargar e instalar otras aplicaciones en el dispositivo.
[12].
La aplicacin diseada por este investigador, permita tener control de forma remota
sobre el dispositivo en el cual se instalaba. De este modo, el diseador de la aplicacin
acceda a los datos de los mviles de las personas que haban descargado esta
aplicacin. Se distribuy como dos aplicaciones distintas, aunque hacan lo mismo.
Dalvik Virtual Machine, DVM: es una mquina virtual optimizada para dispositivos mviles,
especficamente diseada para ejecutarse rpido en todos los dispositivos que utilizan Android como
sistema operativo. Una mquina virtual es un sistema operativo que se ejecuta dentro de otro sistema
operativo.
quiere descargarse una aplicacin observa en la pantalla los permisos que requiere esa
aplicacin, lo que hace que conozca mejor su comportamiento y pueda decidir si
instalar la aplicacin resultar perjudicial para su dispositivo.
El problema con los permisos es que no se puede asegurar que una persona lea todos
los permisos que requiere una aplicacin. Por ese motivo, un desarrollador debe ser
conciso a la hora de declarar los permisos.
Existe la posibilidad de que un desarrollador cree su propio permiso, el cual debe ser
declarado en el manifiesto. Adems existe la posibilidad de categorizar los permisos.
Existen cuatro tipos de categoras:
Constante
Valor
Normal
Dangerous
Signature
signatureOrSystem
Descripcin
Permiso que informa de un riesgo de bajo nivel que
da a una aplicacin acceso a caractersticas aisladas
del nivel de aplicaciones, con riesgos mnimos para
otras aplicaciones, el sistema o el usuario. No
requieren una aprobacin explcita, aunque el usuario
siempre tiene la posibilidad de ver cules son los
permisos.
Un permiso con un riesgo mayor que da acceso a las
aplicaciones a datos privados del usuario o
proporciona un control sobre el dispositivo que puede
impactar negativamente sobre el usuario. Requieren
permiso explicito por parte del usuario.
Este permiso slo se concede si la aplicacin solicitada
est firmada con el mismo certificado que la
aplicacin que declara el permiso. Si los certificados
coinciden, la aplicacin se instala sin preguntrselo al
usuario.
Siguen la misma norma que los permisos signature,
excepto que se le da automticamente a la imagen
del sistema de Android adems de solicitar el
certificado de la aplicacin.
Permisos de android
En marzo del ao 2014 se detect un importante fallo en Android que afecta a todas
las versiones de Android. Este fallo implica problemas de malware al realizar
actualizaciones en el sistema operativo de Android.
Este fallo consiste en que un usuario puede instalarse una aplicacin aparentemente
inofensiva y que requiere pocos permisos o que no requieren el acceso a datos
importantes, pero a la hora de realizar actualizaciones, la aplicacin eleva sus
privilegios accediendo as a cierta informacin importante o a ciertas funciones del
dispositivo como los mensajes de voz, los credenciales de acceso, mensajes de texto o
registros de llamadas y ms acciones fraudulentas y peligrosas para el usuario.
Actualmente, Google est trabajando para solucionar este fallo.
La forma de evitar este fallo es comprobar quin o quines son los desarrolladores de
la aplicacin (por ejemplo, si es una empresa conocida), comprobar la puntuacin que
los usuarios le dan a la aplicacin en Google Play e informarse sobre la aplicacin en
otras fuentes de informacin. [68][69]
Comparando Android con otros sistemas operativos como iOS, el nmero de
vulnerabilidades de Android (27) es ocho veces menor que iOS (228), es decir, que
presenta ms debilidades que podran comprometer la seguridad. En realidad, la mala
fama que puede tener Android en relacin a iOS es debido a que Android suele sufrir
ms ataques de seguridad (vienen del exterior), ya que a mayor nmero de usuarios,
mayor es la probabilidad de sufrir ataques. [18]
Se muestra a continuacin un par de tablas, en las que se muestra el nmero de
vulnerabilidades segn el sistema operativo (en la primera tabla) y el nmero de
malware segn el sistema operativo (segunda tabla) que se produjeron durante el ao
2012 recogido en un informe de seguridad en internet de Symantec del ao 2013: