← Zurück zur Zentrale

EXIF-Daten aus Fotos entfernen mit Termux

von Alien Investor

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:

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:

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.


Energie aufladen (Spenden)

Treibstoff für das Mutterschiff senden

Danke für deine Unterstützung.