Archivo de la categoría ‘Gadgets’

Facebook, Facebook Lite, Servicios de Facebook, Messenger de Facebook… y como lidiar con todo ello

Share on Google+Share on FacebookTweet about this on Twitter

No, no estoy muerto, y lo cierto es que este año ni siquiera pude felicitaros a todos estas navidades pasadas ni este nuevo año. Así que antes que nada, un saludo a todos amigos, y mi promesa de intentar escribir de forma más habitual, desde luego no será por no tener material por el cual no hacerlo 😉

Hoy por lo que se ve la cosa va de Facebook. En realidad este artículo era uno de esos que estaban en el cajón del “ya escribiré”. Por desgracia la falta de imaginación me impedía escoger un mejor título para ello, pero en cualquier caso hoy quiero hablar un poquito de esa gran porquería que Facebook hizo (y hace) con su aplicación, concretamente para Android por su amplia mayoría, pero en gran medida es aplicable a iOS.

Sin duda Facebook se ha convertido para muchos en un diario, y me atrevería a decir que una amplia mayoría tenemos su “maravillosa” aplicación en nuestro terminales. Pero como todo, no es oro todo lo que reluce, y cuando hablamos de Facebook la cosa siempre es mucho peor de lo que uno piensa. Puede que alguno no esté de acuerdo y crea que la aplicación es una maravilla en todo su amplio aspecto, pero de eso se trata las letras de hoy, en ver cuan porquería estamos instalando en nuestros terminales… y algunas soluciones a ello. Que sea un tirón de orejas para los amigos de Facebook:

 

Hablemos de Tamaños

Quien realmente piense que el tamaño no importa… se equivoca de cabo a rabo, siempre importa… y mucho más aun cuando no se tiene la mejor maquinaria del mundo. No obstante en este caso, cuanto más pequeño sea (la aplicación) mejor será.

La memoria de cualquier dispositivo (ya sea de almacenamiento principal, RAM, o secundario, SSD/HHD) es finita. Sí, cada día salen dispositivos mejores con mayores tamaños de almacenamiento y con una mayor cantidad de RAM, pero seguramente la mayoría de los presentes ha tenido que enfrentarse a dicho delicado problema antes. Cuanto mayor sea el tamaño de una aplicación mayor capacidad necesitará de almacenamiento, y presumiblemente también de RAM. Cuanto es asumible?? Evidentemente hay que ser realistas, si queremos correr un juego con texturas HD y lleno de polígonos por descontado que requeriremos unos recursos altos. Pero no hablamos de juegos, hablamos de una sencilla aplicación de red social. En números?? Bien, esto es lo que origina una instalación limpia de Facebook:

APK: 35.5 MBytes
Dalvik/ART: 107.4 MBytes
Datos Applicacion: 8 MBytes
Tamaño Total: 151 MBytes (Aprox) Almacenamiento

Una instalación limpia de Facebook ocupa la friolera de 151MB de espacio, insostenible para dispositivos de gama baja que no poseen una partición de datos amplia. Además esto trae consigo un problema adicional doble, y es que todos esos datos son usados eventualmente, con lo que desde la carga de la aplicación, su manejo, su instalación y su desinstalación… TODO hace que sea torpe y lenta en comparación. En contraposición, para los que se pregunten si estos valores son altos o no, citar sólo que Google+ que además incluye toda la gestión de Fotos, localización y otros, su tamaño total se queda en los 64MB (aprox). Es decir, menos de la mitad y con muchas más funciones.

Y que podemos decir de la RAM??

La RAM es aun más crítica que el espacio en muchas ocasiones, porque los dispositivos de gama baja que posean 512MB o incluso 1GB pueden verse rápidamente con la RAM agotada en muchos casos. Es lo de siempre, a más aplicaciones/servicios en ejecución (y según su tamaño) más RAM necesaria. Cuando no hay RAM disponible para satisfacer todo, el terminal debe de ir cerrando aplicaciones/servicios, haciendo que el dispositivo se vuelva muy muy lento. De nuevo, como se traduce esto??

Quizás una de las mejores formas de ver esto es mirando el número de servicios de los que Facebook hace gala. Estos servicios son por así decirlo pequeños procesos dentro de la aplicación que se disparan (o no) en ciertas ocasiones (o de forma ininterrumpida). Evidentemente a más servicios más pesada es la aplicación. Lo sorprendente del caso es que Facebook es sin duda alguna la aplicación con mayor número de servicios que se haya visto… o al menos que haya visto yo claro está. La única que la supera es como es natural los servicios de Google que TODOS tienen instalado en su terminal, pero esto no es comparable, ya que los servicios de Google son núcleo principal de todo Android. De nuevo… en números?

Servicios de Facebook: 67
Servicios de Google+: 35

Por si fuese poco, por lo general Facebook mantiene en ejecución de forma constante un buen número de ellos.

——————-

¿Como lidiar con ello?

Podemos hacer algunas cosas. En primer lugar recomendaría a la inmensa mayoría a usar lo que Facebook ha llamado “Facebook Lite”. La aplicación FB ha llegado a tal extremo que incluso los propios desarrolladores se han dado cuenta que muchos terminales tienen problemas para hacerla funcionar por la inmensa cantidad de recursos que necesita, así que lanzaron hace poco de forma “sigilosa” y sin darle publicidad una versión reducida de su aplicación. En teoría eta aplicación SOLO podrían instalarla aquellas personas que dispongan de terminales realmente bajos, forzando así Facebook a tener que instalar la versión ordinaria en el 90% de los casos, aun cuando la versión Lite funciona mucho mejor en un % muy superior.

Está claro que Facebook quiere que se siga usando su versión ordinaria. Pero esto no quita el echo de que podamos instalarla por nosotros mismos, aunque no por canales oficiales desgraciadamente. La aplicación es oficial:

https://play.google.com/store/apps/details?id=com.facebook.lite&hl=es

No obstante quien intente instalarla posiblemente le diga que su terminal no es compatible. Para poder instalarla deberá de descargarla desde cualquier sitio el APK directamente e instalarla, ya sea a través del navegador, de un gestor de archivos, por ADB, enviándosela por correo electrónico… podría poner enlaces pero ya conocéis mi política sobre ello. Haced una simple búsqueda en google y listo. La versión más actual hasta la fecha es la 1.5.0.13.30 (a día 28/02/15). La aplicación es más fea que la ordinaria estéticamente, pero pensad que el APK no llega siquiera a los 300KB, y que la aplicación es prácticamente a todos los efectos igual funcionalmente, y ademas ES POSIBLE USARLA PARA LEER MENSAJES Y CHATEAR, sin necesidad de otras aplicaciones. Por otro lado no tiene servicios asociados a ella, y el consumo de RAM es infinitamente inferior, y la aplicación corre mucho más rápida.

 

Quien no quiera usar Facebook Lite, las alternativas son más escasas. Lo primero sería deshabilitar gran parte de los 67 servicios que requiere. Que la aplicación use 67 servicios no quiere decir que nosotros no podamos bloquear los que queramos. De echo os puedo asegurar que la aplicación funciona perfectamente aun cuando se bloquean la mayoría de ellos. Por desgracia la única forma de bloquear servicios de una aplicación requiere tener el dispositivo Rooteado. Si es así, podemos hacer uso de aplicaciones como por ejemplo Disable Service:

https://play.google.com/store/apps/details?id=cn.wq.disableservice&hl=es

La mejor forma de ver que servicios son necesarios es o por su nombre e inducirlo, o prueba error.

Screenshot_2015-02-28-16-15-26

 

 Hablemos de datos generados

El tamaño es algo preocupante, pero el problema de espacio va mas allá. Como cualquier aplicación que se precie (y más si es una aplicación “online”) hace uso de una caché de datos. Esta caché va almacenando datos temporales con el fin de reusarlos cuando se requieran sin necesidad de realizar de nuevo peticiones a los servidores y descargar de nuevo el contenido, y que de este modo todo sea más rápido. Es lógico, si veo A, un minuto después veo B y un minuto después vuelvo a ver A, si A estaba cacheado esto sería automático. La teoría es clara, el problema sucede cuando este cacheo de datos no es eficiente.

Cuanto más usamos el navegador Web o cualquier aplicación de redes sociales, el caché aumenta como es natural, pero igualmente importante es saber que contenido se debe de cachear, por cuanto tiempo y poner un límite a ello. Esto es lógico, no querríamos cachear por ejemplo contenido por el que se busca una actualización ni agotar el espacio en disco por un caché enorme, que además hace que toda la aplicación sea más lenta.

Facebook hace un uso muy extensivo del caché… el problema es que ni permite delimitarlo, ni parece a veces tener fijado períodos de validez (fecha tras la cual los datos en una caché son purgados) y parece quererlo cachear todo siempre. En números?? Lo siento… no puedo, cada usuario tendrá valores muy dispares, y dependerán de cada caso y uso. No obstante invito a cada uno que mire en sus dispositivo a cuanto asciende este montante: Ajustes/Aplicaciones/Descargadas(o todas)/Facebook -> Cache. No nos sorprenderá ver como el caché llega en muchos casos perfectamente a los 200-400MB.

Otro problema que añade Facebook a la ecuación, es que desde hace un tiempo incluyó en su propia aplicación “visor web,” para que los usuarios al darle a algún artículo o enlace externo en vez de hacerse en nuestro navegador (mucho más funcional e infinitamente más seguro) lo abra en su propio “visor web”, el cual usa por supuesto más caché.

——————-

¿Como lidiar con ello?

Es más complicado evitar esto. Por desgracia Facebook no posee ningún parámetro para controlar la caché máxima usada o incluso deshabilitarla. La única opción es regularmente acceder a los ajustes del terminal y eliminarla: Ajustes/Aplicaciones/Todas|Descargadas -> Facebook -> Limpiar Caché.

Paralelamente, podemos cada X en X eliminar también los datos de esta, aunque eso nos obligaría tener que volver a Iniciar Sesión, y la mayoría de los datos se volverían a recrear.

Por supuesto, otra opción a todo este problema sería en gran parte usar, de nuevo, Facebook Lite.

 

Hablemos de Permisos

 Como cualquier aplicación móvil que dispongamos a día de hoy, cada una requiere de ciertos permisos para poder así acceder a los diferentes recursos de nuestro dispositivo, y por supuesto a nuestra información privada. Esto es necesario ya que si se denegase de forma global nuestra información a las aplicaciones la variedad de estas sería mas bien escasa, a fin de cuenta de poco sirve una aplicación de Contactos o Calendario si esta no puede acceder a nuestros contactos o calendario.

La picaresca de todo ello es evidente. Si una aplicación tiene permisos para acceder a X y dicha aplicación tiene permiso para acceder a la red, en teoría NADA le impediría enviar los datos X a los cuales tenía concedido permiso a un servidor remoto… es decir, robarnos información privada. En un mundo idílico en el que TODOS actuásemos siempre de buena fe esto no sería un problema ya que interpretaríamos que las aplicaciones tan solo accederían a nuestros datos a los cuales tienen permiso cuando así lo necesitasen para nuestro correcto uso, y que jamás accederían a nuestros datos (con permiso o sin ellos) para ser usados con fines maléficos. El problema es que nuestro mundo dicta mucho de ser idílico, y la información es poder.

Dicho esto, es necesario ciertos permisos a las aplicaciones?? Sí siempre y cuando su uso sea justificado. No cuando dicha aplicación no tendría que hacer uso de la información que solicita. Vamos a ver ejemplos lícitos:

-Whatsapp acceso a contactos -> Es necesario, de lo contrario no podríamos conocer el estado de nuestros contactos, ni siquiera el nombre de ellos en la aplicacion.
-Whatsapp ubicación -> Necesario, pero la aplicación sólo debería de acceder a la ubicación CUANDO COMPARTIMOS NUESTRA UBICACIÓN CON UN CONTACTO, no antes, no después (actualmente es como lo hace)
-Facebook -> Acceso al almacenamiento -> Es necesario dado que podemos compartir fotos y otros, y por tanto la aplicación debe de poder acceder a nuestro almacenamiento
-Aplicaciones de Cámara -> Necesita acceso a la cámara porque de lo contrario serviría para poco..

La mayoría de los permisos de Facebook son realmente legítimos y su uso es justificado, el problema es que hay otros permisos que aun siendo justificados hace uso de ellos cuando él quiere, y otros que por descontado son peligrosos. No voy a listar todos los permisos, sólo los que nos interesan:

-Ubicación: Facebook en teoría hace uso de este permiso para poder establecer en las entradas la ubicación desde la cual se realiza la publicación, lo cual podría ser legítimo. El problema es que nuestra ubicación se está transmitiendo de forma constante a Facebook la queramos usar o no. Esto quiere decir que Facebook puede saber prácticamente en cualquier momento la ubicación, al menos aproximada, de cualquiera que no tenga dicho permiso bloqueado.

-Contactos: Facebook generalmente nada más arrancarlo nos permite si deseamos “compartir” nuestra agenda generosamente con ellos. Sí, tal como suena, nuestra agenda de contactos es enviada a Facebook. La excusa a esto es que así el usuario puede encontrar a amigos que no tengan en su facebook gracias a que Facebook cruza su agenda con números de teléfonos registrados en Facebook y demás. Personalmente me parece cuanto menos peligroso este tipo de prácticas.

