تنفيذ الخطوط المخصّصة

في نظام التشغيل Android 11 والإصدارات الأقدم، سيتم تعديل ملفات الخطوط المثبَّتة على الجهاز في بروتوكول AOSP (في قسم قسم /system/fonts) أو أقسام المورِّد (في /product/fonts أو /system/fonts قسمًا) يتطلب تحديث النظام من المصنّع الأصلي للجهاز. هذا النمط بشكل كبير في توافق الرموز التعبيرية. ضِمن Android 12 يمكنك استخدام نظام FontManager. خدمة إدارة ملفات الخطوط المثبَّتة على الجهاز وتعديل ملفات الخطوط المثبَّتة على الجهاز. بدون تحديث النظام.

يتضمّن Android 12 ثلاثة تفاعلات مع العمليات، "FontManagerService" وFont Updater" و"Application"

FontManagerService هو نظام الإدارة المركزي في خادم النظام. يخزِّن FontManagerService أحدث إعدادات خطوط النظام لكل مستخدم.

FontUpdater هي أداة لتعديل الخطوط قابلة للتوصيل وموثوق بها من قِبل التحقّق من إذن الوصول إلى signature|privileged يتواصل FontUpdater مع FontManagerService للحصول على خط النظام الحالي أو تثبيته أو إزالته أو تحديثه الإعدادات. بإمكان FontUpdater تمرير محتوى ملف الخط الجديد من خلال إجراء عمليات تبادلية. آليات الاتصالات (IPC). يحفظ FontManagerService المحتوى في مكان تخزين يمكن للجميع قراءته، كما هو الحال في ملفات /data/fonts. هذا النمط التخزين المحمي. يمكن كتابته بواسطة FontManagerService فقط، بواسطة سياسة SELinux.

عند إطلاق الفئة Application، يتم ضبط إعدادات الخط في النظام على النحو التالي: وسيطات طريقة bindApplication ثم يقوم بتهيئة إعدادات الخط للاستخدام من خلال عملية التطبيق.

تخصيص الخطوط

يثبّت بعض المصنّعين الأصليين ملفات الخطوط أو يستبدلونها في AOSP لعرض علاماتهم التجارية. يوفّر Android 12 هذه الوظيفة، ولكنه يضيف متطلبات تحديث خطوط الرموز التعبيرية في الأجهزة. المصنّعين الأصليين للأجهزة التي لا تُجري تعديلات تحديث ملفات خطوط الرموز التعبيرية لا يلزم استخدام هذه الميزة.

تعدّل Google ملفات الخطوط، ولا سيما ملفات NotoColorEmoji من خلال GMS. أساسي، لذا يُرجى عدم تعديل ملف NotoColorEmoji.ttf أو إزالته من قسم /system، وعدم إزالته من /system/etc/fonts.xml. لاحظ باتباع ثلاث طرق يمكنك من خلالها تخصيص الخطوط:

  1. استبدِل ملف NotoColorEmoji.ttf بخط رمز تعبيري يحمل علامة المصنّع الأصلي للجهاز.
  2. عدِّل ملف NotoColorEmoji.ttf بما يتناسب مع احتياجات السوق المحلية.
  3. استبدِل ملفات الخطوط الأخرى أو عدِّلها.

إذا كنت لا تعدّل خطوط الرموز التعبيرية في ميزة AOSP، ليس عليك اتّخاذ أي إجراء. في حال حذف إذا كنت تريد تخصيص خطوط الرموز التعبيرية، استخدم التعليمات الواردة في ما يلي الأقسام.

استبدال NotoColorEmoji.ttf بخطوط رموز تعبيرية تحمل العلامة التجارية للمصنّع الأصلي للجهاز

لاستبدال ملف NotoColorEmoji.ttf بملف خطوط الرموز التعبيرية الذي يحمل العلامة التجارية للمصنّع الأصلي للجهاز، يُرجى اتّباع الخطوات التالية: ضع خط الرموز التعبيرية قبل السلسلة الاحتياطية للخط مباشرةً:

  1. ضَع الخط الخاص بك، المُسمّى OEMCustomEmoji.ttf، في القسم /system.
  2. عدِّل /system/etc/fonts.xml كما في الرمز التالي:

    <family lang="ko">
    <font weight="400" style="normal" index="1">NotoSansCJK-Regular.ttc</font>
    </family>
    <!-- ADD FOLLOWING LINE -->
    <family lang="und-Zsye">
       <font weight="400" style="normal">OEMCustomEmoji.ttf</font>
    </family>
    <!-- END OF MODIFICATION -->
    <family lang="und-Zsye">
       <font weight="400" style="normal">NotoColorEmoji.ttf</font>
    </family>
    <family lang="und-Zsym">
       <font weight="400" style="normal">NotoSansSymbols-Regular-Subsetted2.ttf</font>
    </family>
    

