01Konum
- /data/data/com.android.providers.contacts/databases/calllog.db
- /data/user_de/<userId>/com.android.providers.contacts/databases/calllog_shadow.db (shadow instance in device-encrypted storage)
- /data/data/com.samsung.android.providers.contacts/databases/calllog.db (Samsung)
- Legacy: calls table inside …/com.android.providers.contacts/databases/contacts2.db
02Yanıtladığı sorular
- Hangi numaralar arandı veya cihazı aradı, ne zaman?
- Arama cevaplandı mı, cevapsız mı kaldı, reddedildi mi, engellendi mi veya sesli mesaja mı gitti; ne kadar sürdü?
- Aramayı hangi SIM veya arama hesabı işledi?
- Arama görüntülü, Wi-Fi, VoLTE veya RTT olarak işaretlenmiş mi?
03Biçim ve sürümler
| Biçim | CallLogDatabaseHelper tarafından oluşturulan SQLite veri tabanı (DATABASE_NAME "calllog.db"); calls tablosunda her arama için bir satır bulunur ve sütunlar CallLog.Calls ile tanımlanır. İkinci bir "gölge" örnek (calllog_shadow.db) cihaz korumalı depolama bağlamında açılır. |
|---|---|
| Geçerli olduğu sürümler | AOSP ContactsProvider. calls ve voicemail_status tabloları eskiden contacts2.db içindeydi; güncel kod yeni veri tabanı oluşturulurken bunları calllog.db'ye taşır. 5–6 arama türleri API 24'te, 7 ise API 25'te eklendi. |
04Temel alanlar
| Alan | Ne anlatır |
|---|---|
| number | Kullanıcının girdiği şekliyle telefon numarası. |
| type | 1 gelen, 2 giden, 3 cevapsız, 4 sesli mesaj, 5 reddedilen, 6 engellenen, 7 başka cihazda cevaplanan. |
| duration | Aramanın saniye cinsinden süresi. |
| phone_account_component_name / phone_account_id | Aramayı yapmak veya almak için kullanılan hesabın bileşeni ve tanımlayıcısı. |
| geocoded_location / countryiso | Numara için coğrafi kodlanmış konum ve aramanın yapıldığı veya alındığı ülkenin ISO kodu. |
| new / is_read | Aramanın onaylanıp onaylanmadığı ve kaydın okunup okunmadığı veya başka şekilde tüketilip tüketilmediği. |
| features | Bit maskesi; ör. görüntülü, Wi-Fi, VoLTE, VoNR, RTT, HD, harici olarak devralınmış. |
| last_modified | Satırın en son eklendiği, güncellendiği veya silindi olarak işaretlendiği zaman. |
05Zaman damgaları
| Alan | Kodlama | Not |
|---|---|---|
| date | Unix epoch, milliseconds | Aramanın gerçekleştiği tarih. |
| last_modified | Unix epoch, milliseconds | Satır bakım zamanıdır, arama zamanı değildir; satır güncellendiğinde veya silindi olarak işaretlendiğinde değişebilir. |
Ham değerleri Zaman damgası çözücü, yerel saatleri ise Yerel saatten UTC'ye ile çözün.
06İnceleme akışı
- calllog.db dosyasını -wal/-journal dosyalarıyla, varsa calllog_shadow.db ile ve eski imajlarda contacts2.db ile birlikte toplayın.
- type, features ve presentation değerlerini CallLog.Calls sabitlerine göre çözün; her etiketin yanında ham değeri saklayın.
- date değerini UTC'ye çevirin, bitiş zamanını date + duration olarak hesaplayın ve hesaplanmış değer olarak işaretleyin.
- Ana ve gölge veri tabanlarını ve farklı satırların last_modified değerlerini karşılaştırın.
- Numaraları kişiler, SMS ve uygulama düzeyindeki arama kayıtlarıyla ilişkilendirin.
07Yorum tuzakları
- geocoded_location numarayı tanımlar, cihazın konumunu değil.
- ALEAPP, AOSP tür kodlarını Samsung sağlayıcısına da uygular; Samsung'un başka değerler saklayıp saklamadığı belirlenmemiştir.
- Değişiklikler -wal dosyasında bekliyor olabilir; secure_delete veya VACUUM tarafından kaldırılmadıkça silinen satırlar boş sayfalarda kalabilir.
09Kaynaklar
- CallLog.Calls — API reference Android Developers · erişim 2026-10-14
- AOSP — CallLogDatabaseHelper.java Android Open Source Project (GitHub mirror) · erişim 2026-10-14
- ALEAPP — scripts/artifacts/calllog.py Alexis Brignoni et al. (GitHub) · erişim 2026-10-14
- Support Direct Boot mode Android Developers · erişim 2026-10-14
- SQLite — Write-Ahead Logging SQLite · erişim 2026-10-14
- SQLite — PRAGMA statements (secure_delete) SQLite · erişim 2026-10-14