User dictionary cache

User dictionary is a very handy feature in most mobile devices. This is used to allow your keyboard to remember frequently typed words. When we type a specific word into the keyboard, it automatically provides some suggestions. Android also has this feature and it stores frequently used words in a file named user_dict.db. So developers must be cautious when developing applications. If sensitive information typed into the Android app is allowed to be cached, this data can be accessed by anyone by exploring the user_dict.db file on your device or by using its content provider URI.

Since the user dictionary is accessible by any application using the user dictionary app's content provider, it's trivial for someone to read it and glean interesting information.

As we have done with other .db files, let's pull the user_dict.db database file from the device and open it with an SQLite Browser:

c:>adb pull /data/data/com.android.providers.userdictionary/databases/user_dict.db
477 KB/s (16384 bytes in 0.033s)

The preceding command pulls the database file from the device and stores it in the current directory:

User dictionary cache

The preceding screenshot shows the sensitive information stored by the application in the user_dict.db file.