تعديل NotoColorEmoji.ttf لاحتياجات السوق المحلية

اتّبِع الخطوات التالية للتخصيص وفقًا لاحتياجات السوق المحلية:

  1. إنشاء ملف NotoColorEmoji باسم مختلف: على سبيل المثال، ونسميه Modified\_NotoColorEmoji.ttf.
  2. ضَعه قبل ملف NotoColorEmoji.ttf الأصلي.

بعد تنفيذ الخطوة 2، سيعتمد الحرف الرسومي المعدَّل عرض Modified\NotoColorEmoji.ttf بدلاً من NotoColorEmoji.ttf الأصلي. تنصح Google بما يلي:

  • لا تتضمّن سوى الحرف الرسومي اللازم في هذا الخط.
  • يُرجى تفويض الرموز الرسومية غير المعدَّلة إلى ملف NotoColorEmoji.ttf الأصلي لكي ستتلقّى أجهزتك أي إصلاحات للتصميمات في إصدارات الرموز التعبيرية المستقبلية.

إزالة الرموز الرسومية: لإزالة الرموز الرسومية من ملف NotoColorEmoji.ttf، اتبع الخطوتين الأولى والثانية، وتحديد glyph ID = 0 في برنامج الرحلة.

استخدام علامة منطقة: إذا كان الحرف الرسومي المستهدف هو علامة إقليمية، حدِّد الحرف الرسومي كرمز بلد غير معروف. (استخدِم country code = "ZZ".)

إنشاء حرف رسومي للتوفو: يمكنك تحديد رقم تعريف رسومي للتوفو بشكل واضح إذا أردت ذلك. لاستخدام واحدة. عند تحديد glyphID = 0، يفسّر التطبيق المرتبط ذلك على أنه "الرسم البياني غير متاح". على سبيل المثال، عند استخدام هذه السمة، سيتم تحديد قيمة يعرض تطبيق "Paint#hasGlyph" القيمة false.

استبدال ملفات الخطوط الأخرى أو تعديلها

لاستبدال الخطوط الأخرى أو تعديلها، يكون التخصيص مثل ذلك تعديل ملفات TTF لاحتياجات السوق المحلية. ملفات خطوط غير معروفة التي يتم تحديثها في AOSP في وقت التشغيل، ولا يتم تحديثها. يتجاهل محرك بحث Google الخطوط غير المعروفة في جهازك. يتضمن هذا ملفات الخطوط التي تم تعديلها من الخطوط الأصلية في AOSP.

وعلى الرغم من إجراء Google لتحديثات الخطوط في GMS Core، فإن التحديث العام للخط الآلية متاحة لجميع المصنّعين الأصليين للأجهزة. يمكن للمصنّعين الأصليين للأجهزة تثبيت أدوات تعديل إضافية للخطوط باستخدام الخطوات الواردة في المتطلبات الأساسية للاجتماعات وتوقيع ملفات الخطوط وإجراء تعديلات على الخطوط في بيئة التشغيل

استيفاء المتطلبات الأساسية

تستخدم آلية تعديل الخط ميزة نواة Linux في fs-verity. تأكَّد من أنّ جهازك متوافق مع fs-verity ويتضمن الشهادة في جهازك.

توقيع ملفات الخطوط

بما أنّ ملفات الخطوط تُعدّ موارد خطيرة، يجب إثبات ملكيتها باستخدام مفاتيح موثوق بها. راجع جميع ملفات الخطوط التي سيتم تحديثها بعناية، ووقِّع باستخدام الخاص. يجب أن يكون التوقيع متوافقًا معfs-verity.

إجراء تعديلات على الخط في بيئة التشغيل

يجري تطبيق النظام FontManger تعديلات على الخط. يوفّر تطبيق "FontManager" أحدث حالة لخطوط النظام المثبَّتة والقدرة على تعديل ملفات الخطوط بالتوقيعات. لإجراء مكالمة مع تطبيقات تحديث التطبيقات، يمكنك إضافة "UPDATE_FONT signature|privileged". إذن الوصول إلى القائمة المسموح بها للتطبيقات، وفي بيان التطبيق

عليك تقديم إذن "UPDATE_FONT signature|privileged" إلى أداة تحديث تطبيقك. الأخرى.