-Llamadas: Es posible que en algún punto de Facebook este permita llamar directamente a un contacto de Facebook, cosa que ignoro, pero lo cierto es que Facebook tiene permitido el poder realizar llamadas desde el terminal, así como leer y mandar SMS. No pongo en tela de juicio el uso que hagan de él, y al contrario de lo que sucede con la ubicación no tengo constancia de que facebook haga uso de este permiso… pero si está para algo estará.

——————-

¿Como lidiar con ello?

Por lo general no podemos rescindir permisos de una aplicación. Podemos no instalarla si no estamos de acuerdo con ella, pero no seleccionar selectivamente estos a la hora de instalarla. No obstante, al igual que sucedía con los servicios, si el dispositivo está Rooteado o incluso en algunas versiones de Android JellyBean sin necesidad de rootear, podemos instalar/usar un gestor de permisos que sí nos permita de forma selectiva habilitar aquellos que deseamos o no. Algunas ROMs personalizadas así como algunas de algunos fabricantes TAMBIÉN permiten realizar esto de un modo similar.

Hay que tener no obstante cuidado cuando se restringe un permiso a una aplicación, ya que muchas veces podemos estar suprimiendo un permiso necesario para su correcto funcionamiento, y el eliminarlo supondría desde un comportamiento anómalo hasta el crash de la aplicación misma. Así que cuidado…

En este caso por poner un ejemplo podríamos usar la siguiente aplicación, inspirada a su vez a la funcionalidad nativa que Google implementó de forma secreta en JellyBean y eliminó más tarde:

https://play.google.com/store/apps/details?id=fr.slvn.appops&hl=es

 Lo más útil posiblemente de este tipo de aplicaciones es que te muestra incluso cuando fue la última vez que una aplicación hizo uso de alguno de los permisos listados. Por contra, no se listan TODOS los permisos que tienen las aplicaciones.

Screenshot_2015-03-01-19-14-41

Faltan un buen puñado más que está más arriba. En mi caso por ejemplo, tan solo tiene permisos para básicamente mostrarme las notificaciones y mantenerse la aplicación de fondo. Si pusiese una imagen la haría desde la cámara propia y no desde las funciones integradas de Facebook, así como si lo que quisiese fuese enviar un mensaje de voz… evidentemente al denegar el acceso a facebook a dichos permisos, es normal que algunas funciones no funcionasen correctamente. Por otro lado me aseguro que Facebook no pueda tener nunca ni acceder a mi agenda, a mi cámara, calendario, ubicacion… y otros.

Otra buena forma de combatir estos abusos es aplicar un planteamiento diferente. El problema es evidente el posible robo de información, o el no desear que otros tengan nuestros datos. Bien, en aquellas aplicaciones por tanto que no requieran realmente una conexión a Internet y que la usan ya sea para mostrarnos publicidad, reportar estadísticas y otros… se les puede denegar la conexión. Dicho de otro modo, podemos bloquear cualquier aplicación a que acceda a internet, y por ello accedan a la información que accedan es irrelevante, puesto que no puede comunicarla (a lo mejor por SMS u otros medios, pero no entremos en eso). Muchas ROMs e incluso aplicaciones de seguridad permiten hacer esto de forma sencilla, y podemos escoger a voluntad que aplicaciones tienen acceso y cuales no, ya sea por WIFI o por redes móviles.

Personalmente me gusta lo sencillo:

https://play.google.com/store/apps/details?id=com.googlecode.droidwall.free&hl=es

De cualquier modo esta aplicación requeriría Root, y en el caso de Facebook sería totalmente ineficaz, ya que Facebook requiere como es natural acceso a la red sí o sí. Pero la dejo de todos modos por su simpleza, comodidad y realmente utilidad.

 

Hablemos de duplicidades

Hace algún tiempo, cuando deseábamos hablar con un contacto o leer sencillamente un simple mensaje privado de Facebook lo podíamos hacer de forma sencilla a través de la propia aplicación. En algún punto Facebook decidió que para que permitir a los usuarios hacer eso, si podían sacar OTRA aplicación para poder hacer LO MISMO en esencia, con la pega de tener que instalar otra aplicación, con el consumo de espacio añadido, consumo de servicios añadidos, permisos añadidos… suma y sigue, suma y sigue.

Muchos podrán decir que es una idea muy adecuada para aquellos que no quieren usar Facebook para “hablar”, o para que aquellos que no usasen estas funciones tener una aplicación de Facebook más ligera eliminando de ella todos los servicios y funciones asociadas al chateo. El problema es que esto es falso.

La aplicación oficial de Facebook sigue estando totalmente equipada para funcionar de forma autónoma para chatear y leer mensajes privados, no solo no se ha eliminado sus funciones sino que se han seguido implementando en ella. Que la mayoría de las personas no pueda usar dicha función no radica en el echo de que se haya siquiera eliminado de Facebook, sino que estos por defecto impiden el acceso a dicha característica, para forzar evidentemente a instalar su Messenger.

No obstante la aplicación de Messenger no es la única duplicidad que Facebook quiere tener en su aplicación, y como ya comenté anteriormente un “visor” web incorporado para que el usuario en la medida de lo posible nunca abandone el uso de su aplicación, sin contar con que puede recuperar más información del usuario, publicidad…

En un principio la idea podría verse como positiva, pero tiene muchos más contras que pros. Para empezar, un navegador web (ni siquiera un visor web) nace de un día a otro. Son 3 las principales preocupaciones de los navegadores: Compatibilidad/Estándares, Seguridad y Rendimiento. Abrir un enlace en Facebook puede ser tremendamente peligroso, dado que los navegadores son el 1º foco de entrada a los exploits!! Si ya le cuesta mucho trabajo a Chrome, Firefox, IE… lidiar con ellos, un visor web mejor ni mentarlo. Por otro lado, rara es la semana que no me llama alguien o me comenta que cada vez que esta en FB e intenta ver algo desde él la página no se muestra correctamente o la aplicación se cierra o causas similares… y lo que no sabe ese usuario es que realmente FB está abriendo dicho enlace en la misma aplicación, no en su navegador web de siempre.

 ——————-

¿Como lidiar con ello?

 No podemos eliminar funciones integradas en Facebook, pero podemos ponerles coto. En primer lugar, pensar si realmente necesitamos la aplicación Messenger. Me encuentro a diarios terminales que tienen un elenco sin fin de aplicaciones de mensajería y de Redes Sociales. ¿Realmente se necesitan tantas? Personalmente me niego a tener instalada una aplicación de mensajería para cada ocasión o persona, y si a quien quiere comunicarse conmigo no le parece adecuado… pues que no lo haga. Estar comunicado SI, pero no a cualquier precio, hay que ser práctico, de nada me facilita la vida 100 aplicaciones. Messenger para Facebook?? No gracias. Sobre el “navegador” interno?? Más de lo mismo, pero eso lo trataré mejor en la siguiente sección, dado que esta opción si puede deshabilitarse directamente en Facebook.

El problema es que Facebook impide entonces el acceso a mensajes privados y a contactar directamente con ellos (cosa que me parece totalmente inaceptable). Por suerte este atropello sí podemos sortearlo de dos formas diferentes.

-La primera, pasa por usar Facebook Lite que SI PERMITE estas opciones
-La segunda pasa por modificar una pequeña variable en las preferencias internas de Facebook para poder habilitar de forma permanente el messenger QUE TIENE y que Facebook deshabilita para que instalemos su aplicación

Sobre la primera solución ya se ha citado, sobre la segunda habrá que hacer uso de nuevo de un terminal Rooteado. Por qué?? Porque en Android la única aplicación que puede acceder a sus datos es ella misma… y por supuesto el superusuario root. Con él podemos entrar, salir, modificar… a voluntad lo que queramos. En este caso es un proceso sencillo, y podemos hacerlo desde el propio terminal o desde un PC si lo preferimos. De lo que se trata es básicamente abrir la base de datos de las preferencias internas de Facebook, modificar la que deseamos, guardar los cambios y listo.

El archivo que necesitamos localizar está en la carpeta de datos de Facebook, esto es generalmente en:

/data/data/com.facebook.katana/databases/prefs_db

Es una base de datos estándar SQLite con un buen número de parámetros. El que nos interesa sin embargo (en la tabla preferences) es_

“/config/force_messenger/first_shown_1”

La tabla contiene 3 columnas, el parámetro (key) que es el que hemos indicado, Type que establece el tipo de dato (booleano, entero…) que dicho parámetro almacena, y la última columna el valor. El valor de dicha preferencia no es otra cosa que un timestamp (fecha) de cuando fue la primera vez que se abrió Facebook en esa instalación. Si lo pensamos, cuando instalamos de nuevas Facebook podemos de echo usar el messenger durante un tiempo. Internamente Facebook sencillamente hace una cuenta sencilla, si han pasado X días desde la instalación, se impide el acceso a los mensajes. Como arreglarlo? Sencillamente, estableciendo un timestamp absurdo futuro, de este modo esos X días nunca llegarán a pasar.

El valor es un timestamp Epoch linux estándar. Posiblemente el valor que cada uno tiene puesto actualmente sea aproximado al día que inició FB por 1º vez desde la instalación de la aplicación (o si se eliminaron los datos de esta). No voy ahora a explicar el significado de dicho número porque hay más que información en internet sobre ello, basta decir que si ese valor (que equivale a una fecha y hora concreta) lo modificamos por otra futura de amplio rango… problema solucionado. Por ejemplo, podríamos cambiar dicho valor por:

“2524608000”, que sería el 1 de Enero de 2050 a las 0.00.

Con guardar los cambios en la base de datos y actualizar el archivo original, el problema estaría solucionado, tendríamos acceso tanto a nuestros mensajes privados como a poder chatear con cualquier contacto sin necesidad de la aplicación externa.

 

 Hablemos del tráfico de Datos usados

 Datos, datos, datos… No, no tenemos planes de datos ilimitados. Por WIFI no hay problema, pero cuando pasamos a redes móviles muchos se dan cuenta que sus planes de datos actuales se van quedando cada vez con menor margen de maniobra, y en muchos casos obligados a buscar planes de datos mayores. Pero como es posible que antes con 1GB algunos pudiesen hacer MÁS de lo que ahora pueden hacer con 2GB?? No es un misterio, y no es siquiera un complot en nuestra contra!! Es el abuso de algunos desarrolladores que creen que todos los recursos son ilimitados, y aplican incorrectamente políticas en la forma de gestionar estos recursos.

Cualquier aplicación que pueda hacer un uso alto de datos, debería de aplicar por defecto reglas conservadoras en cuanto al uso de datos móviles, es decir, permitir por defecto si se desea los datos por WIFI, pero al menos PREGUNTAR si se desean ciertas características a través de redes móviles. Un ejemplo sencillo de una buena política aplicada a este aspecto es cada vez que descargamos desde Play Store una aplicación con datos masivos adjuntos… automáticamente nos pregunta (incluso aconseja) que los datos masivos de ese tipo se hagan por WIFI. Play Music?? Lo mismo, por defecto la calidad de Streaming para redes móviles es más baja, igual sucede por supuesto con YouTube. Aplicaciones que pueden exprimir en un momento nuestros datos.

Tenemos otros ejemplos de políticas mal aplicadas. El caso más sencillo es WhatsApp. Hizo falta MUCHAS actualizaciones para poder AL MENOS escoger cuando queríamos que las imágenes y vídeos se descargasen automáticamente. Y aun así, a día de hoy, la opción por defecto es descargarlo TODO ya sea por WIFI o Datos. Esto significa que por defecto podríamos de forma sencilla agotar el plan de datos de CUALQUIER usuario, y dado que por defecto WhatsApp permite la comunicación entre usuarios, eso se traduce en que podríamos agotar el plan de datos de la mayoría de cualquier usuario tan solo conociendo su teléfono, y mandando sin parar vídeos e imágenes desde nuestra red WIFI.

Volviendo al tema que nos concierne hoy. Pero, como está todo esto relacionado con Facebook?? Es solo una red Social, no debería de tener un uso tan excesivo de datos!! Sí, esa es la teoría. Invito a TODOS a mirar el consumo de datos que se está llevando mensualmente su Facebook… por favor, hacerlo: Ajustes/UsoDatos… Estoy convencido a que la mayoría que suela estar de un sitio para otro (y por tanto haga mayor uso de datos y no wifi) y use Facebook de forma habitual, ese consumo de datos puede llegar fácilmente al 1GB!! Y no, no es una broma.

Podéis creerme cuando os digo que tampoco es raro que alguien me venga diciendo que se ha comido todos los datos y no sabe como o donde o cuando… Ajustes, Uso de Datos… y sorpresa sorpresa: Facebook.

Esto se debe a dos causas principalmente, y no, no es por las fotos que se puedan cotillear, estas en su conjunto no ocasionan tantos datos. El problema principal es el modo en el que Facebook “precarga” los datos. Por un lado el stream pricipal del usuario en el que están todas las entradas, y en segundo lugar y causa PRINCIPAL, es que a los amigos de Facebook se les ocurrió la genial idea de que los vídeos que pone la gente se comenzasen a reproducir AUTOMATICAMENTE a medida que nos desplazamos por nuestro stream. Si se reproducen significa evidentemente que se están descargando… con lo que la gracia es importante. Abrimos FB, alguien ha puesto un vídeo y este automáticamente se descarga y ejecuta. Un vídeo no aporta mucho, pero a lo largo del mes que a lo mejor hemos tenido que lidiar con 20 0 30 de estos incluso sin saberlo nosotros, más todo lo demás… creerme que ese consumo absurdamente algo es debido en su mayor parte a esto. De nuevo, no me parece mal tener una opción que permita realizar esto, el problema es como cuando se hizo en WhatsApp aplicar incorrectamente las políticas por defecto, y en este caso dicho comportamiento está habilitado por defecto SIEMPRE!!

 ——————-

