Jedes Foto, das du mit dem Smartphone aufnimmst, enthält unsichtbare Daten, direkt im Bild eingebettet. GPS-Koordinaten auf wenige Meter genau, Gerätemodell, Betriebssystemversion, Datum und Uhrzeit der Aufnahme. Im Fachjargon: EXIF-Metadaten.
Wer ein Foto weitergibt, ohne diese Daten zu entfernen, gibt Aufenthaltsort, Gerät und Aufnahmezeitpunkt mit. Das gilt für Messenger, E-Mail, Nostr, eigene Server. Plattformen mit automatischer EXIF-Bereinigung sind die Ausnahme, nicht die Regel.
Dieses Skript bereinigt Bilder im Downloads-Ordner auf dem Gerät, bevor sie irgendwo hingeschickt werden.
1. Was steckt in EXIF-Daten
Typische Felder in EXIF-Metadaten eines Kamera-Fotos:
- GPS-Koordinaten (Breitengrad, Längengrad, manchmal Höhe)
- Gerätehersteller und Modell (z.B. Google Pixel 9 Pro)
- Betriebssystemversion
- Datum und Uhrzeit der Aufnahme
- Kameraeinstellungen (Blende, Belichtungszeit, ISO)
Screenshots auf Android enthalten in der Regel keine GPS-Koordinaten. KI-generierte Bilder aus ComfyUI oder Stable Diffusion haben gar keine EXIF-Daten. Das Risiko liegt bei direkt mit der Kamera-App aufgenommenen Fotos.
2. Vorbereitung: Python und Termux einrichten
Falls noch nicht geschehen, richte zuerst den Zugriff auf den Gerätespeicher ein:
termux-setup-storage
Bestätige den Dialog ("Zulassen"). Dann Python und die Bibliothek Pillow installieren:
pkg update && pkg upgrade
pkg install python
pip install pillow
Skript-Ordner anlegen:
mkdir -p ~/Skripte
3. Das Skript: exif-cleaner.py
Das Skript liest Bilder aus dem Downloads-Ordner, erstellt pixelgenaue Kopien ohne eingebettete Metadaten und speichert sie im Unterordner bereinigt/. Die Originaldateien bleiben unverändert.
Datei erstellen:
nano ~/Skripte/exif-cleaner.py
Inhalt einfügen:
#!/usr/bin/env python3
"""
exif-cleaner.py - Entfernt alle Metadaten (EXIF) aus Bildern (Termux-Version)
Bereinigte Bilder werden in einem 'bereinigt/' Unterordner gespeichert.
"""
import os
import sys
from pathlib import Path
from PIL import Image
SUPPORTED = {'.jpg', '.jpeg', '.png', '.webp', '.bmp', '.tiff', '.tif'}
def clean_image(src_path, dst_path):
with Image.open(src_path) as img:
data = img.tobytes()
clean = Image.frombytes(img.mode, img.size, data)
clean.save(dst_path)
def main():
print("Alien EXIF-Cleaner (Termux)")
print("-" * 40)
base = Path.home() / "storage" / "downloads"
ordner = input(f"Unterordner in {base}/ (leer = ganzer Downloads-Ordner): ").strip()
src_dir = base / ordner if ordner else base
if not src_dir.exists() or not src_dir.is_dir():
print(f"Ordner nicht gefunden: {src_dir}")
sys.exit(1)
bilder = [f for f in src_dir.iterdir() if f.suffix.lower() in SUPPORTED]
if not bilder:
print(f"Keine Bilder gefunden in: {src_dir}")
sys.exit(1)
dst_dir = src_dir / "bereinigt"
dst_dir.mkdir(exist_ok=True)
print(f"\nQuelle: {src_dir}")
print(f"Ziel: {dst_dir}")
print(f"Bilder: {len(bilder)} gefunden\n")
ok = 0
fehler = 0
for bild in sorted(bilder):
dst = dst_dir / bild.name
try:
clean_image(bild, dst)
print(f" ok {bild.name}")
ok += 1
except Exception as e:
print(f" ERR {bild.name} - Fehler: {e}")
fehler += 1
print("\n" + "-" * 40)
print(f"{ok} Bilder bereinigt -> {dst_dir}")
if fehler:
print(f"{fehler} Fehler")
if __name__ == "__main__":
main()
(Speichern in nano: STRG+O, Enter, dann STRG+X)
4. Das Skript ausführen
python ~/Skripte/exif-cleaner.py
Das Skript fragt nach einem Unterordner in ~/storage/downloads/. Einfach Enter drücken, um alle Bilder im gesamten Downloads-Ordner zu bereinigen.
Die bereinigten Kopien liegen danach unter:
~/storage/downloads/bereinigt/
Unterstützte Formate: JPG, PNG, WebP, BMP, TIFF.
5. Wie die Bereinigung funktioniert
Die Methode ist bewusst einfach: Pillow liest die Rohdaten der Pixel (img.tobytes()) und erstellt daraus ein neues Bildobjekt (Image.frombytes()). Dieses neue Objekt enthält keine EXIF-Felder, keine ICC-Profile, keine eingebetteten Thumbnails. Nur die Pixelinformation selbst.
Wer überprüfen will, ob die Bereinigung geklappt hat, kann mit exiftool auf dem Desktop nachschauen:
exiftool bereinigtes-foto.jpg
Erwartete Ausgabe: wenige oder keine Felder, kein GPS.
Keine unsichtbaren Daten. Kein Standort. Kein Gerät. Das ist das Ziel.
Weiterführendes in dieser Serie
Verschlüsselung und Entschlüsselung von Ordnern direkt auf dem Smartphone:
Der mobile Bunker: Verschlüsselung auf GrapheneOS (Termux Edition)
ZIP-Archive automatisch entpacken mit einem Befehl:
ZIP-Archive entpacken mit Termux
Tools für echte Eigentümer (Werbung/Affiliate)
Tools, die ich selbst nutze, für Bitcoin-Selbstverwahrung und digitale Souveränität:
-
GrapheneOS-Handbuch:
Mein Ebook "GrapheneOS: Android im Überwachungszeitalter" — der vollständige Guide zu allem, was hier nur angerissen wird.
https://alien-investor.org/buecher -
Bitcoin kaufen in Europa: 21bitcoin
Bitcoin-only App aus Europa, ideal für DCA. Mit Code ALIENINVESTOR dauerhaft 0,2 Prozentpunkte Gebührenreduktion auf Sofort- und Sparplankäufe.
https://alien-investor.org/21bitcoin -
₿ Bitcoin in Selbstverwahrung:
Hardware-Wallet statt Börsenkonto. Ich nutze die BitBox.
https://alien-investor.org/bitbox -
Privacy und Mail: Proton
E-Mail, VPN und Cloud ohne Big-Tech-Abhängigkeit.
https://alien-investor.org/proton
Hinweis: Bei einigen Links handelt es sich um Affiliate-Links. Wenn du sie nutzt, unterstützt du meine Arbeit, ohne dass es dich mehr kostet.