
مكتبة C لتحليل وتحرير وحفظ بيانات EXIF الوصفية، مع التركيز على معالجة CVE-2020-0198 في AOSP10.
libexif -------
libexif هي مكتبة لتحليل بيانات EXIF وتحريرها وحفظها. صُممت لتحل محل الكثير من التطبيقات المكررة في أدوات سطر الأوامر والبرامج ذات الواجهات الرسومية.
تدعم libexif تحليل بيانات EXIF وتحريرها وحفظها. بالإضافة إلى ذلك، فهي تدعم gettext. جميع وسوم EXIF الموضحة في معيار EXIF 2.1 (ومعظمها من 2.2) مدعومة. كما تُدعم أيضًا العديد من ملاحظات المُصنّع (maker notes) من كاميرات Canon وCasio وEpson وFuji وNikon وOlympus وPentax وSanyo.
libexif مكتوبة بلغة C خالصة ولا تتطلب أي مكتبة إضافية. سيُستخدم GNU gettext لترجمة اللغات، إذا كان متاحًا.
لا يمكن لـ libexif التعامل إلا مع بعض ملاحظات المُصنّع، وحتى مع تلك، ليس بشكل جيد جدًا. هناك حاجة إلى مزيد من العمل. لاحظ أنه تم دمج libmnote مع libexif - ولم تعد هناك حاجة إليها.
لقد وثّقنا واجهة برمجة التطبيقات (API) الخاصة بـ libexif باستخدام doxygen، ونوفّر النتائج على http://libexif.sourceforge.net/api/
توضح البرامج الاختبارية القصيرة في مجلد test كيفية إنشاء بيانات EXIF صالحة من الصفر، وحفظ بيانات EXIF، وتحميل بيانات EXIF من البيانات الموجودة في الذاكرة. تتوفر أيضًا بعض البرامج الأمثلة البسيطة في مجلد contrib/examples/. لا تتردد في مراسلتنا على [email protected] إذا كانت لديك أي أسئلة حول كيفية استخدام libexif.
لربط libexif بحزمتك الخاصة، نوصي باستخدام أداة pkgconfig (انظر http://www.freedesktop.org/wiki/Software/pkg-config/. ولراحتك، توفر libexif كلاً من libexif-uninstalled.pc وتثبّت libexif.pc.
في الوقت الحالي، أعرف الواجهات الأمامية التالية لـ libexif:
إذا كنت ترغب في ترحيل برنامجك لاستخدام libexif أو إضافة دعم EXIF إليه، فلا تتردد في الاتصال بالمؤلفين.
أعرف المكتبات التالية التي تستخدم libexif أو استلهمت منها:
يعتمد ما يتعين عليك فعله لبناء libexif حقًا على بيئتك. عادةً ما يتضمن البناء من الأرشيف المصدر (tarball) الأوامر التالية:
./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 لتضمين مكتبات DLL الخاصة بنظام Windows في 'make dist'
يمكن لبعض التطبيقات المتخصصة تقليل حجم الملف الثنائي لـ libexif عن طريق تعيين أحد الماكروين التاليين أو كليهما في متغير البيئة CPPFLAGS عند وقت الإعداد (configure). يزيل كل واحد منهما أنواعًا معينة من السلاسل النصية والثوابت من الملف الثنائي. التطبيقات التي تحتاج إلى الوصول إلى وسوم 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. يجب إجراء أي تحديثات لترجمات اللغات التي ينسقها مشروع الترجمة عبر موقعه الإلكتروني، بينما يمكن تحديث جميع اللغات الأخرى إما من خلال Launchpad (المفضل) أو بإرسال التحديثات مباشرةً إلى القائمة البريدية لمطوري libexif. حتى وقت كتابة هذا النص، يجب تحديث اللغات التالية من خلال مشروع الترجمة: cs da de es fr it ja nl pl sk sv uk vi
إذا كنت مهتمًا بترجمة libexif إلى لغة جديدة، نوصيك بالانضمام إلى إحدى مجموعات الترجمة المذكورة أعلاه والاستفادة من الأنظمة التي بنوها لمساعدتك. إخلاء المسؤولية عن الترجمة غير مطلوب لـ libexif في مشروع الترجمة؛ فمن خلال تقديم ترجمة، فإنك توافق ضمنيًا على توفيرها بموجب شروط الترخيص نفسها المتبعة في بقية libexif (LGPL).
كُتبت libexif في الأصل بواسطة Curtis Galloway [email protected]. ولأن التصميم الأصلي لم يكن يدعم التحرير والحفظ، أعاد Lutz Mueller [email protected] كتابة libexif من الصفر. ومنذ ذلك الحين، ساهم العديد من الأشخاص الآخرين في libexif.
بعض الروابط التي قد ترغب في الاطلاع عليها إذا كنت مهتمًا بمزيد من المعلومات حول EXIF.