Skip to content

madocter/whatsapp-viewer

 
 

Repository files navigation

WhatsApp Viewer

Small tool to display chats from the Android msgstore.db database.

Status

🟠⚠ Work with Whatsapp June 2025 ⚠🟠

Because of technical reason with the SQLite driver we need to remove one index using any SQLite client before:

sqlite3 msgstore.db "DROP INDEX IF EXISTS lid_display_name_upper_username_index;"

Will create branches for each whatsapp version that might need another database format.

How to use

  1. You need root access to your phone. If you don't know what it is: Wikipedia
  2. Download your WhatsApp database and key files:
  • /data/data/com.whatsapp/files/key
  • /data/data/com.whatsapp/databases/msgstore.db
  • /data/data/com.whatsapp/databases/wa.db
  1. Open WhatsApp Viewer
  2. File -> Open -> Select file
  3. Select msgstore.db in the folder "extracted"
  4. Leave account name empty, is was used for older versions of WhatsApp (crypt5)
  5. Optional: If you want, you can import contact names from the wa.db file

Command line support

"WhatsApp Viewer.exe" -decrypt14 msgstore-2016-10-22.1.db.crypt14 whatsapp.cryptkey14 decrypted.db

You cannot see bigger images because only thumbnails are stored in the database.

Build

Visual Studio

Open WhatsApp Viewer.sln.

Command-line

See build-release.cmd.

Vagrant

You can also use vagrant to build (for example if you are on a Linux machine):

vagrant up
vagrant powershell -c 'cmd.exe /c "cd C:\vagrant && build-release.cmd"'

Android Emulator

I use the Android Emulator to test WhatsApp (and the creation of backups) on my developer machine.

I'm on Manjaro and use this (see here):

sudo mkdir /opt/android-sdk/platforms
sudo mkdir /opt/android-sdk/platform-tools
yay -S android-sdk-cmdline-tools-latest android-emulator
yes | sudo sdkmanager "system-images;android-30;google_apis;x86"
avdmanager create avd --name "WhatsApp-Viewer" --package "system-images;android-30;google_apis;x86" --device "Nexus 6P"
emulator -avd "WhatsApp-Viewer"

adb install ./WhatsApp.apk

adb pull -a /sdcard/WhatsApp/Databases/msgstore.db.crypt14
adb root
adb pull -a /data/data/com.whatsapp
adb unroot

I've also did this to enable the hardware keyboard.

Export schema

sqlite3 msgstore.db ".schema --nosys" > ./data/msgstore.db.schema.sql

Build test database

rm -f ./data/test-database.db && sqlite3 ./data/test-database.db -cmd ".read data/msgstore.db.schema.sql" ".read data/test-database.sql"

Credits

About

Small tool to display chats from the Android msgstore.db database (crypt12)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 91.6%
  • C++ 8.4%