Ir al contenido



Foto

Las "tripas" de un android: rootear, recovery, etc.


  • Por favor identifícate para responder
15 respuestas en este tema

#1 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 08 octubre 2012 - 06:42

La semana pasada se me ocurrió que debería existir alguna app. para que mi android comparta carpetas "a lo windows": que aparezca en mi windows (o linux, mac, etc.) como un ordenador más de red, que comparte su disco duro. Y si que existe, pero necesitaba ser "root", así que empece a investigar que era todo eso que tanto se oye de "ser root", "cambiar el recovery", y demás jerga poco entendible.

Ahora, después de aprenderlo por el sistema complicado (sufriendo las consecuencias de no saber en qué me metía), os lo resumo lo mejor que puedo, como siempre, haciendo comparaciones con algo conocido: nuestro querido PC con su windows instalado.

Bueno, antes de nada, veamos de que "capas" se compone un android y sus equivalentes en windows, y los detalles que esconde cada una de estas capas:

Bootloader
Es como la BIOS de nuestro PC: lo primerisimo que arranca cuando encendemos el aparato.

En un PC tenemos que pulsar "Supr" o "F1" para entrar a configurar esa BIOS, en Android pasa algo similar, tenemos que encenderlo manteniendo pulsadas las teclas de encender y la de subir volumen a la misma vez, y tras 2 o 3 segundos sin soltarlas, te aparece el menú del "Bootloader".

Nota: Igual que algunos PC usan la tecla "Supr" (Del) para acceder a la BIOS y otros usan "F1", en android siempre se pulsa el botón de encendido en combinación de una o dos teclas más: Suele ser volumen arriba, pero podría ser la de bajar volumen, arriba en el track-pad (si lo lleva), la tecla X (si tiene teclado físico), o la de la cámara de fotos + volumen abajo (si tienes botón de hacer fotos).

En el caso de android el bootloader es más simple que la BIOS de un PC, y solo nos dará 3 o 4 opciones: Boot (arrancar el android), Switch off (apagar el aparato) y Recovery, que veremos más adelante.

Si hacéis la prueba, cosa que no implica ningún riesgo, una vez lleguéis a este menú, os moveríais entre las opciones con los botones de volumen, y elegirías una de ellas poniéndote encima y pulsando el botón de encendido del aparato.

Aparte de estas 3 o 4 opciones del menú, hay dos cosas más que saber:

-Este bootloader es un linux mínimo, con soporte para acceder a los ficheros del movil, soporte para conexiones USB, y una especie de server telnet llamado ADB al que le podemos enviar ordenes desde el PC por USB para pedirle que haga ciertas cosas "avanzadas".

-El bootloader tiene un "estado" que os aparecerá en pantalla. Por defecto es LOCKED, pero se puede cambiar (con el sistema comentado de usar el USB) a UNLOCKED. ¿Que es lo que se bloquea o desbloquea? Desbloqueamos la posibilidad de modificar la segunda capa, el recovery, sustituyéndolo por otro con más opciones.


Recovery
Aunque he comparado el "Bootloader" con la BIOS de un PC, el uso es diferente: realmente lo que elegimos es si queremos arrancar normalmente en windows (android en este caso) o si queremos entrar en el menú de reparación del sistema, el recovery.

El equivalente al recovery en un PC con windows es el menú que sale al pulsar F8 mientras arranca windows o tras un fallo grave del sistema: un menú de ms-dos con cosas como "Reparar windows", "Formatear disco" o "Consola de reparación".

Este menú de recovery es parte del android que tengamos instalado: Si reinstalas android 4.1.1 en tu aparato, volveras a tener el recovery que trae ese sistema, igual que si instalas un cierto windows, el menú de reparación que obtienes es el de esa versión de windows.

Si hacéis la prueba -no tiene peligro alguno, podeis hacerlo sin miedo- de entrar en modo bootloader, bajar con el volumen a la opción de RECOVERY, y entráis con la tecla de encender, no veréis ningún menú, normalmente el recovery de fábrica es equivalente a la opción de "Reparar windows", y mientras se aplica solo veréis un muñeco de android medio destripado. Al cabo de un par de minutos, android arrancará como de costumbre y no notaremos nada nuevo.


Kernel
Si el bootloader decide arrancar android (es lo que ocurre normalmente al encender el aparato), lo siguiente que hace el cargar el kernel de linux: este contiene los drivers para la memoria, la tarjeta, la pantalla, el USB y los servicios típicos de un linux.


Android
Finalmente el kernel de linux cargará la máquina virtual Java y todo lo que conocemos como "Android".

