0 votos

Pantalla del S3 rota, modo desarrollador activado, cómo transferir datos

La pantalla de mi Galaxy S3 se ha roto y necesito transferir una aplicación que está en mi teléfono a mi ordenador. Tengo activado el modo desarrollador en el teléfono y quiero poder transferir la app sin abrir la placa base. Pero no puedo desbloquear físicamente el teléfono debido a la pantalla rota, así que ¿cómo puedo hacer esto?

(Cuando digo que tengo activado el modo de desarrollador, quiero decir que puedo instalar en mi teléfono aplicaciones que he escrito en Eclipse y ejecutarlas. Si esto no es lo que significa, entonces mi error. Pero si lo es, ¿cómo puedo acceder a mis cosas con la pantalla bloqueada)

0 votos

Cuando dices transferir una aplicación, ¿te refieres sólo al apk o a los datos incluidos?

0 votos

@MinNaingOo sólo el APK

2voto

sameer Puntos 1707

Puedes sacar el apk del dispositivo Android usando adb pull.

  1. adb shell pm list packages

Esto listará el nombre del paquete para todos los apks. Vea el nombre del paquete de su aplicación. El nombre de la aplicación puede variar del nombre del paquete. La mayoría de las veces estará en /datos/app

Si no es así obtener el camino utilizando adb shell pm path com.the app you need to.transfer

2 a. adb pull /data/app/com.the app you need to.transfer.apk . Esto transferirá el apk desde cualquier unidad que haya ejecutado. Eg: D:

(o)

2.b. adb backup -apk com.the app you need to .transfer

Esto creará copia de seguridad.ab . Puedes convertirlo en un tar y extraerlo con winrar

dd if=backup.ab bs=24 skip=1 | openssl zlib -d > backup.tar

Si no hay soporte para zlib puedes intentar

dd if=data.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -

Nota: No configure una contraseña para cifrar la copia de seguridad

0 votos

Vaya, una buena línea para convertir una copia de seguridad de ADB en .tar merece un punto extra :) Supongo que me equivoco al suponer que puedo omitir la parte de zlib, y obtener un backup.tar.gz entonces - como si no hubieras utilizado eso aquí mismo? // Nota al margen: Probablemente no funcione con copias de seguridad ADB encriptadas (es decir, cuando se crean usando una contraseña), ¿verdad?

0 votos

@Izzy sí que no funcionará con una copia de seguridad encriptada

0 votos

Así lo creía (tal vez debería señalarlo en su respuesta, para NO poner una contraseña?). Probaré la opción "zlib vs. .gz a mí mismo en casa entonces :)

1voto

sker Puntos 2670

He conseguido hacer una copia de seguridad adb de mi teléfono basándome en la respuesta de @sameer. Sin embargo, como se señala en los comentarios allí, es necesario confirmar la copia de seguridad utilizando la pantalla después de ejecutar el adb backup comando.

Así que, en primer lugar, hay que tener adb instalado. Asegúrese de que su dispositivo aparece y está autorizado:

# adb devices                                                                                                                                    
List of devices attached                                                                                                                                                
EP732284Z8      device 

A continuación, ejecute adb shell input para asegurarnos de que los comandos que vamos a utilizar están ahí. Deberías ver algo así:

# adb shell input
Usage: input [<source>] <command> [<arg>...]                                                                                                                 

The sources are:                                                                                                                                             
      mouse                                                                                                                                                  
      keyboard                                                                                                                                               
      joystick                                                                                                                                               
      touchnavigation                                                                                                                                        
      touchpad                                                                                                                                               
      trackball                                                                                                                                              
      stylus                                                                                                                                                 
      dpad                                                                                                                                                   
      touchscreen                                                                                                                                            
      gamepad                                                                                                                                                

The commands and default sources are:                                                                                                                        
      text <string> (Default: touchscreen)                                                                                                                   
      keyevent [--longpress] <key code number or name> ... (Default: keyboard)                                                                               
      tap <x> <y> (Default: touchscreen)                                                                                                                     
      swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)                                                                                        
      press (Default: trackball)                                                                                                                             
      roll <dx> <dy> (Default: trackball)  

A continuación, instalaremos TouchControl para poder ver lo que ocurre en la pantalla. Esto no funcionará si tu dispositivo no está ya en modo de depuración USB y no está autorizado (es decir, si ves "no autorizado" o "desconectado" después de ejecutar el primer comando). He instalado la versión para Linux. Tuve que instalar boost para que funcionara. Debería funcionar también en Windows.

Necesitamos desbloquear el dispositivo. Para ello, usaremos "adb shell input swipe [x1] [y1] [x2] [y2] [duration]" con (x1, y1, x2, y2) dependiendo de tu dispositivo y la duración podría ser 250 (en ms). Como referencia, puedes mirar los números en este archivo (busque "shell input swipe"). En mi caso la resolución de mi dispositivo es "1920x1080" así que miré la parte que decía " if (i.toStdString() == "1080x1920") { . Ese código hace un barrido de izquierda a derecha. Yo necesito desbloquear mi dispositivo deslizando de abajo hacia arriba, así que usé (300, 1100, 300, 950) con una duración de 300, es decir, "adb shell input swipe 300 1100 300 950 300". Tendrás que experimentar con los valores y ver qué cambia en la pantalla "virtual" para conseguirlo. En mi caso (0, 0) era la parte superior izquierda y (300, 1100) estaba hacia la parte inferior central.