¿Como lidiar con ello?

Afortunadamente aquí lo tenemos más fácil. Tan solo debemos configurar bien Facebook para impedir que esto vuelva a suceder. En los propios ajustes de la aplicación está la opción para cambiar este comportamiento, el cual aconsejo simplemente en ponerlo en nunca. De paso, y como dije anteriormente, también disponemos de la opción para deshabilitar el visor interno de Facebook para Webs, que recomiendo igualmente desactivarlo (es decir, activar siempre el navegador Externo)

Screenshot_2015-02-28-16-16-07

Algo tan sencillo como esto puede ahorrarle a más de uno una cantidad sumamente elevada de datos, y eso en definitiva es dinero.


 

 

La manía que tienen las compañías de intentar meterte lo suyo por los ojos no beneficia a nadie… tan solo y a corto/medio plazo a ellos, pero a la larga lo último que te queda es confianza en compañías así. Otro ejemplo es Messenger, que confianza puede dar una compañía que obliga a sus usuarios a usar OTRA aplicación para usar las mismas funciones que su propia aplicación ya tiene… es absurdo cuanto menos. No digo que exista siempre una mano negra ni mucho menos, pero es más que evidente que aquí nadie da nada a cambio de nada, que muy pocas compañías miran realmente por las necesidades de sus usuarios y tan solo en como rentabilizar al máximo sus productos.

 

Hasta aquí por hoy amigos, un saludo a todos.

Parrot MINIKIT Neo

Share on Google+Share on FacebookTweet about this on Twitter

IMG_20140623_193943

 

Tal y como dije hace unas semanas en la publicación anterior, esta publicación venía detrás. Es lo menos que puede hacerse para valorar a empresas a las que les preocupa más la honestidad y la opinión real del cliente, que no la palabrería barata (a veces nada barata) de otros quienes se lucran con ello.

¿Que es?

Antes que nada, decir que Parrot MINIKIT Neo es ni más ni menos que un manos libres, pero a diferencia de los ya acostumbrados integrados o fijados al salpicadero del coche, en este caso es un manos libre portátil de pequeño tamaño. Es evidente que está pensado en primer instancia para colocarlo en el coche (más que nada porque es ahí donde usamos con mayor frecuencia los manos libres), pero al ser portátil podría ser usado en teoría en cualquier lugar o entorno. Personalmente el único uso que le he dado a manos libres de este tipo, excluyendo manos libres tipo “headset”, es para el coche.

El que sea un manos libres portátil y de pequeño tamaño tiene pros y contras, los cuales son inherentes como es natural a su propia razón de ser.

Al ser portátil tiene dos grandes ventajas… la primera es que no requiere ningún tipo de instalación, con lo que no es necesario conectarlo a la radio del coche ni nada por el estilo. La segunda es que si deseamos llevárnoslo a cualquier otro coche (o lugar) solo tenemos que cogerlo… cosa que sería bastante complejo en caso de un manos libres integrado o conectado a la radio.

Por el contrario, también tiene 3 inconvenientes fundamentalmente. En primer lugar al no estar conectado a la radio, cualquier interacción con él no desconectará la radio/musica como es natural. En segundo lugar, al ser totalmente autónomo el altavoz está integrado en él mismo, con lo que si deseamos poder utilizarlo como un “Altavoz Bluetooth” por medio de A2DP (soporta dicho perfil), tenemos que tener en cuenta que estaremos mucho más restringidos en cuento a potencia de salida se refiere, y evidentemente calidad del audio. El tercer inconveniente es que de nuevo, al ser totalmente autónomo, requieren un soporte energético por medio de baterías… las cuales o hay que cambiarlas o recargarlas (como sucede en este caso).

Contenido

Lo primero que nos encontramos al abrir la caja es un pequeño detalle que personalmente me parece acertado, y es un “mechero-USB”, además de un cable microUSB (el de siempre, el de nuestros móviles) para poder recargarlo. No soy fumador, y como tal una de las primeras cosas que he ido haciendo SIEMPRE en cualquier coche que he ido usando (y muchos otros que no son míos) ha sido sustituir los mecheros del coche por entradas USB para usarlas para cargar dispositivos… infinitamente más útil, sin contar por descontado lo sano. Así pues, he de reconocer que me hizo “gracia” encontrarme uno de estos, estoy seguro que pronto encontraré un nuevo mechero de coche que cambiar por él.

Estéticamente el producto no esta mal, aunque creo que es mucho más bonito el modelo rojo. Tiene forma de “pinza” para poder trillarlo fácilmente en los parasoles. Dos botones a cada lado para llamar/colgar (fundamentalmente), una rueda entre ambos para controlar el volumen y desplazarnos a través de los diferentes menús (es también en sí mismo un botón) y un interrptor lateral de tres posición con apagado, encendido y  nivel de bateria, que si lo colocamos en dicha posición el altavoz nos dirá a que nivel se encuentra (no existe ningún display, recordemos). El conector microUSB para cargarlo está en el lado opuesto.

Funcionamiento

Funcionalmente es muy intuitivo, sobre todo para cualquiera que haya usado alguna vez algún manos libre. Al ser un dispositivo Bluetooth se debe de emparejar evidentemente, el cual es casi inmediato con nuestros dispositivos sin necesidad de introducir PINs cuando se induce en modo de emparejamiento. Hay que tener en cuenta que este manos libres soporta perfiles de Agenda, con lo que la sincronización inicial puede tardar unos segundos, dado que el manos libres necesita descargar la agenda de nuestro teléfono. Una vez realizado, podemos usar el manos libres tanto como altavoz para nuestra música o aplicaciones (como navegación GPS, notificaciones…), como evidentemente hacer o recibir llamadas. El reconocimiento de voz integrado también permite realizar llamadas sin interacción con nuestro teléfono, aunque sí es necesario presionar un botón en él. Una vez realizado podemos llamar a cualquier contacto sencillamente diciendo su nombre (y apellido si procede), ante varias entradas discordantes o diferentes teléfonos el altavoz nos dirá las opciones e igualmente podremos responder por voz la deseada. Para cuando no es una opción el marcado automático siempre podremos usar la rueda para desplazarnos por nuestra agenda de contactos (el altavoz va diciendo todo lo necesario) y seleccionar el contacto deseado. Como digo, es bastante intuitivo y sencillo para cualquiera que haya usado cualquier manos libres anteriormente.

Screenshot_2014-08-14-00-55-59

Parrot posee aplicaciones tanto para Android como para iOS en sus respectivos Stores para poder gestionar de forma sencilla las opciones de configuración del manos libre, y aunque la aplicación en sí es bastante “fea”, si se agradece enormemente el poder escoger en ella si deseamos usar el propio reconocimiento de voz del manos libres O POR EL CONTRARIO usar el de nuestro terminal. Es decir, no estamos obligados a usar el reconocimiento de Parrot. No me mal interpretéis, hace su trabajo de un modo bastante bastante decente, pero tiene algunos problemas. El más acusado, al menos para mí, es que no parsea correctamente los nombres y apellidos de la agenda. Yo soy una de esas pocas personas que su agenda tiene sus contactos con su nombre y apellidos (los dos), pero por lo que parece nuestro gadget no es capaz de interpretar ambos apellidos, suprimiendo el primero. Eso quiere decir que cuando quiero llamar a un contacto que tenga puesto sus dos apellidos, tengo que obviar el primero y decir tan solo Nombre y su segundo apellido. Dado que el dispositivo dispone de actualizaciones de firmware, espero que esto sea corregido en el futuro.

Pese al error comentado, tiene un par de extras realmente interesantes.

El primero es que permite la sincronización y uso simultáneo de dos dispositivos. Es decir, que podemos tener emparejados dos teléfonos al mismo tiempo, y cualquiera de ellos puede por tanto recibir llamadas o hacerlas sin problema alguno. El segundo, es que como ya he dicho soporta perfiles A2DP, y eso hace posible su uso para cualquier aplicación que requiera de un altavoz. Es cierto que el altavoz para escuchar música tiene sus limitaciones debido a su pequeño tamaño (no tiene una gran salida), pero también será usado por nuestro terminal para por ejemplo ir recitando el paso a paso de la navegación GPS, un audiolibro que queramos ir escuchando por el camino o cualquier otra aplicación que tenga una salida sonora. Para mí lo cierto es que es algo bastante bastante útil, aun como digo con las limitaciones de volumen que tiene A2DP… no vamos a poder hacer vibrar los cristales del coche escuchando un buen tema musical.

La batería es otro pro/contra. Es un contra porque evidentemente hay que recargarla antes o después, pero lo cierto es que aun cuando no pusiésemos el dispositivo en off, tiene una duración sorprendentemente alta, solo decir que en un mes y medio aproximadamente que lo tengo lo he cargado creo una sola vez. Aquí es donde el cable microUSB y nuestro mechero del coche van a hacer su trabajo mejor que nadie.

 

Compatibilidad

Otro gran problema de TODOS los manos libres es la compatibilidad. En realidad esto es una cuestión bastante más compleja de lo que la mayoría puede creer. El usuario final solo entiende de conectar y usar, no quiere excusas ni explicaciones!! Pero el trasfondo es mucho mucho más complicado.

Cada dispositivo Bluetooth para que funcione correctamente implementa lo que llamamos Stack (pila) de protocolos de Bluetooth. Bluetooth posee una gran variedad de perfiles y protocolos que cubren las necesidades de todos los dispositivos BT, no solo manos libres!! Desde manos libres, pasando por altavoces, ratones/teclados, dispositivos de vídeo, transferencias de archivos, GPS…. un sin fin de dispositivos que hacen uso de BT. Cada uno de estos hace posible su funcionamiento la stack que implementa, y esta a su vez los perfiles que usa. Esta gran cantidad y el echo de que no existe una implementación oficial universal de cada una de ellos hace que la interoperatividad entre los diferentes dispositivos BT sea muchas veces un infierno. Todos conocemos este tipo de problemas… desde dispositivos que se desconectan, a otros que no son compatibles, unos que tienen unas funciones y otras no… la lista es interminable.

El fallo es de todos. No hay un culpable, todos lo son. Todos creen tener y usar la mejor Stack, la más compatible, la más fiel… y aunque existen algunas Stacks más que conocidas como pueda ser la de Broadcom, Windows o CSR. El problema de los estándares es que aunque en papel se diga una cosa, llevar eso a una implementación software es otra cosa. Todos los estándares tienen millones de matices y de interpretaciones diferentes, lo suficientemente dispares como para que A no funcione con B, siendo en teoría A y B compatibles con el mismo estándar.

Actualmente, todos los terminales (y dos o tres equipos) que he probado con dicho manos libres han estado libre de problemas/incompatibilidades, pero como ya he dicho esto es algo que ni de lejos puede garantizae que vaya a funcionar correctamente con otros dispositivos. Es evidente que la gran mayoría funcionarán de forma correcta, pero estoy seguro que algunos dispositivos tendrán problemas. Evidentemente si usamos un dispositivo que ni siquiera soporte un perfíl BT que necesitemos no funcionará dicha funcioanalidad, pero para mí eso no es un problema de compatibilidad, sino de no usar un dispositivo que soporte dicha función… es diferente.

Actualmente existen en el mercado centenares, miles… de dispositivos con Bluetooth. A pesar de que Bluetooth es un estándar, cada fabricante

Conclusión

Valorar de forma justa dispositivos de este tipo es complicado, ya que está relacionado directamente a las necesidades de cada usuario. Como manos libre portátil puedo decir que aunque ligeramente con sobreprecio y quitando algún que otro problemilla con el software como el ya comentado de la agenda de contactos, no es una opción nada despreciable, es un producto bastante sólido, posiblemente de lo mejorcillo que podemos encontrar en manos libres de este tipo, y funciona sorprendentemente bien para ser un dispositivo Bluetooth (que suelen estar plagados de problemas siempre). Las actualizaciones de software pueden corregir problemas que puedan presentarse en el futuro con lo que es un punto a favor sin duda, y el modelo rojo que se publicó hace unos meses da un toque infinitamente más estético… aunque ya sabemos que para gustos los colores (nunca mejor dicho).

Quizás hubiese deseado un altavoz más potente… pero como ya he dicho en realidad es una imposibilidad técnica, un solo altavoz “decente” puede ser 3 veces más grande que todo el manos libres en su conjunto… con lo que hay que ser realistas en ello. No quiere decir que el que trae sea imposible de escuchar ni mucho menos, se escucha perfectamente, pero como ya he dicho no podemos evidentemente “reventar” los cristales con él.

Y creo que no me he dejado nada… o al menos creo… así que un saludo amigos, y hasta la próxima.

Google IO 2014: Analisis Keynote

Share on Google+Share on FacebookTweet about this on Twitter