Nota: El kernel más el "android" es lo que conocemos como la ROM que tenemos instalada, puede ser un android "oficial" de tal versión, o una ROM modificada por la comunidad, tipo Cyanogenmod.

 

Bueno, ya conocéis las partes internas de un android, ahora veamos, sin entrar en mucho detalle sobre el "como", qué "cosas" se pueden hacer/cambiar en cada una de estas capas para "tunear" nuestro android y que efecto tiene cada una de ellas.


Desbloquear el bootloader
El bootloader ha de estar en modo UNLOCKED para que se pueda cambiar el recovery, así que sería el paso cero a realizar.

No tiene ningún beneficio desbloquear el bootloader si no es para cambiar el recovery, pero bueno, al arrancar android sale un candado abierto que antes no salia, así que los entendidos, al verlo, sabrán que eres "del gremio" y te sonreirán  (y).


Cambiar el "recovery"
El menú que trae de fábrica android para recuperar el sistema en caso de emergencia es muy simple como ya comentamos, así que una la primera cosas a hacer si pretendeis "jugar" con android a estos niveles, es cambiarlo por otro que, en caso de estropear el android modificando algo del sistema, podamos restaurar todo como estaba de fabrica y cosas así.

Yo lo hice al revés: Primero estropee mi andorid jugando a ser root, y luego aprendí a cambiarle el recovery para poder arreglarlo. No hay ningún problema en hacerlo conforme se necesite, aunque los recovery buenos tiene opciones interesantes para hacer copias de seguridad del 100% de tu movil a la tarjeta SD.

Moraleja: No es 100% necesario cambiar este recovery antes de "romper" nada, PERO es la mejor opción para, antes de meterse en temas delicados, hacer una copia de seguridad al 100% de nuestro movil.

¿Y si estropeo el android y no tengo copias de seguridad?
Buena pregunta, en general, perderás información, poca o mucha pero alguna. Los android 4 y superiores realmente integran casi todo en la nube de google, así que, en mi caso (android 4.1.1) aunque hice una copia de seguridad, la verdad no me hizo mucha falta: Tras reiniciar el android en el bootloader, entrar al nuevo recovery, y elegir "Wipe data", apareció android 4.1.1 recien salido de fábrica: me preguntó por mi idioma y mi cuenta de gmail.

Ya está! Se conecto a mi wifi sin preguntar nada, se descargó los contactos, reinstalo las más de 100 aplicaciones que tenía instalado, y al entrar en ellas, salvo excepciones, todos mis datos estaban allí (las aplicaciones que guardan sus datos de froma estandar se sincronizan con google a no ser que elijas que no lo haga).

Perdí solamente el histórico de mensajes SMS (no lo uso casi nada),  las fotos de la galería (las tenía sincronizadas con dropbox así que se recuperaron solas) y algún clip de sonido recién grabado. Todo esto lo tengo en la copia de seguridad, pero por tan poca cosa no pienso recuperar el fichero.


Rootearlo
Aquí hablamos de, una vez que arranca el kernel y el android, poder ejecutar comandos o acceder a ficheros con todos los permisos posibles, es decir, siendo root en lenguaje unix/linux, que en windows sería siendo el usuario Administrador.

El kernel ya es un linux, y los ficheros usan el esquema de permisos de unix, así que "rootear" un movil, en el fondo, es hacer dos cosas: Copiar el comando "su" de linux a la carpeta de comandos del linux, y añadir una app al android que "capture" cuando un programa intenta ser superusuario y te pregunte si quieres o no otorgarle esos permisos (como cuando windows te pregunta si le dejas a tal programa modificar el windows).

El problema es que no tenemos permisos para copiar ficheros a esa carpeta, así que necesitas ser super usuario para poder instalar lo necesario para ser super usuario... este es el lío.

Y... ¿para qué quiere uno ser root?

Bueno, igual quieres instalar un servidor samba como era mi caso, o acceder al sistema de ficheros incluidas carpetas del sistema para temas de programación, o quieres evitar la publicidad modificando el fichero hosts del linux, o poder hacer copias de seguridad completas desde android (sin tener que usar el truco del recovery)... si buscaís en google play por root veréis el tipo de cosas que se pueden hacer.


Cambiar la ROM
Es la razón principal de meterse en estos fregados, aunque no fue mi caso: si tu movil se quedó estancado en la versión de andorid X y quieres actualizarlo, te toca borrar el android y reinstalarte todo (menos el bootloader).

Para esto no es necesario ser root, piensa que vas a instalar un nuevo windows, así que da igual que en el windows que quitas fueses o no usuario "Administrador".