Si tiene una contraseña o un PIN, puede introducirlo con adb shell input text "<yourpasswordhere>" . Si tienes un patrón, entonces tendrás que averiguar las coordenadas de cada punto y hacer tu patrón usando adb shell swipe comandos. (Buena suerte con eso, llevará algún tiempo). Si no, podrías probar con algunas aplicaciones para evitar el bloqueo de pantalla e instalarlas a través de adb install . Yo no tenía nada de eso, así que no estoy seguro de lo que te funcionará.

Ahora ejecute el adb backup comando:

# adb backup -apk -shared -obb -all -system -f ./android-backup.ab
Now unlock your device and confirm the backup operation.

A continuación, tendrás una pantalla como ésta (haz clic en la imagen para verla a tamaño completo):

backup screen

Así que ahora, presionaremos "TAB" dos veces para llegar al botón "BACKUP MY DATA", luego presionaremos "ENTER" para confirmar. Básicamente, basándonos en los números en esa respuesta :

adb shell input keyevent 61
adb shell input keyevent 61
adb shell input keyevent 66

Ahora su copia de seguridad ha comenzado. ¡Yey!

P.D. Para ver el progreso de la actualización, puedes ver el crecimiento del tamaño del archivo. En linux, puedes ejecutar un comando como este: watch -n 5 "du -h ./*.ab" o watch -n 5 "du --time -m ./*.ab"

P.P.S. Puede utilizar un comando como adb shell input swipe 300 0 300 950 300 para abrir el cajón de notificaciones y abd shell input tap [x1] [y1] para presionar sobre las notificaciones y luego adb shell text [sometext] para escribir. Y puedes usar adb shell input keyevent [61|66] para presionar prácticamente cualquier cosa sin conocer sus coordenadas.

P.P.P.S. Estoy en un Xpreria ZR corriendo "10.7.A.0.222" Android versión 5.1.1. Sus comandos exactos pueden variar dependiendo de la resolución de su pantalla y de la versión de Android (por ejemplo, una forma diferente de desbloquear, un número diferente de veces para pulsar TAB, etc.).

Espero que esto ayude.

0 votos

Muchas gracias por esta detallada respuesta (+1). No he conseguido instalar TouchControl (no compiló desde las fuentes, obviamente debido a las dependencias, y el binario no funcionó - de nuevo debido a las dependencias). La lectura de tu respuesta me recuerda una adición reciente a mi Adebar que ahora puede hacer lo mismo (confirmar remotamente las llamadas de copia de seguridad/restauración de ADB, pero de forma automática sin que el usuario tenga que introducir manualmente los keyyevents) - y tiene menos dependencias ;)

1 votos

Jaja eso es el guión He escrito para facilitar todo este proceso (lo he limpiado un poco antes de ponerlo en línea, pero sigue siendo un lío). Adebar suena bien. Lo probaré.

0 votos

He hecho Adebar una respuesta separada, si desea comprobarlo. Se agradece la respuesta si lo pruebas :)

1voto

Izzy Puntos 45544

Con usb-debugging activado (que usted describe como "modo de desarrollador"), puede utilizar, por ejemplo Adebar para crear una copia de seguridad de ADB. Recientemente, se ha añadido la aprobación automática de las copias de seguridad, así como el desbloqueo automático (experimental, y sólo funciona con "deslizar para desbloquear" - no con el bloqueo por PIN/contraseña/patrón). En su configuración, establezca AUTO_CONFIRM=1 (para confirmar automáticamente las copias de seguridad en el dispositivo), y opcionalmente AUTO_UNLOCK=1 (podría o no funcionar, aún no se ha probado ampliamente). Ajusta los demás parámetros a tu gusto, y luego ejecútalo.

Después, encontrarás dos scripts de copia de seguridad en el directorio de salida: uno para las "aplicaciones de usuario" y otro para las "aplicaciones de sistema". Opcionalmente, compruébalos antes (y comenta lo que no quieras respaldar), y luego ejecútalos. Los archivos de copia de seguridad separados ( .ab ), uno por aplicación; para las aplicaciones de usuario incluyen el .apk y datos, sólo para los datos de las aplicaciones del sistema.

Tenga en cuenta que adb backup no funciona para todas las aplicaciones: las aplicaciones pueden optar por no hacerlo, estableciendo ALLOW_BACKUP=FALSE en su manifiesto. En los dispositivos rooteados con Xposed, un módulo llamado Copia de seguridad de todas las aplicaciones se puede utilizar para evitarlo. Pero en su caso, esto podría ser difícil de instalar (con una pantalla rota).

Revelación: Soy el desarrollador de Adebar.

0voto

Min Naing Oo Puntos 524

Si puedes depurar tu aplicación escrita en eclipse en tu teléfono, supongo que ya has habilitado la depuración USB.

Moborobo PC Suite puede transferir archivos desde su teléfono, incluyendo aplicaciones con datos, y necesita que la depuración USB esté activada. En el gestor de aplicaciones, haz clic con el botón derecho del ratón en la aplicación y aparecerá la opción Exportar. Allí puedes guardar tu aplicación en tu PC.

Moborobo PC Suite - App Manager

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X