Después de unas 2 horas largas, ha dado fin el keynote de este año. Este año no hemos tenido puestas en escenas espectaculares, y curiosamente tampoco con la presencia de Larry Page ni de Sergey Brin. Sin Vic, el peso de la conferencia calló en gran medida como era de esperar en el brillante Sundar Pichai, aunque sinceramente mucho menos carismático… Al igual que el año pasado se han centrado sobre todo a desarrolladores y fabricantes, y adelantando el contenido, no, no ha existido ningún lanzamiento de ningún producto, así como algunas interrogantes que se han quedado en el aire, temas que creíamos que serían aclarados y que no se han tocado.

De cualquier modo, esto no desluce del todo ni mucho menos el keynote, y es que no son pocas las novedades que han puesto los chicos de Google sobre la mesa… y cuando digo que no son pocas quiero decir que son un grueso más que considerable.

La idea es dividir las novedades según temática, aunque en algunos aspectos es complicado dada la interacción que la mayoría de productos/servicios tienen entre ellos. Empecemos.

 

Android

Como era de esperar, lo primero que se ha destacado ha sido la expansión de Android que continúa sin detenerse. Sabemos por estadísticas y estimaciones de otros que Android posee a día de hoy un share de un 80% del todo parqué de dispositivos tipo SmartPhones, pero no datos oficiales. Los datos oficiales no han hablando de porcentaje, sino de usuarios, y según los datos de Google, actualmente hay ACTIVOS (actividad en los últimos 30 días) más de 1.000 Millones de dispositivos. Es un número que da miedo siquiera imaginar. Por otro lado ha destacado el crecimiento específico de Tablets. Si el año pasado se estimaba un 46% de todas las tablets vendidas, en lo que llevamos de año ya se ha llegado al 62% del mercado.

Otro dato asombroso es el número de aplicaciones instaladas, que ha saltado un 236% con respecto el año anterior.

Algo que agradezco a compañías como Google y que siempre he criticado en Apple por ejemplo, es que tan solo se centran en sus productos, no en la competencia. Que quiero decir con esto?? Bien, no hace ni un mes que fue la conferencia anual de Apple, y en ella invirtieron más de 30 minutos comparando constantemente con Android, poniendo estadísticas y datos a los presentes (la mayoría por cierto erróneos por no decir que falsos) para venderles que su producto es el mejor. No hay mejor forma de medir la “salud” de una compañía que viendo las estrategias de márketing tan dispares… mientras que Apple todo lo que hizo fue forzarse a demonizar y atacar constantemente a Android, Google no usó en ningún momento ni una sola comparativa de ventas o de penetración de mercado o de… Sundar sencillamente se limitó a dar datos propios. Unos centraron su exposición en intentar dejar mal al otro, los otros sencillamente se centraron en informar y explicar sus novedades sin importar la competencia. Tan solo eso dice mucho de una empresa… y de la salud de ella. Digo todo esto porque cualquiera que viese o atendiese a la WWDC de este año se daría cuenta del interés desmedido por parte de Apple de intentar tirar por tierra a Google… en vez de preocuparse por sus usuarios y sus productos, que es lo que deberían de hacer…

 

Android One

Una de esas agradables novedades, de esas de las que nadie conocía rumores ni habladurías. Como si de la nada se lo sacasen, Google anunciaba una plataforma de hardware llamada “Android One” pensada para mercados emergentes. Sundar destacó que pese a ese 1.000 millones de usuarios, la mayoría de la población mundial no posee dispositivos inteligentes que disponemos en el primer mundo. Si mirásemos un mapa del mundo en el que se mostrase quienes no tienen están lejos de este tipo de dispositivos, tan solo podríamos soltar una tremenda exclamación. Y es que estamos tan acostumbrados a nuestro estilo de vida, a la tecnología que nos rodea… que muchas veces olvidamos que realmente nosotros somos una minoría de un conjunto mucho mayor.

Así nace Android One. Una plataforma hardware “base” que sirva para crear dispositivos Android de muy bajo coste, de modo que sea rentable también comercializarlo por parte de empresas. Estamos acostumbrados a Samsung, LG, Sony… y tantos otros, pero en los mercados emergentes a la inmensa mayoría de estas empresas no les es rentable comercializar dispositivos que posiblemente no podrán siquiera vender por el coste que tienen y por las circunstancias tan dispares. En cambio, Android One proveerá a una gran cantidad de fabricantes “independientes” a crear dispositivos Android muy interesantes a precios muy bajos. Como ejemplo mostraron un terminal creado por Micromax, con una pantalla de 4.5”, SIM dual, Radio… por un precio inferior a los 100$. Todo ello garantizando actualizaciones automáticas, acceso a los servicios de Google evidentemente… etc etc

No es de extrañar este tipo de movimientos de Google, hace ya mucho tiempo que trabaja de forma muy activa para acercar la tecnología a todas las partes del mundo. Esta visión tiene dos ventajas para Google. Por un lado está la visión solidaria con el tercer mundo, y es que no son pocos los gestos que Google tienen en todo el mundo en este aspecto. Pero paralelamente a Google le interesa igualmente estar en todas partes. Si eres capaz de dotar con terminales de bajo coste al tercer mundo ofreciendo al mismo tiempo terminales de calidad, estás mordiendo a lo mejor el 99% del mercado restante que existe y que aun no tiene dispositivos inteligentes.

 

Android L

Como era de esperar Google a anunciado su nueva iteración de Android, salvo con dos detalles que hasta ahora nunca se habían dado. El primero es que no se ha puesto a disposición inmediata ni mucho menos, ya que Android L estaría disponible para este otoño… teniendo en cuenta fechas y otros yo estimo que para Octubre.

El segundo detalle interesante es que en todo momento se usó el término Android L. Esto significa que el nombre en clave para la próxima versión de Android continúa en la incógnita, así como si será un Android 4.5 o más probable un Android 5.0. Muchos aun estarán con que será Lime Pie, pero lo cierto es que si internamente Google le ha puesto nombre, por ahora lo desconocemos. Esto le daría la ventaja a Google de poder modificar el nombre por cualquier motivo, recordemos que Android 4.4 originalmente no se llamó KitKat, y que fue aprovechando el boom medíatico y una acertada camapaña de márketing la que determinó finalmente su nombre.

Nombres aparte, sí se ha dicho que aunque Android L no se lanzará oficialmente hasta dentro de un tiempo, de forma casi inmediata se pondrán a disposición de usuarios Nexus  (al menos para Nexus 5 y Nexus 7) las imágenes “preview” de Android L, para quien quiera pueda instalarlas. Deberían de estar disponibles a partir de mañana. Lo que no ha quedado claro es si liberarán igualmente el código AOSP de mientras… que sería lo ideal… pero sinceramente lo dudo mucho. Una vez que las imágenes estén disponibles si podremos tener una visión mucho más real de lo que es y será Android L.

Cambios?? A gran escala. Android L incluye más de 5000 nuevas APIs, un diseño totalmente renovado y grandes mejoras en muchos aspectos, que ahora iremos viendo.

androidl

Diseño:

Lo primero que se nos ha mostrado ha sido una interfaz totalmente nueva y unificada. Google a llamado a esta interfaz o a este modo de diseñar aplicaciones “Material Design”, algo así como “diseño de materiales”. En realidad el concepto es un tanto confuso. La idea es básicamente crear una capa estandarizada en la que se apoyen todas las aplicaciones y que dotan a estas con efectos de todo tipo, diseño moderno y unificado. De este modo Google logra después de mucho tiempo algo que algunos puristas siempre se andaban quejando con cada iteración de Android (a veces con razón) y es la no existencia de una interfaz más o menos estandarizada. De echo esto sucede incluso en las propias aplicaciones de Google, que vemos incoherencias de diseño entre unas con respecto a otras. Con Materials, Google de un plumazo puede unificar de forma sencilla todo.

No se trata ni mucho menos tan solo de una unificación. Materials dota de algunos efectos realmente interesantes a cualquier aplicación, como por ejemplo sombreado e iluminación dinámica automática, animaciones y transiciones elásticas que dan sensación de fluidez constante mientras nos desplazamos por las diferentes aplicaciones… incluso a veces el cambio de tareas da la sensación de no ser tal. Otras veces los elementos parecen flotar ligeramente sobre otros dando un look moderno y profesional.

Otra cosa interesante por ejemplo es el ajuste automático de colores en función del contenido a mostrar. Así por ejemplo si estamos viendo una foto que predomina el rojo, a lo mejor la etiqueta que tenga alrededor tiene un color similar para que encaje perfectamente con el resto de la “estampa”. Los ejemplos que se han mostrado desde luego funcionan muy bien visualmente.

Personalmente es muy interesante y a priori me gusta la idea. No obstante no me ha gustado demasiado la “sobrecarga” de efectos a la hora por ejemplo de hacer un sencillo “touch” en una opción/selección. La pregunta es hasta que punto Android L permitirá o no la deshabilitación de ciertos efectos. Si permite cierto control sobre ellos, será perfecto, ya que aquellos amantes de la vistosidad podrán tenerlo todo activado, mientras que los amantes de los cambios rápidos podrían deshabilitar la mayoría de los efectos, sobre todo de transiciones y selecciones.

Aun con todo, lo cierto es que los cambios entre aplicaciones y algunas transiciones se ven muy naturales y “agradables”, y lo mejor es que Materials en realidad se integra en todas las partes del sistema, eso incluye notificaciones, opciones, aplicaciones… todo, y todo como digo con sus sombritas proyectadas, iluminación…

La idea no es solo quedarse ahí, sino que Google quiere extender este diseño a la propia web y en general a cualquier dispositivo Android. Así también a anunciado la puesta en marcha inmediata de Polymer (una API orientada a Web) y la URL que centralizará digamos todo el “nuevo diseño” de google, nos permite acceder a contenido de todo tipo, descargas de programas para diseñar webs… todo lo necesario:

https://google.com/design

 Aquí podemos ver también un vídeo

Recordemos que todo ello, siempre, bajo 60fps…

Mejora de notificaciones

Otra función que ha sufrido una fuerte remodelación han sido las notificaciones. Quizás la más inmediata es la inclusión de notificaciones en la pantalla de bloqueo (si, similares a las que vemos en iOS), pudiendo descargarlas igualmente desde la pantalla bloqueada y todas ellas de nuevo con el nuevo diseño Materials. Lo que no se ha especificado es si se permitirá especificar que aplicaciones pueden mostrar notificaciones en la pantalla de bloqueo y cuales no… es evidente, si quiero privacidad no voy a permitir que puedan verse en la pantalla de bloqueo.

Otra mejora es la inclusión de las llamadas Notificaciones HeadsUp. Esta función en realidad está ya implementada en Android 4.4.4, pero Google no la tiene habilitada. En muchas ROMs de terceros esta opción está habilitada y funcionando perfectamente. Las Notificaciones HeadsUp se mostrarían directamente sobre la pantalla en la parte superior, sin interrumpir absolutamente nada de lo que estuviésemos haciendo. De este modo se logra algo que antes era imposible: Cuando trabajamos con aplicaciones en modo inmersivo (pantalla completa) si nos llegaba una notificación teníamos que salir de dicho modo para poder leerla. Ahora las notificaciones caerán directamente sobre la pantalla si lo estamos usando, ademas de evidentemente en la persiana de notificaciones. Posiblemente no se habilitó en 4.4.4 porque aun tiene algunos flecos que pulir, pero en general funcionan muy bien.

Por último, se hace un mayor uso de la priorización de notificaciones. Es decir, si una notificación nos llega pero posee una mayor prioridad, ocupará una posición superior respecto a las otras. Así mismo podremos incluso ordenarlas si así lo deseamos.

Nuevo método de “desbloqueo”

Por lo que he podido sacar en claro, la idea es usar un modo pasivo de desbloqueo que funciona por reconocimiento de patrones vocales del usuario. Es pasivo porque si he entendido bien el teléfono detectaría si estamos presentes o no por la voz. Si lo estamos el teléfono sencillamente estaría desbloqueado, pero si abandonásemos la habitación y alguien quisiese usarlo estaría bloqueado siendo necesario un PIN, patrón… no lo tengo claro del todo ya que eso implicaría que el terminal estuviese constantemente “escuchando” todo alrededor, y eso consumiría mucha batería. Igual no es así y funciona de modo activo, y habría que desbloquearlo y decir cualquier cosa para que se abriese.

Nuevo indexamiento de aplicaciones

Android L tendrá un conocimiento muy superior de las aplicaciones que hay instaladas y de como interaccionar con ellas. Así por ejemplo si realizamos una búsqueda y tenemos aplicaciones relacionadas nos aparecerán para lanzarlas. Así mismo se nos ofrecerá lanzar la búsqueda directamente sobre la aplicación que sea. Por ejemplo si buscamos una dirección se nos ofrecerá enviar la petición a Maps o a Earth directamente. Esto puede ser muy interesante sobre todo en aplicaciones que por lo general funcionan comenzando por una “entrada”. Por ejemplo un recetario, frases célebres, traductores…

Rendimiento

Runtime

No solo de diseño se vive, y Google no ha parado en mejorar constantemente el rendimiento de su sistema operativo. El caso más llamativo es le de su runtime. Android no deja de ser Linux en esencia, pero todas sus aplicaciones se ejecutan sobre una máquina virtual llamada Dalvik. Las aplicaciones creadas en JAVA se compilan creando una aplicación y las clases en formato dex, que más tarde es interpretada por la máquina virtual Dalvik, usando un compilador JIT (desde Android 2.2). Esto ha dotado de gran seguridad y rendimiento a las aplicaciones Android, pero después de muchas pruebas y posibles mejoras Google ha decidido finalmente sustituirlo. En Android KitKat introdujo a modo experimental un nuevo rintime llamado ART (Android RunTime)

