[en] The main idea of this project is to figure out how we can create a mesh network in Android smartphone in order to take advantage of the benefits of this kind of networks. Mesh networks has some special characteristics that could improve the user experience or even save lives in some extreme situations. For example in some situation where the density of people collapse the regular network, football stadiums or big demonstrations, or when some big catastrophe happens, tornados, tsunamis, earthquakes that take down the network, mesh networks would allow us to make some applications that make the people able to communicate with the people that is near to them. In order to develop the entire project the Android Stick MK808B had been chosen as it fulfilled all the requirements for being able to create a mesh network. Apart from the technical specifications the cost of the product had also been taken in account. Cheap devices were bough in order to make possible to buy many of them and check the network working. To create the mesh network SPAN framework was used. SPAN framework allowed us to create a mesh network using OLSR in a few android devices, so after some modifications SPAN framework was able to create the mesh network in mk808b devices too. All modifications were made at Application Level as no suitable device had the Kernel Source published. Because of this, it is no possible at the moment to build any application that uses Mesh Networks in all android devices. The main problem is that Android doesn't allow Ad-hoc mode itself and this makes impossible to create an application that creates a mesh network for any device without modifying and flashing a kernel for each one. Mesh networks could be really useful in everyday or extreme situation with smartphone. But as long as Android doesn't support it and make it possible to work with ad-hoc mode it is no possible to create an application that uses it without modifying the kernel of every device, which is impossible to be done for a regular user.

[es] La idea principal de este proyecto es averiguar como podemos crear redes mesh en un smartphone Android y así poder aprovechar los beneficios de este tipo de redes. Las redes mesh tienen unas características que podrían mejorar la experiencia de usuario y incluso llegar a salvar vidas en situaciones extremas. Por ejemplo, en una situación donde la densidad de usuarios haga colapsar la red telefónica convencional, como estadios de futbol, manifestaciones o cuando ocurren catástrofes como tornados, tsunamis, terremotos, las redes mesh nos permiten crear aplicaciones que permitan a las personas comunicarse con la gente cercana a ellos. Para el desarrollo del proyecto he elegido el Android Stick MK808B porque cumple con todos los requisitos para ser capaz de crear una red mesh. Además de las especificaciones técnicas, el coste del producto también se tomó en cuenta. Se han buscado dispositivos económicos para que fuera posible comprar un número elevado de ellos y así poder hacer experimentos. Para crear la red mesh se utilizó el SPAN framework. Span Framework nos permite crear una red mesh utilizando OLSR en unos pocos dispositivos Android, así que después de algunas modificaciones en el framework también fue capaz de crear una red mesh en los mk808b. Todas las modificaciones se hicieron a nivel de aplicación ya que ningún dispositivo que cumpliera los requisitos para el proyecto tenia el código del kernel abierto. A causa de esto, no es posible crear una aplicación que aproveche las redes mesh en cualquier dispositivo Android. El principal problema es que Android no permite el modo Ad-hoc y eso hace imposible crear una aplicación que funcione en cualquier dispositivo sin necesidad de modificar ni grabar un kernel para cada uno. Las redes mesh pueden ser muy útiles en situaciones cuotidianas o extremas, pero mientras Android no de soporte el modo Ad-hoc no será posible crear una aplicación que utilice este tipo de redes sin modificar el kernel para cada dispositivo, lo que es imposible de hacer para un usuario normal.