El método en general es "simple": Primero has de desbloquear el boot  loader y poner un recovery en condiciones, luego, copias la ROM a la memoria del teléfono (la raíz de la SDCARD, se puede hacer conectando por USB el movil como si fuese un MP3) y finalmente reinicias el android en el modo bootloader, pasas al recovery con el menú, y una de las opciones que ves es instalar un zip desde la raiz de la sdcard, y al rato tienes un andorid nuevo instalado en tu movil.

Yo no soy muy fan de esto, más que nada porque mi teléfono es un nexus y se me actualiza solo a la última, y si le cambio la ROM perdería esta auto actualización, pero si el movil fuese ya antiguo o el fabricante no quisiese actualizarlo, entonces no tienes nada que perder.

 

¿Tiene peligro jugar con estas cosas?

Desbloquear el bootloader y ponerle otro recovery no tiene ningún problema en absoluto: si funciona, pues bien, y si algo falla, sigues como antes.

Ser root de por sí no tiene problemas, pero si que te permite instalar un programa que falle por alguna razón, y al haberle dado permisos root a esa programa, te puede reiniciar el andorid, desconfigurartelo... para evitar eso android no da acceso root, claro, así que la regla de oro sería: Cuando pruebes un programa en modo root, y te pregunte el sistema si le das o no permisos root, dáselos pero marcando "Preguntar la próxima vez".

Así, si algo falla, reinicias y listo, porque la aplicación deja de tener permisos y ya no puede meter la mano donde no debe, y solo si ya has usado 2 o 3 veces esa aplicación sin tener problemas le das permisos root permanentes.

Cambiar la ROM es lo más peligroso, en el peor de los casos sí que puedes dejar el móvil hecho un ladrillo!

El problema con las ROM es que ante un desastre de cualquier tipo, cuando vayas al recovery y le pidas reiniciar el android, reiniciara el que acabas de instalar, no el de fabrica, porque lo has sustituido. Si le pusiste una ROM que no va en tu móvil, no podrás arrancar android para grabarle una nueva ROM en la raíz de la SDCARD (la interna, no a la extraible) que es necesario para luego entrar al recovery y pedrile que instale esta ROM sobre la actual, con lo que te quedas estancado en una ROM que deja el teléfono como un ladrillo.

Moraleja: Cambiar la ROM solo si es necesario (moviles que no se actualizan y si no los actualizas van a quedar de pisapapeles) a versiones que se sepa que van bien en tu modelo, siguiendo las instrucciones del "fabricante" de la ROM (puede tener 2 o 3 versiones y solo una valer en tu caso) y siempre con copias de seguridad por si acaso.

Yo tengo pensado probar a instalarle una ROM nueva a un tablet que salio malo malisimo (pero era barato) y que me da igual que se quede hecho un ladrillo, porque ya es un ladrillo. Lleva android 2.3 y probaré a ponerle el 4.0.4 o el 4.1.1, y si revienta, pues no pierdo gran cosa.

 

Bueno, como introducción ya esta bien, dejo sin tocar en absoluto el "como" se harían todas estas cosas.

No sé si estáis interesados y tampoco creo que sea el que más sabe de esto por estos foros, pero si lo veis interesante, otro día explico pasito a pasito como conectar android con PC para poder cambiar estas cosas en nuestro android.

Actualización: Parece que hay gente interesada... mucho haker es lo que hay suelto! Así que podéis continuar la serie leyendo aquí:

Rooteando paso 1: El driver ADB.


  • 0

#2 cadetill

cadetill

    Advanced Member

  • Moderadores
  • PipPipPip
  • 994 mensajes
  • LocationEspaña

Escrito 08 octubre 2012 - 07:18

Pues hombre, ahora nos has dejado con la miel en la boca, así que, o terminas el trabajo, o pones enlaces donde podamos encontrar esa info bien detallada como tu lo haces (sí, somos vamos, que le vamos a hacer :p)

Por cierto, la versión de Android es la que sale en los ajustes? Porque tu hablas de la 4.x y en el mio sale la 2.x jejejeje

Otra cosa, a todos los móviles se les puede instalar la última versión o hay incompatibilidades de hardware (a parte de la posible lentitud al ser una versión que requiera más recursos)?
  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.615 mensajes
  • LocationMéxico

Escrito 08 octubre 2012 - 07:36

Pues ya nos has dejado con la curiosidad.

Lo que yo uso para acceder a mis carpetas es la App Wifi file Explorer la cual te permite acceder a todas las carpetas desde cualquier explorador de internet, lo uso mucho para descargar las fotos que he tomado a mi PC.