ART usa compilación AOT (Ahead-Of-Time), es decir, la aplicación en este caso no se interpreta a medida que se ejecuta, sino que en tiempo de instalación se compila específicamente para el dispositivo en cuestión, generando básicamente el código nativo resultante. Esto evidentemente extiende el tiempo de instalación de las aplicaciones, pero una vez instaladas las aplicaciones corren de forma más rápida. Además el colector de basura (Garbage Collector… el colector/reciclador de memoria) es muchísimo más eficiente, y si alguno ha leído alguna comparativa de navegadores realizada por este servidor sabe cual es el efecto de un buen GC… básicamente?? una ejecución más fluida, con menos saltos (pausas), que generalmente son causadas por la necesidad de que los GC hagan su función.

En Kitkat las pruebas realizadas eran dispares… algunos obtenían resultados mejores algunos ligeramente inferiores.. pero es evidente que el runtime de kitkat ART no estaba ni de lejos maduro, pero lo suficiente para que las pocas aplicaciones que causaban incompatibilidades se ajustaran a ellos. EL tiempo a pasado y parece ser que Android L tendrá una versión mucho más optimizada y activada por defecto de ART. Los datos mostrados por Google muestran por lo general un incremento entre el 1.2x y el 2.x en diferentes benchark.

Robando las palabras de un buen amigo, recordemos que Apple en el WWDC de este año anunció que había desarrollado un lenguaje de programación nuevo para su futura versión de iOS que permitiría mayor optimización y en consecuencia un mayor rendimiento. Los ingenieros de Google logran lo mismo (o un mayor rendimiento incluso) sin necesidad de cambiar de lenguaje, tan solo cambiando el runtime. Esto es una gran ventaja para usuarios y desarrolladores, dado que absolutamente TODAS las aplicaciones funcionarán exactamente igual bajo ART… tan solo más rápidas y mejor. Los usuarios verán un rendimiento importante mejorado, y los programadores no tendrán que hacer en el 99% de los casos ni un solo cambio, y mucho menos tener que cambiar de lenguaje de programación como en el caso de iOS…

 ART será totalmente compatible como es de esperar con ARM, x86 o MIPS

Gran rendimiento sobre Dalvik sin hacer absolutamente nada.

Soporte 64bits

Google ha incluido soporte integral para procesadores de 64bits. Hace unos 8 meses o así Apple lanzaba en su iPhone 5s el primer procesador de 64bits en dispositivos portátiles. En aquel momento expliqué bastante bien lo que esto supondría a efectos prácticos. El artículo lo podemos encontrar AQUI. Todo lo que dije en aquella ocasión es aplicable exactamente igual a Android. Resumiendo mucho, es evidente que a la larga todos los procesadores serán de 64bits, pero la transición al igual que se hizo en los PCs no estuvo ni estará marcada por un incremento en el rendimiento, dado que este será en el 95% de las ocasiones totalmente despreciable. El salto se dio por la necesidad fundamental de poder direccionar más de 4GB de memoria RAM. La diferencia es que lo que Apple anunció por todo lo alto, Google sencillamente es realista sobre lo que realmente influye y no, y aunque no deja de ser una novedad no es una GRAN novedad.

El paso a los 64bits es un paso lógico y gradual. Hasta la fecha no hay prácticamente terminales móviles de 64bits no por falta de innovación, sino porque su fundamento principal es poder direccionar por encima de los 4GB de RAM, y ahora mismo en terminales móviles no se ha alcanzado dicha cifra. Actualmente los terminales más modernos andan por los 2GB y algunos incluso con 3GB. Es más que posible que de aquí a un año empecemos a ver dispositivos con 4GB incluso!! con lo que en realidad el paso a 64bits es necesario, pero no son necesarias las prisas.

Es cierto que las aplicaciones corren más rápidas?? Si, lo que sucede es que a veces ese incremento puede ser totalmente inapreciable. Si ganas un 0.01%… no puedes decir que es una funcionalidad estrella cuando sencillamente por cambiar el runtime estás ganando un 150%. Los procesadores de 64 bis poseen registros más grandes y juegos de instrucciones más amplios… estas dos cosas dan un potencial incremento en la velocidad de ejecución. De echo es cierto que en aplicaciones concretas optimizadas en un procesador de 64bits puedan rendir con un rendimiento muy superior a una ejecutada en 32bits, pero como digo son las menos habituales, y menos aun dentro de los terminales móviles.

En cualquier caso el soporte será integral a partir de Android L, y estoy seguro que veremos aparecer este mismo año varios procesadores de 64bits, además del K1 de Nvidia que ya está disponible. No hace falta decir que el soporte en 64bits será transparente prácticamente al programador y al usuario, el SDK incluirá dicho soporte, multiplataforma y sin necesidad de modificar generalmente ni una sola línea de código.

Gráficos

No hace demasiado Google ya fue el primero en incluir OpenGL ES 3.0, pero parece ser que no se han quedado ahí. Esgrimen que el 75% de usuarios juegan de forma frecuente con sus terminales, así que es necesario potenciar al máximo el aspecto gráfico de los terminales de hoy en día. Evidentemente un téléfono o una tablet no tienen el potencial de cálculo que pueda tener un PC con una gráfica dedicada… pero aun así estamos viendo como año tras año aparecen cada vez títulos más realistas con gráficos cada vez más sofisticados.

En esta ocasión Google a aprovechado para actualizar OpenGL ES a 3.1, y a incluido lo que llaman “Extensions Packs”, algo así como funciones avanzadas de gráficos. Es evidente el trabajo duro que ha debido estar realizando Google con los chicos de nVidia, sin duda alguna los número uno mundialmente en cuanto a gráficos se refiere. Entre esas “extensiones” se han destacado por ejemplo la inclusión de Teselación (subdividir una malla poligonal en poligonos más pequeños), sompreadores geométricos y por PC (los Shaders son pequeños programas en si mismos que aplican diferentes efectos, filtros y otros a una geometría) y compresión de texturas ASTC.

Personalmente no soy muy fanático de los vídeo juegos en los móviles o tablets… pero para gustos colores. Siempre he dicho que si quieres disfrutar de un buen juego como dios manda, es necesario una gran pantalla y en consecuencia un buen PC. De cualquier modo siempre es bueno ver que los ingenieros se estrujan el coco, y también dará lugar seguramente a plataformas con procesadores de vídeo más potentes.

Batería

Supuestamente un foco de gran atención por parte de Google ha sido la batería. Como lograr maximizarla sin incurrir evidentemente en una pérdida en prestaciones. Nos dicen que gracias a la creación de herramientas de análisis, diagnóstico y otros han logrado ajustar al máximo el consumo, mirando evidentemente allí donde se puede ahorrar: WIFI, GSM/3G/LTE/, BlueTooth, GPS, CPU y pantalla. Hay que entender que estas optimizaciones siempre tienen un límite si quieres mantener una igual experiencia para el usuario.

Se crea el llamado “Project Volta” (les gusta poner nombre a las cosas) creado para mejorar todo el consumo en general, y con ello una nueva API llamada JobScheduler, que en teoría vendrá a ayudar a los programadores a que sus aplicaciones optimicen el consumo de batería.

Por último se incluye un modo de “Bajo consumo”, para evitar por ejemplo situaciones en las que Play Store le da por descargar una actualización grande o cualquier otra tarea más pesada cuando a lo mejor nuesetro nivel de batería está al 4%, y lo que se supone que deseamos es que aguante al máximo, sobre todo si estamos fuera.

Según sus datos, tomando de referencia un Nexus 5 sobre KitKat y sobre L, se ha podido extender la batería gracias a estos cambios en torno a unos 90 minutos adicionales. Sinceramente de ser verdad es una más que notable diferencia, una hora y media más de uso para el mismo hardware…  habrá que ver luego realmente como se comporta y si los datos son más o menos fiables o exagerados.

Seguridad

Con el fin de que los organismos oficiales puedan dar el visto bueno a los dispositivos Android en vistas de ser usados en entornos empresariales, Google a añadido mejoras sustanciales a sus dispositivos para que estén preparados ante la posibilidad de instalación de aplicaciones altamente sensibles por sus datos. Así implementa principalmente la separación de datos y seguridad entre diferentes “partes” del dispositivo, de modo que queden aisladas del resto del sistema, quedando por tanto totalmente protegidas.

Los desarrolladores pro otro lado no tendrán que preocuparse de nada, no será necesario modifica ninguna, siempre y cuando las aplicaciones sean compatibles desde ICS (android 4.0+). Por lo que se vee Google ha implementado en gran medida el sistema Knox de seguridad de Samsung, a los que dieron directamente las gracias por la contribución. El soporte será incluído como es natural en Android L, aunque dependerá de cada fabricante si da soporte hardware o no para ello.

 

Google Play Services

Ya dije hace tiempo que uno de los grandes cambios que Google hizo sin duda en Android fue la creación de lo que llamó Google Play Services. El principal problema que tienen absolutamente todos los smartphones del mundo son las actualizaciones de software, tanto dele sistema operativo como de las aplicaciones en general. El problema es que cuanto más dispositivos existen y las políticas de cada uno, es más complicado mantener actualizado todo. No es el sistema operativo ya en sí mismo, sino las aplicaciones que este trae con sigo.

Android fue y es aun criticado por muchos por la fragmentación, en la que dispositivos “antiguos” no pueden acceder a funciones avanzadas debido a que ya no disponen de actualizaciones por parte de su fabricante, mientras que Apple sí da un soporte mucho más largo. Esto lo he explicado muchas veces, y a día de hoy es al contrario incluso, el soporte de Android es mucho mejor a largo plazo, precisamente gracias a Google Play Services en un 50%, y el otro 50% gracias a que Google ha independizado prácticamente TODAS las aplicaciones del sistema operativo y las ha publicado en Play Store.

Google Play Services se encuentra instalado en más de un 93% de TODOS los dispositivos Android, y se actualiza regularmente cada 6-7 semanas aproximadamente, que es más o menos el ciclo de actualización que tiene Google para esto. Esta actualización es siempre totalmente transparente al usuario y sin importar que terminal posea, apartir de Android 2.2. Cual es el secreto?? Que Google implementa a través de Google Play Service toda las APIs que son viables de serlo, en vez de en el propio sistema operativo. Esto dota a Android de dos ventajas fundamentales: La primera, es que Google puede añadir funcionalidades constantemente a Android sin necesidad de sacar una versión nueva, y de echo es algo qeu viene haciendo desde hace ya años!! Y segundo que no afecta a la fragmentación dado que incluso los dispositivos más viejos si poseen soporte para Google Play Services pueden usar inmediatamente dichas funciones también. Dicho de otro modo, si Apple quiere implementar cualquier función nueva por pequeña que sea, ya sea a nivel de una aplicación o a nivel del sistema operativo, tiene que sacar una firmware nueva, y esta evidentemente no estará disponible siquiera para todos sus dispositivos, tan solo para los más modernos. Google en cambio solo tiene que distribuir una actualización de Google Play Services con las mejoras pertinentes, o incluso publicar a través de él parches de seguridad… y si es una aplicación lo que quiere mejorar tan solo tiene que lanzar la actualización en Play Store.

Esto no permite a dispositivos con versiones de Android más antiguas poder disfrutar de los últimos adelantos que sí encontramos en versiones más actuales, pero en una gran medida sí que disfrutan de las mismas capacidades. En realidad lo único que no es posible implementar por Google Play Services son aquellas funcionalidades más estructurales y complejas. Lo mismo sucede con las actualizaciones de aplicaciones. Si un usuario de iOS quiere una versión mejor de la aplicación Mapas de Apple, tan solo puede esperar a que lancen una firmware nueva y con suerte que incluya las mejoras de Mapas de Apple. Google solo tiene que mandar la actualización de Maps, de Hangout, de Gmail, de Mail, de la cámara, de la búsqueda de… a Play Store, y todos a disfrutarla. Esto ha permitido a Google estar renovando constantemente sus aplicaciones con mayores prestaciones… y como digo, disponibles para todos.

Como era de esperar por tanto, Google Play Services recibirá una fuerte actualización. Ya se ha empezado a distribuir de echo la versión 5.0, aunque aun no implementa todos los cambios que han sido anunciados en el keynote. Veamos las funciones más destacables que serán incorporadas A TRAVÉS de Google Play Services, y que por lo tanto TODOS podrán disfrutarlas:

