As you know on android call history in /data/data/com.android.providers.contacts/databases/calllog.db

path as sqlite file.

I change this file with adb push command then I will check on Dialer Call history application but it still same with old data.

If I am reboot emulator and reinstall Dialer application I can see new data.

How can I see new records without reboot emulator?

Is android have any cache db for calllog.db

  • On Linux just replacing a file does not mean it will be used on next write operation. If the process that uses the file you have replaced is still running and keeps the file open it can continue to use the file unless the process ends even if the file not accessible in file-system anymore. If you replace a file you have to kill the process that uses it (or somehow make the process close the file). When the process is restarted then new entries will be written to the new file.
    – Robert
    Jul 27, 2022 at 20:30
  • SQLite databases are cached in the framework (system_server and zygote processes). It won't read your changed file until it's not restarted as Robert said. Jul 28, 2022 at 5:18
  • Did you try force stopping the dialer app or by clearing its data (should likely force it to reload the db).
    – singhnsk
    Jul 28, 2022 at 10:16
  • When we make a sql query with the adb command, the changes are reflected. I mean when am I try to sqlite3 calllog.db 'update calls set number='123' where _id=1' Then I check on dialer application, changes are reflected. But when am I try to change calllog.db file I see old data on application.
    – F.Penb
    Jul 29, 2022 at 6:35


You must log in to answer this question.

Browse other questions tagged .