Saludos
  • 0

#4 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 08 octubre 2012 - 07:38

Pues hombre, ahora nos has dejado con la miel en la boca, así que, o terminas el trabajo, o pones enlaces donde podamos encontrar esa info bien detallada como tu lo haces (sí, somos vamos, que le vamos a hacer :p)

Por cierto, la versión de Android es la que sale en los ajustes? Porque tu hablas de la 4.x y en el mio sale la 2.x jejejeje

Otra cosa, a todos los móviles se les puede instalar la última versión o hay incompatibilidades de hardware (a parte de la posible lentitud al ser una versión que requiera más recursos)?


La verdad es que una vez te quitas el miedo, es divertido, y si llevas cuidado no tienes peligro. A ver si mañana pongo uno para empezar cambiando el recovery.

La versión de android es la que sale en los ajustes, al final, en "Acerca de".

Si tienes una V2.X es que usas Gingerbread seguramente (2.3.3), y si, puedes ponerle una 4.1.1 sin problemas de compatibilidad siempre que cumplas con unos mínimos de memoria RAM y esas cosas (un android 1.6 con 256 megas no te vale para ponerle la versión 4.1.1, no le cabría), siempre que "alguien" haya creado una ROM que sea compatible con tu movil... ese es el único problema.

Lo normal es que vayas a cyanogenmod y trates de buscar tu modelo entre los soportados oficialmente. Si está, perfecto, puedes ponerte una versión más actual (tienes para elegir) y si no aparece soportado, puedes leer por los foros a ver si otros han probado con tu modelo y si les fue bien, regular o mal y decides según el cariño que le tengas al aparato.

Al final ocurre como con windows: tu modelo de hardware necesita unos drivers, y la ROM que elijas solo necesita llevar dentro los drivers adecuados para funcionar. Si para tu movil existe ya una ROM que funciona, es que ya tiene los drivers localizados, y a no ser que te falte memoria o la CPU sea demasiado lenta, no hay mayor problema.
  • 0

#5 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 08 octubre 2012 - 07:44

Pues ya nos has dejado con la curiosidad.

Lo que yo uso para acceder a mis carpetas es la App Wifi file Explorer la cual te permite acceder a todas las carpetas desde cualquier explorador de internet, lo uso mucho para descargar las fotos que he tomado a mi PC.

Saludos


Para ver los ficheros en el PC tienes varios, el mejor para mi es AirDroid, pero bueno, todos hacen cosas parecidas.

El problema es si quieres modificar, por ejemplo, el fichero hosts de tu android, ese fichero y las carpetas del sistema no están ni visibles, y si las ves, no están modificables: para eso necesitas ser root, como en cualquier linux/unix.

Para descargar las fotos, y siempre que tengas wifi accesible para ello, utiliza DropBox, tras instalarlo en el android te lo preguntará: es automático, solo sincroniza si tienes wifi, y cuando tengas un problema tus fotos estarán copiadas.

Solo una cosa: Si borras una foto en el dropbox, no se borrará de tu android, pero al reves sí.
  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.615 mensajes
  • LocationMéxico

Escrito 08 octubre 2012 - 07:45


Pues ya nos has dejado con la curiosidad.

Lo que yo uso para acceder a mis carpetas es la App Wifi file Explorer la cual te permite acceder a todas las carpetas desde cualquier explorador de internet, lo uso mucho para descargar las fotos que he tomado a mi PC.

Saludos


Para ver los ficheros en el PC tienes varios, el mejor para mi es AirDroid, pero bueno, todos hacen cosas parecidas.

El problema es si quieres modificar, por ejemplo, el fichero hosts de tu android, ese fichero y las carpetas del sistema no están ni visibles, y si las ves, no están modificables: para eso necesitas ser root, como en cualquier linux/unix.

Para descargar las fotos, y siempre que tengas wifi accesible para ello, utiliza DropBox, tras instalarlo en el android te lo preguntará: es automático, solo sincroniza si tienes wifi, y cuando tengas un problema tus fotos estarán copiadas.

Solo una cosa: Si borras una foto en el dropbox, no se borrará de tu android, pero al reves sí.


La verdad es que no le he entrado a eso del dropbox, algún día lo haré :)

Saludos
  • 0

#7 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.937 mensajes
  • LocationMéxico

Escrito 08 octubre 2012 - 07:47

Pues me ha parecido sumamente interesante.. así que estaré al pendiente de la siguiente entrega....



  • 0

#8 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 08 octubre 2012 - 09:18

