1 votos

Copiar contactos a la tarjeta SD desde Android 2.3

Cómo copiar mis contactos de mi Sony Ericsson WT19i Android 2.3 a la tarjeta SD? He intentado hacer esto por adb, pero no funciona. Lo hago de esta manera: adb devices

adb shell

su

mount -o rw,remount rootfs /

chmod 777 /mnt/sdcard

adb pull /data/data/com.android.providers.contacts/databases/contacts2.db /mnt/sdcard/tmp/contacts2.db

aparece un error:

adb: no encontrado

¿Qué debo hacer?

1 votos

¿No puedes exportarlos desde la aplicación de Contactos?

0voto

Gracias a @Firelord por ayudarme generosamente cuando me perdí. La descripción del problema y las notas sobre las soluciones se han hecho utilizando sus comentarios como referencia.

Problema:

Esto se debe a que después de haber emitido adb shell, estás en el shell del sistema de Android y ya no puedes usar adb pull, ya que el binario de ADB que invocaste existe en tu PC de desarrollo, no en el dispositivo conectado en sí. El dispositivo actúa como un servidor con la PC de desarrollo como cliente. El cliente emite los comandos y el servidor responde a ellos. El servidor en sí no puede emitir el comando.

ADB en el dispositivo en sí también puede actuar como cliente, con 2 advertencias:

  1. ADB de un dispositivo al mismo dispositivo necesita que ADB esté funcionando en modo inalámbrico y de bucle.
  2. El otro dispositivo, supuestamente el "servidor", debe estar inicialmente conectado a través de OTG al dispositivo cliente (luego dispositivo cliente y servidor) de ADB para que ADB pueda reiniciarse allí en modo inalámbrico.

TL;DR

Si estás ejecutando adb desde el directorio platform-tools de la instalación de Android SDK, intenta emitir ./adb pull en lugar de adb pull en caso de que estés en Linux, y, sospecho, similar con Windows. ADB probablemente no está en tu variable PATH. La terminal recuerda el historial de carpetas 1 nivel más abajo, y la carpeta local por defecto no está incluida en la variable PATH.

FUENTE: Esta pregunta en StackOverflow.

Resolución:

Lo que debes hacer después del comando chmod es introducir exit, seguido de adb pull.... El comando exit debería sacarte del shell del sistema de vuelta al terminal o prompt que estabas utilizando adb en tu PC, desde donde puedes usar adb pull de forma segura.

Resolución Alternativa:

También podrías usar cp en lugar de adb pull después de chmod para copiar el archivo de base de datos. Tienen el mismo patrón de uso, y cp definitivamente está disponible en la sesión del shell.

Notas:

  1. Tengo un problema molesto con la forma en que utilizas adb pull para copiar archivos de tu /data/data a tu tarjeta SD, lo cual podría hacerse fácilmente con un explorador con acceso root o cp en una sesión del shell.

  2. Asegúrate de haber emitido adb root antes de este conjunto completo de comandos bajo Resolución: para que el daemon de adb se ejecute como root y pueda acceder a /data y sus subdirectorios.

PD:

De acuerdo al comentario de @Firelord, adb root solo funcionará si has establecido la propiedad ro.secure en tu build.prop en 0 en lugar de 1, donde 1 es usualmente el valor predeterminado con la excepción de algunas ROMs personalizadas habilitadas para debug. En ese caso, elige la alternativa de cp.

  1. Personalmente he enfrentado este problema y he evitado mezclar sesiones de ADB y shell desde entonces.

0 votos

adb help no es una excepción. Puedes utilizar todos los comandos adb desde el dispositivo mismo. Funciona de esta manera: normalmente, el dispositivo Android actúa como un servidor y la PC con adb como el cliente. El cliente emite instrucciones usando comandos y el servidor responde a ellos. ADB en el dispositivo también puede actuar como un cliente pero con ciertos ajustes: 1) ADB debería estar funcionando en modo inalámbrico y de bucle si deseas ejecutar comandos adb en el mismo dispositivo desde el mismo dispositivo, 2) el otro dispositivo, supuestamente un servidor, debería estar conectado mediante OTG brevemente para que el demonio adb pueda reiniciarse allí en modo inalámbrico.

0 votos

El comando adb root funcionaría si ro.secure está configurado en 0, lo cual no suele ser el caso por defecto. Si la propiedad está configurada en 1, el usuario se encontraría con un error. Considera mencionar una solución alternativa para el problema si planeas incluir ese punto de adb root en la respuesta.

0 votos

@Firelord, revisa la edición y el resumen (TL;DR)

0voto

Rob1234Z Puntos 16
  1. adb devices
  2. adb shell
  3. su
  4. mount -o rw,remount rootfs /
  5. chmod 777 /mnt/sdcard
  6. exit
  7. adb pull /data/data/com.android.providers.contacts/databases/contacts2.db /mnt/sdcard/tmp/contacts2.db

Tengo un error: adb: permiso denegado

  1. su
  2. adb pull /data/data/com.android.providers.contacts/databases/contacts2.db /mnt/sdcard/tmp/contacts2.db

Tengo un error: adb: no encontrado

  1. adb root adb: permiso denegado

cp comando también no funciona

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