0 votos

recuperar contactos de un archivo apk

Tengo copias de seguridad hechas con OAndBackupX de mi teléfono Android y me gustaría recuperar mis contactos desde allí. Mirando, veo que tengo un directorio llamado com.Android.contacts que tiene en su interior un archivo Contacts.apk y un archivo data.tar.gz (que tiene shared_prefs/com.Android.contacts.xml, que no parece ser tan útil). ¿Es posible obtener mis contactos (nombre y número de teléfono) de esta lista apk? Si es así, ¿cómo?

El archivo Contacts.apk se abre en un montón de carpetas y archivos:

AndroidManifest.xml  classes.dex  META-INF/  resources.arsc
assets/              com/         res/       shared_prefs/

¿Cuál de ellos, si es que hay alguno, tendría los datos que estoy buscando?

2 votos

El archivo APK es sólo la aplicación, no encontrarás tus contactos en él. Los contactos no se almacenan con los contactos aplicación pero con los contactos proveedor - así que tienes que buscarlo en tu copia de seguridad. Btw podría ayudar si usted editar su pregunta e incluya lo que utilizó para hacer esta copia de seguridad (¿suena un poco como Titanium Backup?).

0voto

WD-TV Puntos 1

Después de trastear un poco, he podido conseguir suficiente información para reconstruir la información de mis contactos. Gracias a @Izzy por señalármelo.

Obtuve mi ContactsProvider.apk de mi copia de seguridad y también data.tar.gz y device_protected_files.tar.gz .

Luego descomprimí mi ContactsProvider.apk usando unzip ContactsProvide.apk y lo conseguí:

databases/  files/  shared_prefs/

Las bases de datos

calllog.db          contacts2.db  profile.db
calllog.db-journal  profile.db-journal

Quizás tendría sentido que contacts2.db tuviera esta información, así que busqué en este archivo sqlite3 (ya que es lo que encontré a continuación):

$ file contacts2.db 
contacts2.db: SQLite 3.x database, user version 1400, last written using SQLite version 3022000

$ sqlite3 contacts2.db 
SQLite version 3.36.0 2021-06-18 18:36:39
Enter ".help" for usage hints.
sqlite> .tables
_sync_state               phone_lookup              view_data_usage         
_sync_state_metadata      photo_files               view_entities           
accounts                  pre_authorized_uris       view_groups             
agg_exceptions            presence                  view_metadata_sync      
agg_presence              properties                view_metadata_sync_state
android_metadata          raw_contacts              view_raw_contacts       
contacts                  search_index              view_raw_entities       
data                      search_index_content      view_stream_items       
data_usage_stat           search_index_docsize      view_v1_contact_methods 
default_directory         search_index_segdir       view_v1_extensions      
deleted_contacts          search_index_segments     view_v1_group_membership
directories               search_index_stat         view_v1_groups          
groups                    settings                  view_v1_organizations   
metadata_sync             status_updates            view_v1_people          
metadata_sync_state       stream_item_photos        view_v1_phones          
mimetypes                 stream_items              view_v1_photos          
name_lookup               v1_settings               visible_contacts        
nickname_lookup           view_contacts           
packages                  view_data               

Siguiendo con lo anterior, hice lo siguiente:

$sqlite contacts2.db
sqlite> .separator , # to get the information in a CSV file with comma separation
sqlite> .output raw_contacts.csv #Where to save the file
sqlite> select * from raw_contacts; # Get it from raw_contacts in in the table above
sqlite> .exit

Entonces el archivo raw_contacts.csv tiene la información que quiero. Hay varias tablas que tienen esta información, y sólo creo que ésta está bien de las que he probado. Quizás haya otras que sean mejores.

0 votos

Creo que tu respuesta sería más fácil de entender por los usuarios que tienen el mismo problema si añadieras más detalles de dónde (ruta) y cómo encontraste esa base de datos SQLite.

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