miércoles, 8 de junio de 2011

LG Optimus 2X - Root (versión 2.2)

(Actualizado 14/12/2011)

Tras llevar un tiempo prudencial (un par de meses) con esta maravilla de teléfono, he esperado para "rootearlo" todo lo que he podido. En este tiempo he podido observar en detalle las "joyas" (nótense las comillas) que meten tanto compañías telefónicas como las propias marcas.


Una gran ventaja del LG Optimus 2X es que su bootloader está desbloqueado, haciendo muy fácil el proceso de root, y por supuesto reduciendo riesgos de quedarnos con un pisapapeles. Aun así, siempre es importante que tengáis cuidado.


Antes que nada, y como se suele decir en estos casos, tened presente dos cosas:

  1. No me responsabilizo del daño que podáis hacerle a vuestro terminal. En cualquier caso, si algo raro os pasase en el proceso, podéis comentármelo, por si puedo ser de ayuda.
  2. Recordad que es importante guardar toda la información local al teléfono y que pueda ser importante (registros de llamadas, SMSs, notas, etc.)



"Rooteando"...
Personalmente soy de la opinión de que si voy a hacer algo, me gusta saber qué estoy haciendo, así que en lugar de utilizar métodos más sencillos como SuperOneClick para rootear, vamos a hacerlo desde el terminal, por el método que utiliza la gente de CyanogenMod:

ADVERTENCIA: el método de este artículo sólo es válido para la versión 2.2 oficial de LG.
ACTUALIZADO: Si tenéis la versión 2.3 podéis hacerlo de esta otra forma.

1. Descargad estos tres archivos:

2. Descomprimid los archivos en la ruta donde tengáis el SDK, dentro de la carpeta tools (donde tengáis el archivo adb.exe, que es el que nos interesa).


3. Instalad el driver del teléfono si no lo habéis hecho ya. Podéis descargarlo de este enlace.

4. Conectad el teléfono al PC


5. Abrid un terminal  en vuestro ordenador (Por ejemplo desde: Inicio > Ejecutar > cmd) y moveros hasta la ruta donde tengáis instalado vuestro SDK. Desde ahí hay que ejecutar los siguientes comandos
  1. adb push busybox /data/local/
  2. adb push psneuter /data/local/
  3. adb push su /data/local/
  4. adb shell chmod 777 /data/local/busybox
  5. adb shell chmod 777 /data/local/psneuter
  6. adb shell
  7. /data/local/psneuter
  8. adb shell
  9. mount -o remount,rw -t ext3 /dev/block/mmcblk0p25 /system
  10. mkdir /system/xbin
  11. /data/local/busybox cp /data/local/su /system/xbin/su
  12. chown 0:0 /system/xbin/su
  13. chmod 6755 /system/xbin/su
  14. ln -s /system/xbin/su /system/bin/su
  15. exit
  16. adb push Superuser.apk /system/app/Superuser.apk

6. Reiniciad el teléfono y tendréis privilegios de usuario root.

Siguiente paso... cómo instalar un "Recovery" para facilitarnos la vida a la hora de hacer por ejemplo un backup de todo el sistema y poder además instalar otras ROMs.


Referencias:
CyanogenMod Wiki

