01Konum
- /data/data/com.android.providers.contacts/databases/contacts2.db
- /data/data/com.samsung.android.providers.contacts/databases/contacts2.db (Samsung)
02Yanıtladığı sorular
- Cihazda hangi adlar, numaralar ve e-posta adresleri saklanıyordu?
- Her ham kişi hangi hesaptan (yerel veya eşitlenmiş) geldi?
- Bir kişi en son ne zaman güncellendi ve son zamanlarda hangi kişiler silindi?
03Biçim ve sürümler
| Biçim | ContactsDatabaseHelper tarafından oluşturulan SQLite veri tabanı (DATABASE_NAME "contacts2.db"). Temel tablolar: raw_contacts, contacts, data, mimetypes, accounts ve deleted_contacts; sağlayıcı view_data gibi görünümler de tanımlar. |
|---|---|
| Geçerli olduğu sürümler | AOSP ContactsProvider; CONTACT_LAST_UPDATED_TIMESTAMP API düzeyi 18'de eklendi. calllog.db'den önceki sürümlerde calls tablosu da burada tutuluyordu. |
04Temel alanlar
| Alan | Ne anlatır |
|---|---|
| raw_contacts | Hesap başına kişi başına bir satır; account_id accounts tablosuna başvurur; satır silinmek üzere işaretlendiyse deleted 1 olur. |
| contacts | Birleştirilmiş kişi; raw_contacts.contact_id, contacts._id değerini gösterir. |
| data + mimetypes | Her ham kişi için türlendirilmiş değerler (data1 …); mimetype türü belirtir, ör. vnd.android.cursor.item/phone_v2 veya email_v2. |
| deleted_contacts | Silinen kişilerin günlüğü: contact_id ve contact_deleted_timestamp. |
| accounts | Ham kişilere sahip olan hesaplar. |
05Zaman damgaları
| Alan | Kodlama | Not |
|---|---|---|
| contacts.contact_last_updated_timestamp | Unix epoch, milliseconds | Kişinin en son güncellendiği zaman. |
| deleted_contacts.contact_deleted_timestamp | Unix epoch, milliseconds | Kişinin silindiği zaman; DAYS_KEPT_MILLISECONDS (2.592.000.000 ms = 30 gün) değerinden eski kayıtlar kaldırılabilir. |
Ham değerleri Zaman damgası çözücü, yerel saatleri ise Yerel saatten UTC'ye ile çözün.
06İnceleme akışı
- contacts2.db dosyasını günlük/WAL dosyalarıyla edinin ve sağlayıcı paketini (AOSP veya üretici) not edin.
- Değerleri türleriyle listelemek için raw_contacts → contacts ve data → mimetypes birleştirmelerini yapın.
- Her ham kişiyi accounts üzerinden hesabına bağlayın.
- Son silmeler için deleted_contacts ve raw_contacts.deleted değerlerini inceleyin.
- Sonucu arama, SMS ve uygulama kayıtlarındaki numaraları etiketlemek için kullanın.
07Yorum tuzakları
- Kayıtlı bir kişi herhangi bir iletişim gerçekleştiğini göstermez.
- Eşitlenmiş bir hesap üzerinden gelen kişiler bu cihazda oluşturulmuş olmayabilir.
- Silinen kişiler günlüğü budanır; bir kaydın olmaması hiçbir şeyin silinmediğini kanıtlamaz.
09Kaynaklar
- AOSP — ContactsDatabaseHelper.java Android Open Source Project (GitHub mirror) · erişim 2026-10-14
- ContactsContract.RawContacts — API reference Android Developers · erişim 2026-10-14
- ContactsContract.DeletedContacts — API reference Android Developers · erişim 2026-10-14
- ContactsContract.ContactsColumns — API reference Android Developers · erişim 2026-10-14
- ALEAPP — scripts/artifacts/contacts.py Alexis Brignoni et al. (GitHub) · erişim 2026-10-14