יישום גופנים מותאמים אישית

ב-Android 11 ומטה, עדכון קובצי גופנים המותקנים במכשיר ב-AOSP (במחיצת /system/fonts ) או במחיצות הספק (במחיצות /product/fonts או /system/fonts ) דורש עדכון מערכת מה-OEM. לדרישה הזו יש השפעה משמעותית על תאימות האמוג'י. באנדרואיד 12 אתה יכול להשתמש בשירות המערכת FontManager כדי לנהל קבצי גופנים מותקנים ולעדכן קבצי גופנים מותקנים במכשיר ללא עדכון מערכת.

אנדרואיד 12 כולל שלוש אינטראקציות תהליך; FontManagerService , Font Updater Application .

FontManagerService היא מערכת הניהול המרכזית בשרת המערכת. FontManagerService מאחסן את הגדרות הגופן העדכניות ביותר של מערכת לכל משתמש.

ה- FontUpdater הוא עדכון גופנים הניתן לחיבור שניתן לסמוך עליו באמצעות בדיקת הרשאות signature|privileged FontUpdater מתקשר עם FontManagerService כדי לקבל, להתקין, להסיר או לעדכן את הגדרות גופני המערכת הנוכחיות. ה- FontUpdater יכול להעביר תוכן קובץ גופן חדש על ידי מנגנוני תקשורת בין-תהליכים (IPC). ה- FontManagerService שומר את התוכן למקום אחסון הניתן לקריאה בעולם, כגון בקבצי /data/fonts . האחסון הזה שמור. זה יכול להיכתב על ידי FontManagerService בלבד , על ידי מדיניות SELinux.

כאשר מחלקת Application מופעלת, היא מעבירה את הגדרות גופני המערכת כארגומנטים של שיטת bindApplication ; לאחר מכן הוא מאתחל את הגדרות הגופן לשימוש על ידי תהליך האפליקציה.

התאם אישית גופנים

חלק מיצרני OEM מתקינים או מחליפים קובצי גופן ב-AOSP כדי להציג את המותגים שלהם. אנדרואיד 12 תומך בפונקציונליות זו, אך מוסיף דרישות לשמירה על עדכון גופני האמוג'י במכשירים. יצרני OEM שאינם משנים או מעדכנים קובצי גופן אמוג'י אינם צריכים להשתמש בתכונה זו.

גוגל מעדכנת את קובצי הגופן, במיוחד את קובצי NotoColorEmoji דרך GMS Core, אז אל תשנה או תסיר את הקובץ NotoColorEmoji.ttf ממחיצת /system , ואל תסיר אותו מ-/system/ /system/etc/fonts.xml . שים לב לשלושת הדרכים הבאות שבהן תוכל להתאים אישית את הגופנים שלך:

  1. החלף את הקובץ NotoColorEmoji.ttf בגופן אמוג'י ממותג OEM.
  2. שנה את הקובץ NotoColorEmoji.ttf לצרכי השוק המקומי שלך.
  3. החלף או שנה קובצי גופן אחרים.

אם אינך משנה גופני אמוג'י ב-AOSP, אינך צריך לנקוט בפעולה. אם ברצונך להתאים אישית גופני אמוג'י, השתמש בהוראות בסעיפים הבאים.

החלף את NotoColorEmoji.ttf בגופני אמוג'י ממותגי OEM

כדי להחליף את הקובץ NotoColorEmoji.ttf בקובץ גופני האמוג'י של מותג OEM שלך, הצב את גופן האימוג'י ממש לפני שרשרת הגופן הנסוג:

  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 המקורי. גוגל ממליצה על הדברים הבאים:

  • יש רק את הגליף הדרוש בגופן הזה.
  • האצל גליפים ללא שינוי לקובץ NotoColorEmoji.ttf המקורי כך שהמכשירים שלך יקבלו כל תיקוני עיצוב שנעשו במהדורות אמוג'י עתידיות.

הסרת גליפים: כדי להסיר גליפים מקובץ NotoColorEmoji.ttf , בצע את שלבים 1 ו-2, וציין glyph ID = 0 ב-cmap שלך.

השתמש בדגל אזורי: אם גליף היעד הוא דגל אזורי, ציין את מזהה הגליף כקוד מדינה לא ידוע. (השתמש country code = "ZZ" .)

צור גליף טופו: אתה יכול לציין במפורש מזהה גליף טופו אם אתה רוצה להשתמש באחד. כאשר אתה מציין glyphID = 0 , האפליקציה הקשורה מפרשת את זה כ"גליף אינו זמין". לדוגמה, כאשר אתה משתמש בתכונה זו, אפליקציית Paint#hasGlyph מחזירה false .

החלף או שנה קובצי גופן אחרים

כדי להחליף או לשנות גופנים אחרים, ההתאמה האישית דומה לזו של שינוי קבצי ה-TTF לצרכי השוק המקומי. מתעלמים מקובצי גופן לא ידועים שמתעדכנים ב-AOSP בזמן ריצה ואינם מתעדכנים. Google מתעלמת מגופנים לא ידועים במכשיר שלך. זה כולל קבצי גופנים ששונו מהגופנים המקוריים ב-AOSP.

למרות שעדכוני גופנים נעשים על ידי גוגל ב-GMS Core, מנגנון עדכון הגופנים הכללי פתוח לכל יצרני ה-OEM. יצרני OEM יכולים להתקין עדכוני גופנים נוספים באמצעות השלבים בדרישות מוקדמות לפגישה , חתימה על קובצי גופן וביצוע עדכוני גופנים בזמן ריצה .

עמידה בדרישות הקדם

מנגנון עדכון הגופנים משתמש בתכונת ליבת fs-verity Linux. ודא שהמכשיר שלך תואם fs-verity וכלול את האישור במכשיר שלך.

חתום על קבצי גופנים

מכיוון שקובצי גופן הם משאבים מסוכנים, יש לאמת אותם באמצעות מפתחות מהימנים. סקור בזהירות את כל קבצי הגופנים שיש לעדכן, וחתום עם המפתח הפרטי שלך. החתימה חייבת להיות תואמת fs-verity .

בצע עדכוני גופנים בזמן ריצה

אפליקציית FontManger System מבצעת עדכוני גופנים. אפליקציית FontManager מספקת את מצב גופן המערכת המותקן העדכני ביותר ואת היכולת לעדכן קבצי גופנים עם חתימות. כדי להתקשר לאפליקציות עדכון, הוסף את UPDATE_FONT signature|privileged לרשימת ההיתרים של האפליקציה שלך ולמניפסט שלך .

ספק את UPDATE_FONT signature|privileged לפונקציית העדכון של האפליקציה שלך.