AndroidOrtaMedya

Google Fotoğraflar uygulama veri tabanları (gphotos*.db)

Google Fotoğraflar yerel dizini: cihazdaki ve buluttaki medya satırları, çekim zamanları, saat farkları, koordinatlar, yedek klasörleri ve çöp kutusu.

01Konum

  • /data/data/com.google.android.apps.photos/databases/gphotos*.db
  • /data/data/com.google.android.apps.photos/databases/local_trash.db
  • /data/data/com.google.android.apps.photos/files/trash_files/
  • /data/data/com.google.android.apps.photos/databases/disk_cache*

02Yanıtladığı sorular

  • Uygulama hangi yerel medya dosyalarını, hangi yollar ve çekim zamanlarıyla dizinledi?
  • Hangi öğeler bulut kitaplığında veya paylaşılan albümlerde bulunuyor?
  • backup_folders tablosunda hangi cihaz klasörleri listeleniyor?
  • Hangi öğeler uygulamanın çöp kutusuna taşındı ve dosyalar hâlâ mevcut mu?

03Biçim ve sürümler

BiçimGoogle Fotoğraflar uygulamasının özel SQLite veri tabanları. ALEAPP gphotos*.db içinden local_media, remote_media, shared_media ve backup_folders tablolarını, çöpe atılan öğeler için local_trash.db dosyasını okur.
Geçerli olduğu sürümlerŞema Google tarafından yayımlanmaz ve uygulama sürümüne göre değişir; ALEAPP isteğe bağlı sütunları (ör. trash_timestamp, purge_timestamp, inferred_latitude) kullanmadan önce varlıklarını kontrol eder.

04Temel alanlar

AlanNe anlatır
local_mediafilename, filepath, folder_name, bucket_id, media_store_id, boyut, çözünürlük, latitude/longitude.
remote_mediaBulut öğeleri: remote_url, upload_status (saklandığı gibi), varsa inferred_latitude/longitude.
shared_mediaremote_url ve boyut bilgisiyle paylaşılan albümlerdeki öğeler.
backup_foldersALEAPP'in klasör adları ve yollarını bulmak için local_media ile birleştirdiği bucket kimlikleri.
local_trash.dbÖzgün local_path ile çöpe atılan öğeler; eşleşen dosyalar files/trash_files altındadır.

05Zaman damgaları

AlanKodlamaNot
utc_timestampUnix epoch, millisecondsALEAPP tarafından "Timestamp" olarak etiketlenir; tam olay anlamı Google tarafından belgelenmemiştir.
capture_timestampUnix epoch, millisecondsALEAPP tarafından "Captured Timestamp" olarak etiketlenir.
timezone_offsetMillisecondsALEAPP 3.600.000'e bölüp kesirli kısmı atar; +5:30 değeri 5 olarak görünür; ham değeri saklayın.
trash_timestamp / purge_timestampUnix epoch, millisecondsYalnız bazı şema sürümlerinde bulunur.

Ham değerleri Zaman damgası çözücü, yerel saatleri ise Yerel saatten UTC'ye ile çözün.

06İnceleme akışı

  1. Tüm gphotos*.db, local_trash.db ve trash_files içeriğini WAL dosyalarıyla koruyun.
  2. Değerleri çıkarmadan önce hangi isteğe bağlı sütunların bulunduğunu kaydedin.
  3. local_media.filepath değerini edinimdeki dosyalarla eşleştirin; MediaStore ve EXIF verileriyle karşılaştırın.
  4. Yerel, uzak ve paylaşılan satırları zaman çizelgesinde ayrı tutun.

07Yorum tuzakları

  • remote_media bulut kitaplığı dizinini yansıtır; dosyanın cihazda olduğunu kanıtlamaz.
  • upload_status ve çıkarımsal koordinatlar saklandığı gibi raporlanır; anlamları üretici tarafından belgelenmemiştir.
  • local_trash.db içindeki hiçbir kayıt, temizlenmiş bir dosyanın kurtarılabileceğini garanti etmez.

09Kaynaklar

  1. ALEAPP — scripts/artifacts/googlePhotos.py Alexis Brignoni et al. (GitHub) · erişim 2026-10-14
  2. SQLite — Write-Ahead Logging SQLite · erişim 2026-10-14