-Malware Protection: Escaneo constante de todas las aplicaciones, pero fuera del propio dispositivo. Es decir, es Google en sus servidores quien monitorea las aplicaciones que tenemos instaladas y si alguna es dañina
-Parches de seguridad: Un modo mucho más profundo de poder realizar actualizaciones de seguridad a través de Google Play Services en caso de que se descubran vulnerabilidades importantes en el futuro
-Protección ante un restablecer de fábrica: Una función que permitirá deshabilitar (no se como) la posibilidad de que un ladron restablezca nuestro terminal. Por qué?? Porque si no puede restablecerlo podemos ubicarlo, localizarlo e incluso eliminar sus datos de forma remota. Es muy posible que se implemente también lo que se llama como un “Kill Switch”, es decir, una función que una vez “disparada” deje totalmente inutilizado el dispositivo para siempre, de este modo ante robos poder dejarlo totalmente fuera de servicio
-Control universal de datos: Parece ser un lugar unificado en el que poder controlar nuestros propios datos…
-Indexación y Busqueda de aplicaciones: Ya explicado anteriormente, permite una mayor integración entre las aplicaciones que tenemos y lo que buscamos
-Android Wear: Luego se hablará más de ello, pero un conjunto de APIs para sincronizar y manejar correctamente dispositivos Wear
-Retos Diarios en Games: Un nuevo servicio en Play Games que permite a los desarrolladores publicar “quest” (retos) temporales. Por ejemplo el típico reto diario o misión diaria a completar… un modo de notificar al usuario y de “distribuir” dichos retos.
-Android TV: Interoperatividad con Android TV (más tarde se explicará)
-Android Car: Interoperatividad con Android Car (más tarde se explicará)
-Otros: Añadidos a la API de Drive, añadidos a la API de Chromecast/Cast…

Screenshot_2014-06-26-01-53-54Screenshot_2014-06-26-01-54-02

 

Android Wear

Otra de las grandes novedades de todo el IO ha sido sin duda la irrupción de Android en los dispositivos personales, en los complementos personales que día a día lucimos generalmente como adornos o por su funcionalidad. Básicamente es un eufemismo para referirnos en su gran mayoría a “relojes Android”. En realidad no es necesariamente un reloj, puede hacerse un dispositivo de monitorización de cualquier tipo, zapatos, ropa… pero es cierto que la mayoría de los primeros dispositivos que saldrán al mercado de este tipo serán relojes y similares.

La idea no es sustituir ni mucho menos al teléfono, sino dotar a un complemento que ya de por sí muchos usan con funciones avanzadas. La idea es poder proyectar información allí donde tengamos una “pantalla”, y a fin de cuenta un reloj es una pantalla (literalmente en los digitales). Yo he sido el primero que ha sido muy reacio a este tipo de dispositivos, y tampoco estoy demasiado convencido ahora mismo, pero sí he podido ver algunos ejemplos de uso en el IO que la verdad puedes verle cierto uso y utilidad.

El concepto es sencillo, dispositivos con un conjunto de sensores que son capaces a través de ellos conocer el entorno en el que nos movemos, interaccionar evidentemente a través de BT por lo general con nuestro teléfono, y entre los dos dotarnos de más información no solo de nuestro entorno, sino de lo que queremos hacer. Mirar la hora es el ejemplo más sencillo… un usuario puede mirar la hora en su móvil, pero tiene que sacarlo. Muchos pensaron que los móviles terminarían de desplazar a los relojes pero hemos visto que no es así, y que son muchos los que usan relojes, además de la estética, para mirar la hora… a fni de cuenta es mucho más cómodo girar la muñeca que andar buscando el móvil.

Extrapolemos por tanto este ejemplo a tareas como por ejemplo seguir una ruta GPS mientras caminamos, o por ejemplo seguir una receta de cocina mientras cocinamos con las manos llenas de sangre/comida/agua ya que el reloj es fácilmente resistente al agua y otros. Imaginemos controlar la televisión de forma sencilla apretando la pantalla de nuestro reloj, o incluso realizar compras sencillas a través de él. Por otro lado el uso más evidente es el de mostrar información inmediata en la pequeña pantalla… quizás no es suficiente para realizar tareas complejas, pero para leer notificaciones, seguir indicaciones, ver avisos, alarmas, leer mensajes, controlar el reproductor de música de nuestro dispositivo, descolgar llamadas o rechazarlas… en realidad si hay un buen conjunto de funciones que pueden o podrían derivarse a un dispositvo en la muñeca a modo de reloj, de modo de que no sea necesario tener que echar mano al bolsillo y sacar nuestro terminal.

Tendremos que esperar evidentemente un tiempo y ver el soporte de los desarrolladores para ver como exprimen este tipo de dispositivos.

Quizás la demostración que más me impactó fue haciendo uso de la aplicación Lyft, una aplicación de transporte que pone en contacto usuarios con coches a modo de “taxi”. En la demostración, se acercaba los labios ligeramente al reloj y decia sencillamente: “Call a car”. a Los 2 segundos aparecía una notificación en el propio reloj confirmando el envío del coche y una foto con al conductora. Al llegar el coche a recogerlo una notificación de nuevo le informaba de que el coche estaba esperando. Al final del trayecto una nueva notificación le instaba a valorar al conductor. Todo eso solo con un “call a car” y 2 golpes en el reloj… realmente un sistema inteligente, y que como digo ya está disponible actualmente. Pena que en España no tengamos programadores ni empresas de servicios tan competentes… deberían de tomar partido los de BlaBlaCar o tantas otras que ahora están tan de moda por aquí, sería interesante…

Por supuesto no hay que olvidar dispositivos de este tipo que controlen el ritmo cardíaca, sean pedómetros y otros, y que la información la vayan transfiriendo a la aplicación correspondiente.

Esta inteorperatibidad ya está disponible, tan solo hay que disponer de algún dispositivo Wear y aplicaciones preparadas para ellas como es natural. Dado que Google Play Services se hará cargo de toda la API, todos podran disfrutar de estas funcionalidades prácticamente a partir de ya. Y por si había duda de posibles fabricantes, Google ya ha asegurado que está trabajando con todas las grandes marcas y bien conocidas por todos para lanzar dispositivos tipo wear…

El SDK para los programadores está ya disponible, así como la web específica con información relevante:

http://developer.android.com/wear

Como nota interesante, los dos modelos mostrados en el IO están ya disponibles en Play Store (en España también), aunque el precio es en mi opinión abultado, 200€… principalmente porque el dispositivo no cuesta eso ni de lejos

 

Android auto

Google no solo quiere poner Android en tu muñeca, sino que también quiere dominar el mundo de la automoción. Así lo ha dejado claro con Android auto.

Apoyado por la Open Automotive Alliance, Google lo ha visto claro. Dado que Android es de código abierto y TODOS pueden hacer uso de él, por qué no crear también una interfaz para los ordenadores de abordo de los coches?? A fin de cuenta los coches ya son de por si caros, e incluir este tipo de “interfaz” o sistema no debería de repercutir prácticamente en nada. Además así ganan todos. Por un lado, los fabricantes pueden unificar los diferentes sistemas cerrados y privados que existen para conexiones con GPS, mapas, llamadas, notificaciones… ahora mismo esto es posible gracias a interfaces complejas y propias de cada fabricante, y generalmente causan más incompatibilidades que otra cosa.

Apple ya anunció un sistema similar, y no es mala la idea, pero fracasará donde Google no por una razón muy sencilla. El 80% usa Android, y Android auto es y será compatible con cualquier terminal con Google Play Services, y los servicios que ofrecerá Android auto serán además superiores. Si vemos estos desde un punto de vista del fabricante, evidentemente a medio plazo la elección preferente será sistema Android auto. El fabricante le es rentable porque unifica sus servicios y con un 80% de mercado asegura una interoperatividad enorme con el usuario!! y los cambios a realizar no son de un gran calado. El usuario por otro lado sale ganando porque por fin logra en los ordenadores de abordo en los coches una interfaz unificada y reconocible, así como un buen sin fin de buenas funciones

Para que servirá esto?? Pues bien sencillo. Usando la pantalla del navegador de abordo del coche poder proyectar directamente nuestro Google Maps, control por voz gracias a Google Search/Voice de la mayoría de las funciones del teléfono, el uso evidente de manos libres, envío de mensajes, visualización de notificaciones en la pantalla, sintetización por voz de SMS/mensajes, control y reproducción de nuestra música, ubicaciones recientes, marcación de ubicaciiones, información del tráfico en tiempo real… y todo ello con la ventaja de que las aplicaciones en realidad no estarán en el propio ordenador del coche, sino se hará uso de nuestro terminal, con lo que cualqueir actualizacion de las aplicaciones se realizarán siempre sobre nuestro dispositivo. Las opciones son casi ilimitadas, y bien implementado puede ser un gran triunfo para todos!! Se acabaron los GPS deseactualizados, las eternas incompatibilidades de manos libres… y sin demasiado trabajo de fondo.

Como en el resto de las novedades, el SDK para los programadores para adaptar sus aplicaciones ya está disponible, y Google también a anunciado que prácticamente la totalidad de todos los fabricantes de automóviles están trabajando en ello. Eso no quiere decir evidentemente que todos los coches tendrán este tipo de funciones en el futuro… evidentemenete, pero sí que de aquí a un año es más que posible que un buen porcentaje sí. Ya veremos, tiempo al tiempo.

 

Android TV

Google no ha querido dejar un solo rincón del mundo sin ponerle la mano encima. Después del existo cosechado con ChromeCast, ha irrumpido de nuevo en las televisiones con Google TV. Al igual que en la industria automovilística, en las televisiones tenemos un gran problema similar. Prácticamente todas las televisiones que tenemos a día de hoy son SmartTV (las nuevas al menos), pero eso es un engaño en la realidad, dado que cada fabricante y muchas veces entre el mismo fabricante, la plataforma usada es diferente. Cada plataforma tiene sus aplicaciones diferentes, y los desarrolladores tienen que estar sacando aplicaciones para cada sistema si quieren que sus aplicaciones estén. Es decir… un auténtico infierno.

Que pasaría si de un día a otro se reunieran a todos los responsables y se les dijese: Mira… vosotros quereis que el usuario os compre, y todos estamos hartos de que las SmartTVs de hoy en dia sean una basura industral porque no hay ningún tipo de estándard. Que pasa si las dotamos de AndroidTV?? todas podran usar las mismas aplicaciones, todas podran manejarse a través de teléfonos de forma sencilla, adquirir funcionalidades de receptores de Cast (al estilo ChromeCast)… y por supuesto siempre se pueden incluir servicios Premiums de esos que os encantan, como servicios de videoclub a la carta, aparte de por supuesto Google Play Movies.

La idea es buena realmente. Es dotar a la televisión de unas prestaciones similares a las que podemso tener en un teléfono o en un tablet actual. LLevarlo todo ello a la gran pantalla básicamente. Desde búsquedas y acciones por voz, instalación de aplicaciones, juegos, reproductor multimedia, información de actores, sinopsis… lo que se quiera en realidad…

El futuro de esto en realidad es más incierto… aunque la mayoría de fabricantes les ha gustado la idea habrá que ver y esperar tiempo. Lo que está claro es que si el usuario al final lo demanda, se sumarán al carro, y es posible que lo hagan, si tenemos en cuenta lo que ha sido ChromeCast (el éxito que ha tenido)

El SDK también está ya disponible

 

Google Cast and ChromeCast

Un exito rotundo se le pregunte a quien se le pregunte, y las ventas hablan por si mismas. En Estados Unidos ha sido el dispositivo electrónico más vendido!! Sencillo, pequeño y extremadamente barato, es multiplataforma y ya tiene un aluvión de aplicaciones compatibles impresionantes.

Ante tal éxito no es de extrañar el nacimiento de Android TV, así como un especial miramiento por parte de Google con él, digamos algo así como un… “cariño” especial por ese pequeño dispositivo. Así pues no podían dejarlo sin algunas cuantas novedades… y de gran interés.

-Por un lado una sección específica dentro de Play Store donde encontrar aplicaciones que permiten hacer “cast” a nuestro dispositivo, para tenerlas todas más… a la vista.

-En segundo lugar la posibilidad de poder realizar Cast SIN NECESIDAD de conocer la red WIFI de nuestro hogar, pensado sobre todo para visitas que vienen a casa. De este modo si quieren compartir algo con nosotros en la televisión no tengan que acceder a nuestra red antes. Esto será posible gracias a una autentificación por PIN. La ventaja es que el dueño en todo momento podrá revocar el acceso si así lo desea a dichos usuarios “invitados”, teniendo siempre control total sobre él.

-En tercer lugar, se añadirá a la aplicación ChromeCast la posibilidad de poder enviar a la pantalla de Espera de Chromecast fondos personalizados. No solo con fotos, sino con cierto contenido activo como el tiempo y algunas cosillas más… no esta mal tampoco

-Y en cuarto lugar y quizás más importante y esperado, por fin la posibilidad de hacer de forma nativa Mirroring, es decir, proyectar en la pantalla directamente nuestra pantalla. En principio esta función podría no estar disponible para todos los móviles, aunque si han dicho que de momento será compatible con la mayoría de terminales de última generación. El ejemplo mostrado era la apertura y manejo de Google Earth… y he de decir que el retraso era mínimo, y la calidad excepcional. Como usuario de ChromeCast, deseando probarlo por fin, sin necesidad de aplicaciones de terceros (Lo siento Koush, aunque hiciste un excelente trabajo con Mirror)

Como lo demás, la actualización se realizará por medio de Google Play Services, y posiblemente ChromeCast reciba igualmente otra actualización de software. Esto debería de estar disponible para dentro de unas semanas para todos.

 

Google Fit Platform

Otro nuevo conjunto de APIs para mejorar considerablemente la interoperatividad entre dispositivos Android con dispositivos orientados al fitness,  como por ejemplo de nuevo pedómetros, pulsómetros… un modo sencillo de recoger todos los sensores e información de cualquier dispositivo “fitness” y poder enviar de forma sencilla dichos datos al terminal, donde gestionarlos de igual modo.

