Skip to content

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

License

Notifications You must be signed in to change notification settings

andreas-mausch/whatsapp-viewer

Repository files navigation

WhatsApp Viewer

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

Status

🛑⚠ WhatsApp Viewer does not work with the latest WhatsApp database format. ⚠🛑

I only maintain this project every once in a while.

WhatsApp gets a lot of updates with a bunch of new features.
I do have interests beside this project and unfortunately not enough time to keep up with the updates.

This project is not dead though (even if it looks like it), and I still take a plaintext database backup once in a while (about every year) and try to update this software accordingly.

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