30 comentarios:

  1. Abel, creo que perdiste una linea, la ultima:
    adb push Superuser.apk /system/app/Superuser.apk

    Enhorabuena por el blog!
    Aquí tienes un seguidor :)

    ResponderEliminar
  2. Gracias!

    Tienes razón, y muy recomendable además. Post actualizado.

    Superuser.apk es la que permite gestionar después a quién le das permisos de super usuario, revocarlos, etc.

    ResponderEliminar
  3. Ante todo enhorabuena por el blog, una pregunta, cuando haces el hard reset,¿que es lo que se borra? ¿se borran todas las aplicaciones del terminal o solo las que yo haya instalado?

    ResponderEliminar
  4. Hola dejota,

    Gracias a ti por leerlo :)

    Cuando haces el hard reset se borra todo, es decir, queda con las aplicaciones que trae de fábrica, que básicamente son las de Android más las que la marca (en este caso LG) y la Operadora (En mi caso Vodafone) hayan metido en el teléfono.

    Todas las que hayas instalado desde ese momento se borran, así como las configuraciones, iconos y widgets del escritorio, etc.

    ¡Un saludo!

    ResponderEliminar
  5. Hola Ángelo,

    Un SDK (Source Development Kit o Kit de Desarrollo de Software) es un conjunto de herramientas que permiten
    desarrollar aplicaciones para un sistema concreto.

    En este caso es el de Android, y tenemos que tenerlo instalado, que aunque no vayamos a desarrollar nada, necesitamos sus herramientas. Puedes descargarlo de aquí:
    http://developer.android.com/sdk/index.html

    ¡Un saludo!

    ResponderEliminar
  6. Muchisimas gracias, voy a probarlo gracias de nuevo

    ResponderEliminar
  7. Muy buenas! y muy buenas tus explicaciones ademas. Solo una duda, como volver a ser unroot, porque si esta root no hay garantía ¿no? Aclárame please!Gracias de antemano!

    ResponderEliminar
  8. Hola MovilMovidas!

    Pues lo más fácil para hacer el unroot es utilizar SuperOneClick (puedes encontrarlo aquí: http://forum.xda-developers.com/showthread.php?t=803682)

    Básicamente, teniendo el driver de LG activado, es arrancar SuperOneClick y darle a la opción Unroot. Reinicias el teléfono y listo.

    Y sí, al hacerse root invalidas la garantía, por lo que si vas a devolverlo por lo que sea, es aconsejable no tenerlo rooteado, por lo que puedan decirte :)

    Un saludo!
    Abel.

    ResponderEliminar
  9. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  10. No consigo ejecutar los procesos... me descargo eso al pc, pongo en el MS-DOS de ruta C:\Program Files\Android\android-sdk\tools y copio el primer proceso y me pone adb no se reconoce como comando.. :S

    ResponderEliminar
  11. Hola Tomás,

    A ver, según lo que comentas, has hecho ya desde el cmd:
    1. Te mueves a la ruta donde tienes el SDK como dices, utilizando el comando "cd .." para ir al directorio anterior y "cd carpeta" para entrar en ella.
    2. Una vez que estás en la ruta que comentas, escribes adb y te da error?

    Utiliza "dir", y dime si está el adb.exe en la lista de archivos de ese directorio.

    Y si es así, ejecuta "adb devices", a ver qué aparece.

    Un saludo,
    Abel.

    ResponderEliminar
  12. Te cuento..
    Entro al CMC y hago lo siguiente.
    1. Escribo cd C:\Program Files\Android\android-sdk\tools

    2. intento hacer los comandos

    Como no me salia probé a hacerlo en la ruta C:\Program Files\Android\android-sdk y tampoco asi que hice lo que me pediste del dir y esto es lo que aparece.

    https://lh5.googleusercontent.com/-fFb4YCje810/Th7VSDyeNbI/AAAAAAAAAOo/t6w6KhWZGUk/s512/cmd.png

    ResponderEliminar
  13. Hola Tomás,

    Ok, ya veo. Hay un archivo que se llama adb_has_moved.txt.

    Si lo abres, verás que indica que en la versión del SDK que tienes, el adb está en otro carpeta, y en tu caso estará en platform-tools.

    Copia los archivos en esa ruta (donde esté el adb.exe) en lugar de en Tools, y podrás hacerlo.

    Un saludo,
    Abel.

    ResponderEliminar
  14. Ya esta! Muchas gracias! Al final el problema era porque no se me habia instalado el adb.exe, me ha costado mas instalar eso que el resto de cosas. Muchas gracias y felicidades por el blog!

    ResponderEliminar
  15. Hola Buenas!!
    A mi me sucede lo mismo que a tomás, que no se reconoce como un comando interno o externo...
    lo que pasa es que la carpeta donde esta el archivo adb.exe la tengo en el escritorio con este nombre: android-sdk_r15-windows
    Estoy haciendo algo mal... (>_<) y otra duda que tengo es ¿que tengo que hacer con los archivos busybox.zip, psneuter.zip y su.zip? descomprimirlos y copiar su contenido en la carpeta donde este adb.exe?????
    ¡¡Ayuda por favor!!

    ¡¡GRACIAS!!

    ResponderEliminar
  16. Todo esto lo estoy haciendo para Eliminar las aplicaciones de serie en el LG Optimus 2X, pero me pedía hacer dos pasos mas antes de eso: hacer un backup y de hay directamente a Rootear el teléfono, ¿el fin de esto es instalar la Rom esa? o como es esto... estoy mas liaooo...

    ¡¡GRACIAS!!

    ResponderEliminar
  17. Hola,

    Perdonad, que llevo un tiempo a tope y no me da tiempo a contestar! :)

    He visto que no contesté el de daniel: Puedes hacer dos cosas para poder aplicar esa actualización oficial es:
    - Reflashearlo de fábrica y esperar que te salte ahí: http://abelpaz.blogspot.com/2011/07/resucitar-un-lg-optimus-2x.html
    - O bien (lo que yo haría), flashear desde el recovery la actualización oficial, que ya me ha parecido verla por los foros.

    En cuanto a Titus, primero tienes que estar en la ruta donde está el adb para poder utilizarlo, sino te dirá que no encuentra el comando. Por ejemplo, si tienes el adb del SDK en C:\Android\platform-tools, basta con poner "cd C:\Android\platform-tools" y al poner adb ya te reconocerá el comando porque lo encuentra en la carpeta en la que estás.

    Y por otro lado, sí, los archivos busybox, psneuter y su tienes que descomprimirlos en donde esté el adb, es lo más sencillo.

    Un saludo,
    Abel.

    ResponderEliminar
  18. Muchas gracias por las molestias Abel.
    Lo intentare hacer esta noche, pero de todas formas creo que la carpeta que me descargue a la vez del software SDK,que es donde esta el sdb, la tengo ubicada en el escritorio y el software instalado en archivos de programa, igual por eso no me cuadra algo... por no decir que soy un novato en estos menesteres de rooms!!

    Muchas gracias de todas formas.

    Un Saludo!!

    ResponderEliminar
  19. No puedo descargar ninguno de los 3 archivos...puedes comprobar los enlaces??

    muchas gracias y un saludo!!!

    ResponderEliminar
  20. Hola Pedro!

    Corregido :)

    Este método tal cual sólo sirve para la versión 2.2 de Vodafone, antes de actualizarla a la 2.3 oficial. Tengo que revisarlo para ver cómo hacerlo para la 2.3 Oficial en cuanto al pruebe.

    Un saludo,
    Abel.

    ResponderEliminar
  21. /data/local/psneuter
    Failed to set prot mask (Inappropriate ioctl for device)

    ese error me da a mi al entrar en el directorio ese.
    y ya no puedo hacer el mount...
    qué puede ser y cómo lo soluciono? probablemente sea porque mi teléfono es 2.3.4....
    saludos

    ResponderEliminar
  22. Hola Superfilo,

    En efecto el método no es válido para la versión 2.3.4 a la que han actualizado recientemente.

    Intentaré actualizar el método en breve para que sirva también para los teléfonos actualizados.

    Un saludo,
    Abel

    ResponderEliminar
  23. Hola, tengo un problema con el comando 6 y 7, lo que ocurre es lo siguiente:
    c:\android-sdk-windows\platform-tools>adb shell
    # /data/local/psneuter
    /data/local/psneuter
    mmap() failed. Operation not permitted

    Alguien tiene idea si esto es un error crítico? y como solucionarlo? Gracias y Un saludo

    ResponderEliminar
  24. Hola Xavi,

    Qué versión de Android tienes?
    Parece que tienes la versión 2.3 y este método sólo vale para la 2.2.

    Tengo pendiente terminar el artículo de cómo rootear la versión 2.3.

    Un saludo,
    Abel.

    ResponderEliminar
  25. HOLA ABEL TENGO UN PROBLEMA AL CONECTAR A LA PC NO ME RECONOCE LA PC Y EN EL CELULAR NO ME SALE NADA DE ALMACENAMIENTO MASIVO SOLO ME CARGA CUANDO LO CONECTO... YA LE HE PUESTO VISTO EN ALMACENAMIENTO MASIVO EN CONFIGURACIONES YA HE DESCARGADO LOS DRIVERS... INCLUSO LE HICE UN HARD RESET ...PERO EL PROBLEMA PERSISTE..SUPONGO QUE ES PROBLEMA DE SOFTWARE QUE PUEDO HACER...ME PODRIAS AYUDAR CON LA REINSTALACION DE ESTE..
    TE AGRADECERIA. MI MAIL PARA CHAT lui-e-du@hotmail.com

    ResponderEliminar
    Respuestas
    1. Hola,

      Has probado en otro equipo? Recuerda que debes instalar el driver de LG para que te reconozca sin problemas el dispositivo.

      Un saludo,
      Abel.

      Eliminar
  26. Hola Abel, la verdad, es un gusto leer tu tutorial... te cuento que, al igual que comentaron arriba, tambien se me produce el siguiente error

    $ /data/local/psneuter
    /data/local/psneuter
    Failed to set prot mask (inappropriate ioctl for device)

    Del mismo modo tengo Android Ginger pero en la version 2.3.6 (te cuento que no lo estoy usando para un LG, sino para un Motorola Milestone 2). pero si logras sobrepasar esa falla, me gustaria que lo publiques.
    Muchas gracias. Saludos!

    ResponderEliminar
    Respuestas
    1. Hola LeoD,

      Como comento este método es válido sólo para el Optimus 2X, y de hecho puede ser hasta "peligroso" intentar utilizarlo en otros dispositivos.

      Para otros terminales, seguramente tengas que hacer algún paso más/menos.
      Hay varios tutoriales al respecto:
      http://www.grupoandroid.com/topic/34161-root-milestone-2-para-gingerbread-tres-metodos/

      Un saludo!
      Abel.

      Eliminar
    2. Gracias por responder!... Te cuento que las rom oficiales de Ginger, parece que estan bien fixeadas y, por ahora, es imposible el rooteo. Con los chicos de grupoandroid estamos esperando que alguien encuentre la forma. Asi que, a esperar.

      Gracias Nuevamente!

      Saludos!

      Eliminar