Soportará diferentes dispositivos, sensores, lectura simultánea de diferentes dispositivos… y también se anunciaron un buen número de fabricantes que ya estarían trabajando con ello.

Dicho de otro modo… máquinas de gimnasios y de todo tipo que suministran datos a nuestros dispositivos, entre otras muchas cosas.

Google Play Games

 Recibirá un par de buenas actualizaciones.

-La primera será la creación de perfiles personales donde “centralizar” nuestros juegos, logros, puntuaciones… esto no es nada nuevo para usuarios acostumbrados a plataformas de consolas

-La segunda, como ya se ha dicho, será la inclusión de “retos” que podrán “distribuir” los diferentes juegos a lo largo del tiempo.

 

ChromeBook

No soy fan de ChromeBook, veo que son dispositivos muy caros con prestaciones muy limitadas… pero no hay que negar que no tengan un buen diseño y la idea no sea buena. Lo cierto es que no se han vendido mal del todo, sobre todo en entornos concretos donde realmente lo que se necesita es un “PC” rápido, integrado con todo Google y tan solo funciones “básicas” de ofimática e Internet.

Pese a todo se han implementado alguns funciones realmente interesantes, entre ella la interoperatividad entre ChromeBook y nuestros dispositivos móviles. Así por ejemplo si nuestro terminal está cerca, automáticamente las notificaciones de este pasarán a nuestra pantalla de ChromeBook, así como indicadores de batería, señal… de este modo ambos dispositivos podrán “compartir” información, sincornizarla entre uno y otro por así decirlo

Se unificarán igualmente aplicaciones tipo PlayStore, de modo que si el usuario tiene ambas aplicaciones en cad adispositivo la apariencia será similar, aunque una será una aplicación Android y la otra será aplicación Chrome, pero de nuevo cumpliendo la máxima de este año: Unificación.

Google Play

Se crea un nuevo servicio de Google para desarrolladores de aplicaciones llamado “Appurify”, que viene a ser algo así como un testeador de aplicaciones que permitirá simular entornos reales de dispositivos sin necesidad siquiera de instalar la aplicación. Por ejemplo similar escenarios de pérdida de conexion de datos, de conexiones de wifi, de recibir una llamada… etc etc. No se ha explicado demasiado como será, así que tampoco puedo dar mucha más información. Seguro que a lo largo de los días todo va quedando mucho más claro

Otros

Además de todo ya explicado, las novedades no quedan ahí. Pero tampoco pueden detallarse todas. Aquí un pequeño resumen del resto:

-Actualización de Google Drive con nueva interfaz
-Añadido Google Slides para completar Docs y Sheets a Google Drive, permitiendo editar completamente también documentos de Word
-Mejora considerable y explicación de los servicos de Google Cloud Platform y muchas mejoras al respecto… básicamente quieren enterrar a Amazong en el negocio del Cloud Computing.

 

Seguro que me he dejado un buen número de cosas, pero creo que por hoy es ya más que suficiente.

Saludos compañeros.

 

Google IO 2014

Share on Google+Share on FacebookTweet about this on Twitter

 

Buenas amigos, un año más de IO. Esta tarde a las 18.00 peninsular comenzará el esperado Keynote que inaugurará el Google IO de este año.  En esta ocasión, Google dará cobertura en directo a prácticamente todas las sesiones que discurrirán estos dos días de frenesí tecnológico… y por supuesto frenesí de los propios programadores y desarrolladores… que recordemos que precisamente el Google IO es para ellos, y no para el usuario de a pie… aunque indirectamente recae en él a fin de cuentas.

Para mí, la gran ausencia que habrá este año sin lugar a dudas será la de el genial y carismático Vic Gundotra, el que fuera un alto cargo de Google al que personalmente le atribuyo ser el alma de Google+, gran parte de Maps y un comunicador innato. El año pasado fue Hugo Barra… este año Vic anunció su partida sin especificar realmente motivos concretos o atribuibles. Sea como sea, estoy seguro que más de uno lo echará de menos.

Desde hace ya semanas se tiene más o menos la agenda de las conferencias que se irán dando, así que podemos hacernos una idea más o menos de lo que nos espera el Keynote. A eso podemos sumarle la entrevista que se le hizo a Sundar Pichai, actual dirigente tanto del proyecto Android como de Chrome. Lo que podemos sacar más o menos en claro:

-Android 5.0 (Andorid L): Probablemente será lanzado en octubre/noviembre junto a un parece ser Nexus 9. En teoría en el Keynote veríamos una preview al menos de esto. Entre otras características estarían una interfaz totalmente renovada, integración mucho más profunda de Google Search/Now, soporte para 64 bits, API para cámaras nueva para permitir imágenes RAW y otros… un gran cambio en general
-Nuevo Play Services: Inclusión de una nueva API Para dispositivos orientados a la monitorización de las personas, como signos vitales, pasos, ritmo…
-Complementos personales Android: Relojes, pulseras, zapatos…
-Domótica: Desde la adquisición de Nest, Google ha ido metiéndose cada vez más en las casas de los usuarios para el control de ella…. veremos que se cuece realmente…
-Google Glass: Se cree que será anunciada su disposición inmediata en otros mercados además del Americano, sin contar con un hardware algo más avanzado
-YouTube Music: No está claro si Google lanzará su nuevo servicio de YT en el IO, pero desde luego se sabe que es algo que tienen muy muy avanzado…
-Dispositivo Nexus: A mitad de año es evidente que no veremos ningún Nexus 5 (2014), pero no estaba muy claro si vería la luz un Nexus 10. Finalmente parece ser que llegará un Nexus 9, pero tampoco es algo que podamos asegurar.
-Android Silver: Es posible que Google desvele si finalmente piensa o no crear o poner en marcha lo que se llamaría Android o Nexus Silver, un programa para fabricantes que puedan vender sus terminales prácticamente sin persnalizaciones y posiblemente a través de Play Store
-Android TV: El año pasado Google sorprendió con un inesperado ChromeCast, nadie había oído nada de ello y resultó ser un éxito a nivel mundial. Su bajo precio, sus posibilidades y el soporte de las aplicaciones hizo que realmente sea uno de esos gadgets que tener por casa. Pero ChromeCast tienes sus limitaciones, en parte no es más que un receptor. De confirmarse, Google estaría apunto de lanzar un setbox para las televisiones a modo de Android TV, un dispositivo posiblemente ejecutando una versión de Android en el que poder instalar aplicaciones y tener una interacción mucho mas directa con la televisión. No sustituye a ChromeCast ni mucho meno, son dos planteamientos totalmente diferentes.

Por supuesto son solo algunas de las cosas que muy posiblemente veamos en mayor o menor medida mañana. A todas ellas habría que sumarle actualizaciones aseguradas de la mayoría de los servicios de Google, cambios en las API, en las propias aplicaciones… intentaremos resumir las novedades del Keynote a medida que vayan apareciendo

Un saludo a todos amigos

Cronicas desde la Playa: Fallo de seguridad en iOS6+ y como robarles las cuentas de Microsoft (Hotmail, Outlook, live…) por medio de un sencillo MitM

Share on Google+Share on FacebookTweet about this on Twitter

Introducción

Con la llegada del buen tiempo y los períodos vacacionales, no somos pocos los que emigramos a la playa para descansar, relajarnos y olvidarnos de todo durante unos días. En un mundo movido por la tecnología parece casi de obligado cumplimiento ir a donde quiera que vayamos con nuestros dispositivos, y por supuesto proveernos con conexiones datos móviles, y cuando podemos conectarnos a redes WIFI externas. Y de eso vamos a hablar hoy, de algo que parece no entrarle en la cabeza a muchos, “Conexiones WFI de terceros”.

Todos preferimos como es natural conexiones WIFI a conexiones de datos, ya sea en dispositivos móviles y ordenadores. El problema fundamental es que si nos conectamos a una red que NO CONTROLAMOS no podemos saber que está pasando realmente en ella en gran medida, y eso nos deja (o puede dejar) totalmente vendidos, como veremos más adelante. La regla debería de ser muy sencilla: Si nos conectamos a una red desconocida, no quejarse de las consecuencias, y eso va por todos aquellos que les gusta llegar a cualquier sitio y buscar alguna red abierta o alguna red segura de la que pueda obtener la contraseña.

En teoría, en un mundo perfecto, todas las comunicaciones deberían de ir cifradas punto-a-punto para que fuese imposible interceptar dicha comunicación. Ese es el planteamiento inicial de los protocolos seguros como TLS/SSL, que nacieron de la necesidad de poder enviar y recibir datos a través de Internet sin miedo a que un tercero pudiese interceptar dicha comunicación. En las redes privadas/públicas (ya sean WIFI o Ethernet) esto toma un cariz muy especial, dado que la mayoría de las veces a nuestra misma red están conectados otros usuarios, ya sean nuestros propios familiares en caso de una red doméstica, ya sea algún vecino que logró obtener nuestra clave WIFI, ya sean todos los alumnos de la red de una universidad… etc etc etc. En estas redes, cualquiera de ellos podría ser un “tercero” que malignamente quisiese interceptar la comunicación de uno de los usuarios de dicha red. Si todo el tráfico fuese en texto plano (sin cifrar), ese usuario malvado podría sin ningún esfuerzo espiar TODAS las comunicaciones desde y hacia Internet de ese usuario. La implementación de protocolos seguros como TLS/SSL imposibilita esto dado que toda la información que sale del dispositivo del usuario se manda y recibe cifrada, y la codificación se realiza en el mismo dispositivo. ¿Pero es esto fiable? Bien implementado y con políticas de seguridad correctas debería de serlo… pero ahí es donde entran los expertos en seguridad para dar tirones de oreja a los programadores, que como personas humanas cometen errores de seguridad.

Para no alarga demasiado la historia, voy a resumir muy brevemente como es posible la comunicación TLS/SSL para garantizarnos la seguridad. Quien sepa como funciona que salte la sección si lo desea.


TLS/SSL

TLS/SSL es posible a lo que podemos llamar cadenas de confianzas de certificados. Un servidor posee un certificado de seguridad que además de servirle para todas las tareas de cifrado lo identifican de forma inequívoca. De este modo cuando un usuario quiere realizar una conexión segura hacia él, lo primero que hace este servidor es enviar este certificado como carta de presentación. El dispositivo del usuario por su parte (el navegador, aplicación…) antes de realizar la configuración del canal seguro, verifica como es natural la legitimidad de dicho certificado. Si todo es correcto se crea un canal seguro de comunicación, si la aplicación que sea detecta un error en dicho certificado (ya sea por que ha sido alterado, haya caducado, sea incorrecto, se desconozca el emisor…) la comunicación debería de cerrarse de forma automática, o al menos advertir de ello con un gran “WARNING!!”

Si un tercero intentase interceptar la comunicación sencillamente “pinchando” la línea, tan solo vería pasar por él datos sin sentido, cifrados. Pronto aparecieron vectores de ataques para que este usuario (que llamaremos a partir de ahora hombre en medio y de ahí este tipo de ataques Man-In-The-Middle, MitM) pudiese intentar sortear estas medidas de seguridad. Quitando ataques conocidos a SSL/TLS y fallos de implementación existentes (como el famoso heartbleed de hace unas semanas), es imposible poder descifrar los datos que circulan por dicho canal sin poseer la “llave” de ellos. La llave de la cual depende todo en última instancia es el certificado que envía el servidor al usuario (la clave privada de este que celosamente guarda el servidor en cuestión y que jamás sale de él y que evidentemente nunca podremos obtener).

conexionnormal

Como hemos dicho, cuando el sistema funciona correctamente y no hay flecos, tan solo obtendríamos datos sin sentido de dicha comunicación. Pero… que pasaría si un atacante se colocase en medio de la comunicación de ambos e intentase impersonar/suplantar el servidor de destino de cara al usuario y impersonar/suplantar al usuario de cara al servidor?? En este nuevo modelo, el usuario sin saberlo se estaría conectándose al equipo del atacante, y sería a este al que le solicitaría el servicio (por ejemplo una web) que desearía tener acceso, en vez de al servidor real. Llegado a este punto, el atacante tan solo debería de proveer con un certificado propio al usuario ingenuo, y si la conexión se estableciese correctamente, luego por otro lado, el atacante se conectaría al servidor legítimo para “pasar” dicha información a él. Es decir, el atacante establecería en este caso dos comunicaciones seguras, una con el usuario y otra con el servidor legítimo. El usuario no podría saber que está conectado realmente al atacante en vez de al servidor legítimo, y el servidor legítimo tan solo tendría una conexión normal en sus redes con lo que tampoco podría sospechar nada. Dado que el atacante generó su propio certificado que envía al usuario, posee también su clave privada y por ello puede decodificar la información que PC Usuario<->PC MidM generan. Del mismo modo como es este quien se conecta de forma legítima al servidor externo, también posee la clave de sesión de dicha conexión, y por tanto también puede descifrar los datos entre PC MidM<->Servidor.

El nuevo modelo por tanto sería algo así:

conexionmidm

El atacante (MidM) en este caso podría ver todo el tráfico que circulase por él, aunque fuese cifrado punto a punto… o más correctamente, en este caso no sería cifrado punto a punto, sería un cifrado usuario-MidM MidM-servidor.

