
مكتبة قائمة على C لتحليل وتحرير وحفظ بيانات EXIF الوصفية من صور JPEG، مع التركيز على استغلال CVE-2016-6328 لنظام Android 10.
libexif -------
libexif هي مكتبة لتحليل بيانات EXIF وتحريرها وحفظها. وهي مصممة لتحل محل العديد من التطبيقات المكررة في أدوات سطر الأوامر والبرامج ذات الواجهات الرسومية.
تدعم libexif تحليل بيانات EXIF وتحريرها وحفظها. بالإضافة إلى ذلك، فهي تدعم gettext. جميع وسوم EXIF الموصوفة في معيار EXIF 2.1 (ومعظمها من 2.2) مدعومة. كما أن العديد من ملاحظات الشركات المصنعة من كاميرات Canon وCasio وEpson وFuji وNikon وOlympus وPentax وSanyo مدعومة أيضًا.
libexif مكتوبة بلغة C بسيطة ولا تتطلب أي مكتبة إضافية. سيتم استخدام GNU gettext لترجمة اللغة، إذا كان متاحًا.
يمكن لـ libexif التعامل مع بعض ملاحظات الشركات المصنعة فقط، وحتى تلك ليس بشكل جيد للغاية. هناك حاجة إلى مزيد من العمل. لاحظ أنه تم دمج libmnote مع libexif - لم يعد مطلوبًا.
لقد قمنا بتوثيق واجهة برمجة تطبيقات 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 حقًا على بيئتك. عادةً ما يتضمن البناء من ملف المصدر المضغوط (tar ball) الأوامر التالية:
./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 لتضمين مكتبات Windows DLL في 'make dist'
يمكن لبعض التطبيقات المتخصصة تقليل حجم ملف libexif الثنائي عن طريق تعيين أحد الماكروين التاليين أو كليهما في متغير البيئة CPPFLAGS في وقت configure. يزيل كل منهما أنواعًا معينة من السلاسل النصية والثوابت من الملف الثنائي. التطبيقات التي تحتاج إلى الوصول إلى وسوم EXIF محددة ومعروفة وتعرف مسبقًا معنى بياناتها لا تحتاج إلى تلك السلاسل ويمكنها توفير مساحة كبيرة عن طريق إزالتها.
-DNO_VERBOSE_TAG_STRINGS أسماء وأوصاف وسوم EXIF ورسائل التصحيح، حقول EXIF الإلزامية (تعطيل الإصلاح التلقائي للوسوم) -DNO_VERBOSE_TAG_DATA أسماء محتويات بيانات الوسوم المعدودة
تُنجز ترجمات libexif بواسطة متطوعين يعملون بشكل مستقل، إما مباشرة مع مشروع libexif أو من خلال أحد موقعي تنسيق الترجمة، مشروع الترجمة 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.