Viendo que hay interés me he envalentonado y estoy escribiendo ya en un nuevo hilo como iniciarse en esto, en un ratito le doy a publicar y os podéis poner a trastear un poco las tripas del android... ;)
  • 0

#9 escafandra

escafandra

    Advanced Member

  • Moderadores
  • PipPipPip
  • 3.689 mensajes
  • LocationMadrid - España

Escrito 08 octubre 2012 - 01:58

Está muy bien organizar la información y exponerla de forma clara y didáctica.  (y)

Yo también he jugado con mi Android rooteado y afortunadamente no he tenido percances. Uno de los grandes beneficios que he encontrado es conectarme a Internet a través de una red WiFi ad-hoc cosa que un Android "normal" no puede hacer. Eso es sólo uno de los beneficios de ser root.



Saludos.



  • 0

#10 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.135 mensajes

Escrito 08 octubre 2012 - 02:32

Muy buen documento Sergio, y muchas gracias por compartir, como dicen los compañeros quedamos iniciados.
Un saludo cordial.

PD: Ya mismo comienzo a hacer daños en mi teléfono.
  • 0

#11 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 09 octubre 2012 - 01:44

La verdad es que no le he entrado a eso del dropbox, algún día lo haré :)

Saludos


Pues es diferente al PC, en Android ves los ficheros que tienes en dropbox, pero no se los copia al movil, los descarga cuando los necesitas, esa es la diferencia principal.

Aparte de eso, puedes marcar algunos como favoritos y los descarga como en el PC -para verlos sin conexión- y te pregunta lo de subir las fotos automáticamente solo cuando haya wifi. Si le dices que sí quieres sincronizar tus fotos te amplia el espacio, así que interesa aunque luego lo desconectes!

Vamos, que interesa mucho ponerlo aunque solo sea por tener conexión con el PC a nivel de ficheros importantes y esas cosas (yo tengo escaneados documentos y esas cosas que siempre te piden cuando no sabes donde estan guardados).
  • 0

#12 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.476 mensajes
  • LocationMallorca

Escrito 09 octubre 2012 - 03:03

Pues hombre, ahora nos has dejado con la miel en la boca, así que, o terminas el trabajo, o pones enlaces donde podamos encontrar esa info bien detallada como tu lo haces (sí, somos vamos, que le vamos a hacer :p)

Por cierto, la versión de Android es la que sale en los ajustes? Porque tu hablas de la 4.x y en el mio sale la 2.x jejejeje

Otra cosa, a todos los móviles se les puede instalar la última versión o hay incompatibilidades de hardware (a parte de la posible lentitud al ser una versión que requiera más recursos)?


Hola nen.

Además de mirar si tienes disponible una versión CyanogenMod para tu dispositivo, otra consulta indispensable es mirar si tu teléfono/tableta está soportada por la comunidad de XDA Developers.

http://forum.xda-developers.com/

Estos chicos están especializados en dar nueva vida a tus dispositivos, creando ROMS modernas cuando el fabricante deja de actualizar el equipo.

Saludos.
  • 0

#13 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 16 octubre 2012 - 01:45

Recuperando un poco el tema, me gustaría saber algo al respecto con todo este asunto del sistema de archivos, así que como ejemplo digamos:
Hay una aplicación creada para el equipo que usa una base de datos (SQLLite para estos equipos) ¿cómo se puede recuperar entonces ese archivo desde el PC? ¿misma temática de Dropbox?


Saludos!
  • 0

#14 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 17 octubre 2012 - 05:29

Reviviendo el tema, ¿algún comentario?


Saludos!
  • 0

#15 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 18 octubre 2012 - 07:37

Recuperando un poco el tema, me gustaría saber algo al respecto con todo este asunto del sistema de archivos, así que como ejemplo digamos:
Hay una aplicación creada para el equipo que usa una base de datos (SQLLite para estos equipos) ¿cómo se puede recuperar entonces ese archivo desde el PC? ¿misma temática de Dropbox?

Saludos!


En su día no leí to nota... en fín, te cuento, las bases de datos se guardan por defecto en "data/data/your_package/databases" donde your_pakage es el nombre de tu aplicacion creo, pero vamos, son ficheros sin más que te puedes llevar a donde quieras.

Pero tambien puedes crearlas donde tu quieras con openOrCreateDatabase.

Sacado de aqui: http://stackoverflow...sqlite-database

Nunca he probado a copiarla y abrirla desde un PC, pero tendría que ser usable sin mas.

  • 0

#16 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 18 octubre 2012 - 04:00

Me documento en el asunto mientras logro tener en mis manos algún equipo para probar. Muchas gracias Sergio :)


Saludos!
  • 0