AndroidTemelKişiler

Kişiler sağlayıcısı (contacts2.db)

Android kişiler veri tabanı: hesap başına ham kişiler, birleştirilmiş kişiler, türlendirilmiş veri satırları ve 30 günlük silinen kişi günlüğü.

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çimContactsDatabaseHelper 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ümlerAOSP 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

AlanNe anlatır
raw_contactsHesap başına kişi başına bir satır; account_id accounts tablosuna başvurur; satır silinmek üzere işaretlendiyse deleted 1 olur.
contactsBirleştirilmiş kişi; raw_contacts.contact_id, contacts._id değerini gösterir.
data + mimetypesHer 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_contactsSilinen kişilerin günlüğü: contact_id ve contact_deleted_timestamp.
accountsHam kişilere sahip olan hesaplar.

05Zaman damgaları

AlanKodlamaNot
contacts.contact_last_updated_timestampUnix epoch, millisecondsKişinin en son güncellendiği zaman.
deleted_contacts.contact_deleted_timestampUnix epoch, millisecondsKiş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ışı

  1. contacts2.db dosyasını günlük/WAL dosyalarıyla edinin ve sağlayıcı paketini (AOSP veya üretici) not edin.
  2. Değerleri türleriyle listelemek için raw_contacts → contacts ve data → mimetypes birleştirmelerini yapın.
  3. Her ham kişiyi accounts üzerinden hesabına bağlayın.
  4. Son silmeler için deleted_contacts ve raw_contacts.deleted değerlerini inceleyin.
  5. 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

  1. AOSP — ContactsDatabaseHelper.java Android Open Source Project (GitHub mirror) · erişim 2026-10-14
  2. ContactsContract.RawContacts — API reference Android Developers · erişim 2026-10-14
  3. ContactsContract.DeletedContacts — API reference Android Developers · erişim 2026-10-14
  4. ContactsContract.ContactsColumns — API reference Android Developers · erişim 2026-10-14
  5. ALEAPP — scripts/artifacts/contacts.py Alexis Brignoni et al. (GitHub) · erişim 2026-10-14