0 votes

récupération des contacts à partir d'un fichier apk

J'ai fait des sauvegardes avec OAndBackupX de mon téléphone Android et j'aimerais récupérer mes contacts à partir de ces sauvegardes. En regardant autour de moi, je vois que j'ai un répertoire appelé com.Android.contacts qui contient un fichier Contacts.apk et un fichier data.tar.gz (qui contient shared_prefs/com.Android.contacts.xml, qui ne semble pas être très utile) à l'intérieur. Est-il possible de récupérer mes contacts (nom et numéro de téléphone) à partir de cette liste d'apk ? Si oui, comment ?

Le fichier Contacts.apk s'ouvre sur un ensemble de dossiers et de fichiers :

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

Lesquels de ces sites, le cas échéant, contiendraient les données que je recherche ?

0voto

user3236841 Points 131

Après quelques recherches, j'ai pu obtenir suffisamment d'informations pour reconstituer les coordonnées de mes contacts. Merci à @Izzy de me l'avoir indiqué.

J'ai obtenu mon ContactsProvider.apk à partir de ma sauvegarde et aussi data.tar.gz y device_protected_files.tar.gz .

J'ai ensuite décompressé mon ContactsProvider.apk en utilisant unzip ContactsProvide.apk et a obtenu :

databases/  files/  shared_prefs/

Les bases de données

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

Il serait peut-être logique que contacts2.db contienne ces informations, j'ai donc examiné ce fichier sqlite3 (c'est ce que j'ai trouvé ci-dessous) :

$ 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               

Dans le prolongement de ce qui précède, j'ai procédé comme suit :

$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

Ensuite, le fichier raw_contacts.csv contient les informations que je souhaite obtenir. Il y a plusieurs tableaux qui contiennent ces informations, et je pense que celui-ci est le meilleur de tous ceux que j'ai essayés. Il y en a peut-être d'autres qui sont meilleurs.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X