
EXIF 메타데이터를 구문 분석, 편집 및 저장하는 C 라이브러리로, AOSP10의 CVE-2020-0198 해결에 중점을 둡니다.
libexif -------
libexif는 EXIF 데이터를 파싱, 편집 및 저장하기 위한 라이브러리입니다. 이 라이브러리는 명령줄 유틸리티와 GUI 프로그램에서 많은 중복 구현을 대체하기 위해 설계되었습니다.
libexif는 EXIF 데이터의 파싱, 편집 및 저장을 지원합니다. 또한 gettext 지원이 포함되어 있습니다. EXIF 표준 2.1에 설명된 모든 EXIF 태그(2.2의 대부분 포함)를 지원합니다. Canon, Casio, Epson, Fuji, Nikon, Olympus, Pentax 및 Sanyo 카메라의 많은 메이커 노트도 지원됩니다.
libexif는 순수 C로 작성되었으며 추가 라이브러리가 필요하지 않습니다. GNU gettext는 사용 가능한 경우 언어 번역에 사용됩니다.
libexif는 일부 메이커 노트만 처리할 수 있으며, 그것조차도 완벽하지 않습니다. 더 많은 작업이 필요합니다. libmnote가 libexif에 병합되었으므로 더 이상 필요하지 않습니다.
libexif API는 doxygen을 사용하여 문서화되었으며, 결과물은 http://libexif.sourceforge.net/api/ 에서 확인할 수 있습니다.
test 디렉토리의 간단한 테스트 프로그램은 유효한 EXIF 데이터를 처음부터 생성하고, EXIF 데이터를 저장하고, 메모리에서 EXIF 데이터를 로드하는 방법을 보여줍니다. contrib/examples/ 디렉토리에도 몇 가지 간단한 예제 프로그램이 있습니다. libexif 사용에 관한 질문이 있으면 [email protected]으로 연락 주시기 바랍니다.
자체 패키지에 libexif를 링크하려면 pkgconfig 유틸리티를 사용하는 것이 좋습니다 (cf. http://www.freedesktop.org/wiki/Software/pkg-config/). 편의를 위해 libexif는 libexif-uninstalled.pc를 제공하고 libexif.pc를 설치합니다.
현재 libexif의 프론트엔드로 다음과 같은 것을 알고 있습니다.
프로그램을 libexif로 마이그레이션하거나 EXIF 지원을 추가하려면 주저하지 말고 저자에게 연락하십시오.
libexif를 사용하거나 영감을 받은 라이브러리로 다음과 같은 것을 알고 있습니다.
libexif를 빌드하기 위해 수행해야 할 작업은 사용자 환경에 따라 다릅니다. 소스 tar 아카이브에서 빌드하려면 일반적으로 다음 명령을 사용합니다.
./configure make sudo make install
CVS에서 소스를 빌드할 때는 다음과 같은 과정이 필요합니다.
gettextize mv po/Makevars.template po/Makevars aclocal -I auto-m4 -I m4m autoheader libtoolize --force automake --add-missing autoconf ./configure make
또는 아마도 다음만으로 충분합니다.
autoreconf -i ./configure make
표준 인수 외에도 configure는 libexif 특정 인수를 여러 개 받습니다.
--disable-docs 문서 생성을 비활성화합니다. --enable-internal-docs Doxygen 사용 가능 시 내부 코드 문서를 빌드합니다. --enable-ship-binaries 'make dist'에 Windows DLL을 포함합니다.
특정 전문 애플리케이션은 configure 시점에 CPPFLAGS 환경 변수에서 다음 매크로 중 하나 또는 둘 모두를 설정하여 libexif 바이너리 크기를 줄일 수 있습니다. 각 매크로는 바이너리에서 특정 종류의 텍스트 문자열과 상수를 제거합니다. 특정 알려진 EXIF 태그에 접근해야 하고 해당 데이터의 의미를 미리 알고 있는 애플리케이션은 이러한 문자열이 필요 없으며, 이를 제거하여 상당한 공간을 절약할 수 있습니다.
-DNO_VERBOSE_TAG_STRINGS EXIF 태그의 이름과 설명, 디버그 메시지, 필수 EXIF 필드 (자동 태그 수정 비활성화) -DNO_VERBOSE_TAG_DATA 열거형 태그 데이터 내용의 이름
libexif 번역은 자원봉사자들이 개별적으로, libexif 프로젝트와 직접 또는 두 번역 조정 사이트인 Translation Project http://translationproject.org/domain/libexif.html 및 Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12를 통해 작업하고 있습니다. Translation Project에서 조정하는 언어 번역 업데이트는 해당 웹 사이트를 통해 이루어져야 하지만, 다른 모든 언어는 Launchpad(권장)를 통해 또는 libexif 개발자 메일링 리스트로 직접 업데이트를 보내 업데이트할 수 있습니다. 현재 다음 언어는 Translation Project를 통해 업데이트해야 합니다: cs da de es fr it ja nl pl sk sv uk vi
libexif를 새 언어로 번역하는 데 관심이 있다면 위 번역 그룹 중 하나에 가입하여 그들이 구축한 시스템을 활용하는 것이 좋습니다. Translation Project에서 libexif에는 번역 면책 각서가 필요하지 않습니다. 번역을 제공함으로써, libexif의 나머지 부분과 동일한 라이선스 조건(LGPL)으로 제공하는 데 암묵적으로 동의하는 것입니다.
libexif는 원래 Curtis Galloway [email protected]에 의해 작성되었습니다. 원래 설계가 편집 및 저장을 지원하지 않았기 때문에 Lutz Mueller [email protected]가 libexif를 처음부터 다시 작성했습니다. 그 이후로 많은 사람들이 libexif에 기여했습니다.
EXIF에 대한 추가 정보를 원한다면 확인해 볼 만한 링크입니다.