Esto en teoría no debería de ser posible. Para evitar precisamente este tipo de técnicas, se hace uso de la propiedad que tienen los certificados para verificar no solo su integridad, sino su autenticidad. Esto es posible gracias a que cada certificado debe de estar firmado por otros agentes certificadores, generalmente por un CA (Autoridad de Certificación) que será quien en última instancia emite dicho certificado para dicho servidor. Dicho certificado digital es firmado por el CA de tal modo que cualquier alteración revocaría su validez. Pero la dependencia de un CA no solo elimina la posibilidad de que el certificado original sea modificado, sino que además garantiza que el certificado que el emite es genuino para el servidor concreto.

Sin poder modificar el certificado original (dado que automáticamente el software del usuario rechazaría la conexión) solo queda la opción de emitir un certificado propio. El problema es que el certificado que podríamos emitir evidentemente no vendría firmado por un CA reconocido. Esto es posible porque los programas que usamos ya sean aplicaciones, gestores de correos, navegadores… poseen una base de datos que se va modificando día a día con futuras versiones de un listado de entidades certificadores de confianzas, de tal modo que si un certificado que nos haga llegar un servidor está firmado por un CA que tenemos en lista, automáticamente se da por genuino. Es algo así como un sello de calidad. Nosotros podemos crear en cualquier momento un certificado totalmente válido y supuestamente para cualquier dominio, pero ninguna entidad de certificación fiable lo firmaría. Tan solo podríamos firmarlo nosotros mismos. ¿Esto anula el certificado? No realmente, el certificado es totalmente válido de cara a cualquier software, pero dependiendo de la política que cada software aplique al encontrar un certificado firmado por CA que NO TIENEN EN SU BASE DE DATOS sucederá una cosa u otra.

Todo el mundo sabe lo que sucede en la mayoría de navegadores Webs cuando esto sucede. Aparece un cartel de advertencia avisando de que el certificado no es válido, pero nos suelen dar la opción de continuar navegando. Esto es debido a que en realidad existen muchas webs totalmente genuinas (sobre todo webs de administraciones públicas) que usan infraestructuras propias de certificación y que los navegadores aun no tienen en sus bases de datos. Si no instalamos los certificados raíces (CA) el navegador nos bombardeará con avisos constantemente. En los navegadores Webs normalmente es suficiente con una advertencia de seguridad, y es el usuario quien debe de escoger que hacer… aun así suele ser muy tedioso porque por lo general el usuario no suele entender dicho mensaje o advertencia… y generalmente rechaza la conexión aunque sea una web legítima… y luego las miles de quejas en las administraciones públicas de que los procesos en los que se hace uso el certificado digital personal solo da problemas y errores.

¿Pero que pasa con los móviles y tablets? Aquí la cosa es más compleja. Tenemos cientos de aplicaciones constantemente conectadas a Internet, y evidentemente si queremos un mínimo de seguridad presuponemos que la mayoría de esas conexiones son cifradas, y evidentemente los protocolos TLS/SSL es lo que se usa en su 95%. ¿Que política aplican los dispositivos móviles? No hay ninguna política concreta, y depende de cada Sistema Operativo o aplicación.

Por ejemplo, por lo general tanto en Android como en iOS existe un almacen de certificados digitales al estilo de los navegadores Webs, en los que se puede añadir un certificado si se desea. Por defecto ambos sistemas operativos deniegan cualquier tipo de conexión que realicen las aplicaciones si estas reciben un certificado firmado por una entidad que no tienen registrada. No obstante, ambos igualmente poseen en sus API de programación modos para evitar esta salvaguarda, de modo que una aplicación podría ser programada para que en caso de inconsistencia del certificado o de firmado por un CA que no se tenga, aceptar la conexión de todos modos. Por ejemplo, imaginar que el creador de la aplicación no usa un certificado firmado por un CA que los dispositivos tengan en su BD!! Es necesario que tengan un modo de sortear esta seguridad.


La Crónica Contada

Dicen que la curiosidad mató al gato, y a mi no me gusta quitarle vidas. Y como tantas otras cosas todo comienza por un: “Que pasaría sí…” en mi caso fue un:

“Cuantos incautos se conectarían a mi Router si añado una red WIFI abierta?” Mirándolo por el lado bueno estás prestando un “servicio” y dando WIFI a quien quiera, por otro lado esos usuarios deberían de saber que no puedes fiarte de NINGUNA conexión WIFI que no controles… y muchas veces las que controlas si no están bien aseguradas tampoco. El resto es sencillo… desvincular por seguridad la red secundaria WIFI de la primaria, redirigir todo el tráfico desde dicha interfaz del router hacia mi propio equipo en el que levanté un servidor proxy transparente para poder ver/manipular/inyectar el tráfico que quisiese y una pequeña infraestructura igualmente para inyectar certificados firmados por un CA inventado.

Es decir, todo el tráfico que se generase por usuarios conectados a mi punto de acceso “libre” pasaría por mi PC antes de llegar a su destino. Con ello automáticamente ya podría tener acceso a todo el tráfico no cifrado sin que los usuarios pudiesen hacer nada, simplemente por conectarse a un punto de acceso que no estaba protegido por una contraseña. Solo con esto podríamos escribir todo un libro sobre fallos de seguridad de tantas webs que envían en texto plano contraseñas, usuarios y datos de todo tipo… pero eso lo dejaremos para otro día, hoy se trataba de analizar tráfico cifrado.

Para poder “ver” el tráfico cifrado sin complicaciones mayores o trucos de cualquier tipo que al final puede ser culpa del usuario picar o no picar, la idea era comprobar la solidez de las aplicaciones a la hora de manejar certificados válidos firmados por CA desconocidos. La lógica dice que tan solo algunas aplicaciones móviles permitirían dicha conexión cifrada, mientras que la inmensa mayoría ni siquiera advertirían al usuario de un error de certificado y denegarían la conexión… lo cual es igualmente malo, puesto que para el usuario tan solo tendría la sensación de que algunas cosas le funcionaban y otras no.

Como era de esperar, en tan solo unos minutos ya tenía unos cuantos usuarios conectados a mi AP, la mayoría hay que decir que el tráfico era generado de forma automática por aplicaciones de fondo instaladas y otros servicios en dispositivos móviles, como evidentemente comprobaciones de correo, actualizaciones de redes sociales, datos de localizaciones… mirando el tráfico en los primeros 5 minutos algo inexplicable, la conexión realizada por un iPad en la comprobación del correo electrónico de una cuenta de hotmail… contenido protegido como era de esperar por TLS/SSL, pero la conexión no se estaba rechazando. Esto es lógico de ver en aplicaciones que no podemos tildar de “importantes”, pero si hablamos del correo electrónico la importancia es en mayúsculas:

(Nota: Como es lógico he eliminado los datos sensibles de dicho usuario)

POST /Microsoft-Server-ActiveSync?User=usuario@hotmail.com&DeviceId=AppTATATATATA190&DeviceType=iPad&Cmd=MoveItems HTTP/1.1
Host: dub405-m.hotmail.com
X-MS-PolicyKey: 0
Accept-Language: es-es
User-Agent: Apple-iPad3C6/1104.167
Accept: */*
Content-Type: application/vnd.ms-sync.wbxml
Connection: keep-alive
Cookie: laquesea
Authorization: Basic dXN1YXJpb0Bob3RtYWlsLmNvbTpwYXNzd29yZA==
Content-Length: 130
MS-ASProtocolVersion: 14.0
Accept-Encoding: gzip, deflate

Solo con la cookie de sesión sería suficiente para poder acceder al correo electrónico, aunque sería imposible conocer la contraseña de dicha cuenta como es natural. Lo que más me sorprendió fue ver que tanto el correo como la contraseña de la cuenta estaban siendo enviadas en texto plano!! En la propia cabecera del paquete en una conexión cifrada por un certificado de un CA falso. Si vemos en la cabecera del paquete:

“Authorization: Basic dXN1YXJpb0Bob3RtYWlsLmNvbTpwYXNzd29yZA==”

Para cualquiera que sepa un mínimo de codificación digital, sabrá que eso no es más que una codificación en Base64, revertido: “usuario@hotmail.com:password”.


Conclusiones

Este tipo de fallos de seguridad es muy común verlos como digo en servicios de poca confiabilidad, pero no es algo que sea ni mucho menos normal encontrar en servicios de uno de los grandes, y lo digo tanto por parte de Apple como por parte de Microsoft. Esto puede parecer un poco enrevesado y complicado, pero pensemos realmente en ello.

No tengo ahora mismo un iPad para probar, pero por el User-Agent del paquete puedo deducir que el usuario en concreto no usó la aplicación concreta del AppStore, sino que usó el gestor de cuentas por defecto en iOS para configurar su cuenta de Hotmail. Si esto es así, el fallo de seguridad recae en Apple, dado que es iOS quien en su gestor de cuentas de Hotmail no rechaza por defecto las conexiones potencialmente fraudulentas. Esto es un fallo de seguridad bastante importante!! Pensar que el primer dispositivo iOS (y el único) que se ha conectado a mi AP ya me estaba dando automáticamente su cuenta al completo (usuario y contraseña) sin que él pudiese hacer nada ni se enterase de nada. ¿Cuantos usuarios de iOS usan Hotmail?? Siempre hablando en hipotéticos, sería tremendamente sencillo robarle la cuenta de Hotmail a cualquier usuario de iOS, dado que además las comprobaciones de correo se hacen de fondo… Lo más preocupante de todo ello es si este problema no solo afecta realmente a Hotmail, sino que es un problema del gestor de correos de iOS y afecta igualmente a otros proveedores…

Existe una alternativa a ello. Que dicho usuario estuviese usando la aplicación de Microsoft y no el gestor propio de iOS, que es otra opción. En este caso la responsabilidad recaería íntegramente en Microsoft, puesto que habrían sido sus programadores los que permisivamente no ajustaron bien las políticas de seguridad.

En cualquier caso es algo realmente bochornoso y preocupante. Como digo es algo que puedes esperarte de empresas que no tienen como es natural los mismos recursos o pueden ser más… “despistados”, pero en el caso de Apple o Microsoft es algo totalmente inexcusable.

Para colmo de males, no solo se trata de que sea posible realizar un ataque MidM, sino que la aplicación (Apple o Microsoft) envía en plano la contraseña en el paquete. Sí, evidentemente se supone que es suficiente con TLS/SSL, pero a día de hoy esto es de bien sabido no ser suficientemente seguro. Tal es así que los servicios realmente decentes usan además de conexiones fiables TLS/SSL otros modos de enmascaramiento de contraseñas. Por ejemplo, habría sido tan sencillo como expresar la contraseña como un Hash MD5/SHA1 (o lo que se prefiera) con lo que habría sido imposible revertirla. Es preocupante ver que quitando el amparo de TLS/SSL los datos altamente sensibles viajan tal cual…

En comparación, Google, aun cuando uno interceptase su propio tráfico y abriese absolutamente todas las conexiones TLS/SSL instalando el certificado CA pertinente, no podría ser posible acceder a la contraseña de dicho usuario en ninguno de sus servicios dada la alta codificación de los datos fuera ya del amparo de TLS/SSL. Vale, eso no significa que sea imposible a lo mejor robar una cookie de sesión o intentar obtener más información… pero al menos la contraseña el atacante no la obtendría.

Es sumamente importante concienciar a los usuarios que aun cuando una red WIFI pueda ser tentadora, puede esconder un peligro mucho mayor de lo que uno pueda imaginar. En este caso con los datos del corroe de dicha persona podría entrar no solo impunemente en su correo, sino a cada uno de los servicios asociados a él: Paypal?? Redes Sociales? Tiendas Online? Servicios de Geolocalización si los tiene?? Agenda? No creo que sean cosas que se deban de tomar a risa o a la ligera, y mucho menos creer en la seguridad que incluso esos que llamamos “los grandes tecnológicos” nos dan. La mayor seguridad la da el sentido común señores, y por mucho que prefiramos una conexión WIFI frente a una de datos, ya no solo veamos siquiera el daño o no daño que podemos provocar a la otra persona si es una “conexión wifi robada”, sino que la peor parte nos la llevamos nosotros mismos por regla general. No pensemos nunca que somos los más listos del mundo, que tenemos aplicaciones y utilidades para robar contraseñas WIFI, que hemos tenido suerte de encontrar una red Abierta, que… porque os puedo asegurar que siempre hay alguien más listo detrás aprovechándose de todo ello.

Por supuesto la infraestructura que he levantado en 5 minutos es infinitamente mejorable, para empezar sería treméndamente sencillo enviar a cualquier usuario que se conectase a un portal de captación en el que se obligase a los usuarios a instalar un certificado para “navegar” y que dicho certificado fuese realmente el certificado del CA creado… con lo que de instalarlo el dispositivo quedaría totalmente abierto hacia el atacante, y todo el tráfico cifrado sería descifrado dado que de cara al dispositivo dicho CA sería igual de válido que cualquier otro.

Suma y sigue… suma y sigue.

El fallo ya lo he notificado a Microsoft y Apple igualmente… aunque para el caso que suelen hacer…

Feliz Primavera amigos.

Volver a arriba

Sobre Mí

Cambiar a la versión para móviles

Creative Commons License
Alma Oscura por Theliel is licensed under a Creative Commons Reconocimiento-No comercial-Sin obras derivadas 3.0 Unported License.
Basado en el trabajo de blog.theliel.es.
Para otros permisos que puedan exceder el ámbito de esta licencia, contactar en blog.theliel.es/about/contactar.