
C-Bibliothek zum Parsen, Bearbeiten und Speichern von EXIF-Metadaten, mit Schwerpunkt auf der Behebung von CVE-2020-0198 in AOSP10.
libexif -------
libexif ist eine Bibliothek zum Analysieren, Bearbeiten und Speichern von EXIF-Daten. Sie soll viele redundante Implementierungen in Kommandozeilenwerkzeugen und Programmen mit GUIs ersetzen.
libexif unterstützt das Analysieren, Bearbeiten und Speichern von EXIF-Daten. Darüber hinaus verfügt es über gettext-Unterstützung. Alle im EXIF-Standard 2.1 beschriebenen EXIF-Tags (und die meisten aus 2.2) werden unterstützt. Viele Maker-Notes von Canon-, Casio-, Epson-, Fuji-, Nikon-, Olympus-, Pentax- und Sanyo-Kameras werden ebenfalls unterstützt.
libexif ist in reinem C geschrieben und benötigt keine zusätzliche Bibliothek. GNU gettext wird für die Sprachübersetzung verwendet, falls verfügbar.
libexif kann nur einige Maker-Notes verarbeiten, und selbst diese nicht sehr gut. Es muss noch mehr Arbeit geleistet werden. Beachten Sie, dass libmnote in libexif integriert wurde – es wird nicht mehr benötigt.
Wir haben die libexif-API mit Doxygen dokumentiert und die Ergebnisse unter http://libexif.sourceforge.net/api/ verfügbar gemacht.
Die kurzen Testprogramme im Verzeichnis test zeigen, wie man gültige EXIF-Daten von Grund auf erstellt, EXIF-Daten speichert und EXIF-Daten aus dem Arbeitsspeicher lädt. Es gibt auch einige einfache Beispielprogramme im Verzeichnis contrib/examples/. Zögern Sie nicht, uns unter [email protected] zu kontaktieren, wenn Sie Fragen zur Verwendung von libexif haben.
Um libexif in Ihr eigenes Paket einzubinden, empfehlen wir die Verwendung des pkgconfig-Dienstprogramms (vgl. http://www.freedesktop.org/wiki/Software/pkg-config/). Der Einfachheit halber stellt libexif sowohl libexif-uninstalled.pc bereit als auch installiert libexif.pc.
Derzeit sind mir die folgenden Frontends für libexif bekannt:
Wenn Sie Ihr Programm auf libexif umstellen oder EXIF-Unterstützung hinzufügen möchten, zögern Sie nicht, die Autoren zu kontaktieren.
Mir sind die folgenden Bibliotheken bekannt, die libexif verwenden oder davon inspiriert wurden:
Es hängt stark von Ihrer Umgebung ab, was Sie tun müssen, um libexif zu erstellen. Das Erstellen aus dem Quell-Tarball umfasst normalerweise die folgenden Befehle:
./configure make sudo make install
Beim Erstellen aus dem Quellcode aus CVS ist etwa Folgendes erforderlich:
gettextize mv po/Makevars.template po/Makevars aclocal -I auto-m4 -I m4m autoheader libtoolize --force automake --add-missing autoconf ./configure make
Oder vielleicht einfach:
autoreconf -i ./configure make
Zusätzlich zu den Standardargumenten akzeptiert configure mehrere für libexif spezifische Optionen:
--disable-docs Zum Deaktivieren der Dokumentationserstellung --enable-internal-docs Interne Codedokumentation erstellen, falls Doxygen verfügbar --enable-ship-binaries Zum Einbinden von Windows-DLLs in 'make dist'
Bestimmte spezialisierte Anwendungen können die Größe der libexif-Binärdatei reduzieren, indem sie eine oder beide der folgenden Makros in der Umgebungsvariablen CPPFLAGS zur Konfigurationszeit setzen. Jedes Makro entfernt bestimmte Arten von Textzeichenfolgen und Konstanten aus der Binärdatei. Anwendungen, die auf bestimmte, bekannte EXIF-Tags zugreifen müssen und die Bedeutung ihrer Daten im Voraus kennen, benötigen diese Zeichenfolgen nicht und können durch deren Entfernung erheblichen Platz sparen.
-DNO_VERBOSE_TAG_STRINGS Namen und Beschreibungen von EXIF-Tags, Debug-Meldungen, obligatorische EXIF-Felder (Deaktivieren der automatischen Tag-Korrektur) -DNO_VERBOSE_TAG_DATA Namen der aufgezählten Tag-Dateninhalte
Die libexif-Übersetzungen werden von Freiwilligen erstellt, die eigenständig arbeiten, entweder direkt mit dem libexif-Projekt oder über eine von zwei Übersetzungskoordinationsseiten, das Translation Project http://translationproject.org/domain/libexif.html und Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12. Aktualisierungen von Sprachübersetzungen, die vom Translation Project koordiniert werden, müssen über deren Website erfolgen, aber alle anderen Sprachen können entweder über Launchpad (bevorzugt) oder durch direkte Zusendung von Aktualisierungen an die libexif-Entwickler-Mailingliste aktualisiert werden. Zum Zeitpunkt dieser Niederschrift müssen die folgenden Sprachen über das Translation Project aktualisiert werden: cs da de es fr it ja nl pl sk sv uk vi
Wenn Sie daran interessiert sind, libexif in eine neue Sprache zu übersetzen, empfehlen wir Ihnen, einer der oben genannten Übersetzungsgruppen beizutreten und die von ihnen aufgebauten Systeme zu nutzen. Eine Übersetzungsverzichtserklärung ist für libexif beim Translation Project NICHT erforderlich; durch die Erstellung einer Übersetzung stimmen Sie implizit zu, diese unter denselben Lizenzbedingungen wie den Rest von libexif (LGPL) bereitzustellen.
libexif wurde ursprünglich von Curtis Galloway [email protected] geschrieben. Da das ursprüngliche Design das Bearbeiten und Speichern nicht unterstützte, hat Lutz Mueller [email protected] libexif von Grund auf neu geschrieben. Seitdem haben viele weitere Personen zu libexif beigetragen.
Einige Links, die Sie sich ansehen sollten, wenn Sie an weiteren Informationen zu EXIF interessiert sind.