
Bibliothèque C pour analyser, modifier et enregistrer les métadonnées EXIF, avec un accent sur la résolution de CVE-2020-0198 dans AOSP10.
libexif -------
libexif est une bibliothèque pour analyser, éditer et sauvegarder des données EXIF. Elle est destinée à remplacer de nombreuses implémentations redondantes dans les utilitaires en ligne de commande et les programmes avec des IHM.
libexif prend en charge l'analyse, l'édition et la sauvegarde des données EXIF. De plus, il dispose du support gettext. Tous les tags EXIF décrits dans la norme EXIF 2.1 (et la plupart de la 2.2) sont pris en charge. De nombreuses notes de fabricant des appareils Canon, Casio, Epson, Fuji, Nikon, Olympus, Pentax et Sanyo sont également prises en charge.
libexif est écrit en C standard et ne nécessite aucune bibliothèque supplémentaire. GNU gettext sera utilisé pour la traduction linguistique, si disponible.
libexif ne peut gérer que certaines notes de fabricant, et encore pas très bien. Plus de travail est nécessaire. Notez que libmnote a été fusionné avec libexif – il n'est plus nécessaire.
Nous avons documenté l'API de libexif en utilisant doxygen et nous mettons les résultats à disposition sur http://libexif.sourceforge.net/api/
Les courts programmes de test dans le répertoire test illustrent comment créer des données EXIF valides à partir de zéro, comment sauvegarder des données EXIF et comment charger des données EXIF depuis des données en mémoire. Il existe également quelques exemples de programmes simples disponibles dans le répertoire contrib/examples/. N'hésitez pas à nous contacter à si vous avez des questions sur l'utilisation de libexif.
Pour lier libexif à votre propre paquet, nous recommandons d'utiliser l'utilitaire pkgconfig (cf. http://www.freedesktop.org/wiki/Software/pkg-config/). Pour votre commodité, libexif fournit à la fois libexif-uninstalled.pc et installe libexif.pc.
Actuellement, je connais les frontends suivants pour libexif :
Si vous souhaitez migrer votre programme pour utiliser libexif ou y ajouter le support EXIF, n'hésitez pas à contacter les auteurs.
Je connais les bibliothèques suivantes qui utilisent ou ont été inspirées par libexif :
Cela dépend vraiment de votre environnement pour savoir quoi faire pour compiler libexif. La construction à partir de l'archive tar source implique généralement les commandes :
./configure make sudo make install
Lors de la construction à partir des sources issues de CVS, quelque chose comme ce qui suit sera nécessaire :
gettextize mv po/Makevars.template po/Makevars aclocal -I auto-m4 -I m4m autoheader libtoolize --force automake --add-missing autoconf ./configure make
Ou, probablement juste :
autoreconf -i ./configure make
En plus des arguments standard, configure prend plusieurs options spécifiques à libexif :
--disable-docs Pour désactiver la production de documentation --enable-internal-docs Construire la documentation interne du code si Doxygen est disponible --enable-ship-binaries Pour inclure les DLL Windows dans 'make dist'
Certaines applications spécialisées peuvent réduire la taille du binaire libexif en définissant une ou les deux macros suivantes dans la variable d'environnement CPPFLAGS lors de la configuration. Chacune supprime certains types de chaînes de caractères et constantes du binaire. Les applications qui ont besoin d'accéder à des tags EXIF spécifiques et connus et connaissent à l'avance la signification de leurs données n'ont pas besoin de ces chaînes et peuvent économiser un espace considérable en les supprimant.
-DNO_VERBOSE_TAG_STRINGS Noms et descriptions des tags EXIF, messages de débogage, champs EXIF obligatoires (désactive la correction automatique des tags) -DNO_VERBOSE_TAG_DATA Noms du contenu des tags de données énumérés
Les traductions de libexif sont effectuées par des bénévoles travaillant seuls, soit directement avec le projet libexif, soit par l'intermédiaire de l'un des deux sites de coordination de traduction, le Translation Project http://translationproject.org/domain/libexif.html et Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12. Toute mise à jour des traductions linguistiques coordonnées par le Translation Project doit être effectuée via son site web, mais toutes les autres langues peuvent être mises à jour soit via Launchpad (de préférence), soit en envoyant les mises à jour directement à la liste de diffusion des développeurs de libexif. Au moment de la rédaction de ce document, les langues suivantes doivent être mises à jour via le Translation Project : cs da de es fr it ja nl pl sk sv uk vi
Si vous êtes intéressé par la traduction de libexif dans une nouvelle langue, nous vous recommandons de rejoindre l'un des groupes de traduction ci-dessus et de profiter des systèmes qu'ils ont mis en place pour vous aider. Une clause de non-responsabilité de traduction n'est PAS requise pour libexif au Translation Project ; en effectuant une traduction, vous acceptez implicitement de la fournir sous les mêmes termes de licence que le reste de libexif (LGPL).
libexif a été initialement écrit par Curtis Galloway [email protected]. En raison de la conception originale ne supportant pas l'édition et la sauvegarde, Lutz Mueller [email protected] a réécrit libexif à partir de zéro. Depuis, de nombreuses autres personnes ont contribué à libexif.
Quelques liens que vous voudrez peut-être consulter si vous êtes intéressé par des informations supplémentaires sur EXIF.