पसंद के मुताबिक फ़ॉन्ट का इस्तेमाल करना

Android 11 और उससे पहले के वर्शन के लिए, डिवाइस पर इंस्टॉल किए गए फ़ॉन्ट फ़ाइलों को एओएसपी ( /system/fonts विभाजन) या वेंडर विभाजन (/product/fonts या /system/fonts पार्टिशन) के लिए OEM से सिस्टम अपडेट करना ज़रूरी है. यह इमोजी की सुविधा के साथ काम करने की ज़रूरी शर्तों का बहुत असर पड़ता है. तय सीमा में Android 12 में, FontManager सिस्टम का इस्तेमाल किया जा सकता है इंस्टॉल की गई फ़ॉन्ट फ़ाइलों को मैनेज करने और डिवाइस पर इंस्टॉल की गई फ़ॉन्ट फ़ाइलों को अपडेट करने की सेवा इसके लिए, उन्हें सिस्टम अपडेट की ज़रूरत नहीं पड़ेगी.

Android 12 में तीन प्रोसेस इंटरैक्शन की सुविधा है; FontManagerService, Font Updater, और Application.

FontManagerService, सिस्टम सर्वर में सेंट्रल मैनेजमेंट सिस्टम होता है. FontManagerService हर उपयोगकर्ता के हिसाब से, सिस्टम की सबसे नई फ़ॉन्ट सेटिंग सेव करता है.

FontUpdater, प्लग किया जा सकने वाला फ़ॉन्ट अपडेटर है. यह signature|privileged की अनुमति की जांच. FontUpdater, मौजूदा सिस्टम फ़ॉन्ट पाने, इंस्टॉल करने, हटाने या अपडेट करने के लिए FontManagerService सेटिंग. FontUpdater, इंटर-प्रोसेस से नई फ़ॉन्ट फ़ाइल के कॉन्टेंट पास कर सकता है के लिए इस्तेमाल किया जाता है. FontManagerService कॉन्टेंट को यहां सेव करता है स्टोरेज की ऐसी जगह जिसे दुनिया भर में आसानी से पढ़ा जा सकता है, जैसे कि /data/fonts में मौजूद फ़ाइलें. यह डिवाइस के स्टोरेज को सुरक्षित रखा गया है. इसे सिर्फ़ FontManagerService के ज़रिए लिखा जा सकता है SELinux नीति.

Application क्लास लॉन्च होने पर, यह सिस्टम की फ़ॉन्ट सेटिंग को इस तरह पास करती है bindApplication तरीके के आर्ग्युमेंट; तो यह फ़ॉन्ट सेटिंग शुरू करता है ऐप्लिकेशन की प्रोसेस में इस्तेमाल किया जा सकता है.

फ़ॉन्ट को पसंद के मुताबिक बनाएं

कुछ OEM अपने ब्रैंड दिखाने के लिए, एओएसपी में फ़ॉन्ट फ़ाइलें इंस्टॉल करते हैं या बदलते हैं. यह सुविधा, Android 12 पर काम करती है. हालांकि, यह सुविधा ज़रूरी है कि आप डिवाइसों में इमोजी फ़ॉन्ट अपडेट करते रहें. ऐसे OEM जिनमें बदलाव नहीं किया जाता या इमोजी फ़ॉन्ट फ़ाइलों को अपडेट करने के लिए इस सुविधा की ज़रूरत नहीं है.

Google, GMS की मदद से फ़ॉन्ट फ़ाइलों को अपडेट करता है, खास तौर पर NotoColorEmoji फ़ाइलों को कोर, इसलिए NotoColorEmoji.ttf फ़ाइल को /system विभाजन चुनें और इसे /system/etc/fonts.xml से न निकालें. ध्यान दें: तीन तरीकों से अपने फ़ॉन्ट को पसंद के मुताबिक बनाया जा सकता है:

  1. NotoColorEmoji.ttf फ़ाइल की जगह, OEM ब्रैंड वाले इमोजी फ़ॉन्ट का इस्तेमाल करें.
  2. अपने स्थानीय बाज़ार की ज़रूरतों के हिसाब से, NotoColorEmoji.ttf फ़ाइल में बदलाव करें.
  3. अन्य फ़ॉन्ट फ़ाइलों को बदलें या उनमें बदलाव करें.

अगर एओएसपी में इमोजी के फ़ॉन्ट में बदलाव नहीं किया जा रहा है, तो आपको कोई कार्रवाई करने की ज़रूरत नहीं है. अगर आपने आप इमोजी फ़ॉन्ट को कस्टमाइज़ करना चाहते हैं, तो नीचे दिए गए निर्देशों का पालन करें सेक्शन.

NotoColorEmoji.ttf की जगह OEM-ब्रैंड वाले इमोजी फ़ॉन्ट इस्तेमाल करें

NotoColorEmoji.ttf फ़ाइल को OEM ब्रैंड वाले इमोजी फ़ॉन्ट की फ़ाइल से बदलने के लिए, इमोजी फ़ॉन्ट को फ़ॉन्ट फ़ॉलबैक चेन से ठीक पहले रखें:

  1. /system पार्टीशन में OEMCustomEmoji.ttf नाम का अपना फ़ॉन्ट रखें.
  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 फ़ाइल से पहले रखें.

दूसरा चरण पूरा करने के बाद, बदला गया ग्लिफ़ मूल NotoColorEmoji.ttf के बजाय Modified\NotoColorEmoji.ttf में दिखता है. Google ये सुझाव देता है:

  • इस फ़ॉन्ट में सिर्फ़ ज़रूरी ग्लिफ़ है.
  • मूल NotoColorEmoji.ttf फ़ाइल में, बिना बदलाव किए गए ग्लिफ़ असाइन करें, ताकि इससे, आपके डिवाइसों के डिज़ाइन में किए गए हर बदलाव की जानकारी मिलती है. ये बदलाव आने वाले इमोजी रिलीज़ में किए जाएंगे.

ग्लिफ़ हटाएं: NotoColorEmoji.ttf फ़ाइल से ग्लिफ़ हटाने के लिए, फ़ॉलो करें चरण 1 और 2 को चुनें और अपने Cmap में glyph ID = 0 डालें.

क्षेत्रीय फ़्लैग का इस्तेमाल करें: अगर टारगेट ग्लिफ़ एक क्षेत्रीय फ़्लैग है, तो अनजान देश के कोड के तौर पर glyph आईडी. (country code = "ZZ" का इस्तेमाल करें.)

टोफ़ू ग्लिफ़ बनाएं: आपके पास अपने हिसाब से टोफ़ू ग्लिफ़ आईडी सेट करने का भी विकल्प है ताकि पासवर्ड का इस्तेमाल किया जा सके. जब glyphID = 0 के बारे में जानकारी दी जाती है, तो मिलते-जुलते ऐप्लिकेशन इसे “ग्लिफ़ उपलब्ध नहीं है”. उदाहरण के लिए, इस एट्रिब्यूट का इस्तेमाल करने पर, Paint#hasGlyph ऐप्लिकेशन, false दिखाता है.

अन्य फ़ॉन्ट फ़ाइलों को बदलें या उनमें बदलाव करें

अन्य फ़ॉन्ट बदलने या उनमें बदलाव करने के लिए, कस्टमाइज़ेशन स्थानीय बाज़ार की ज़रूरतों के हिसाब से TTF फ़ाइलों में बदलाव करना. ऐसी फ़ॉन्ट फ़ाइलें जिनके बारे में जानकारी नहीं है रनटाइम के दौरान, एओएसपी में अपडेट किए गए डेटा को अनदेखा कर दिया जाता है और उसे अपडेट नहीं किया जाता है. Google इसे अनदेखा करता है आपके डिवाइस में अज्ञात फ़ॉन्ट. इसमें वे फ़ॉन्ट फ़ाइलें शामिल हैं जिनमें बदलाव किए गए थे AOSP में सभी फ़ॉन्ट इस्तेमाल करें.

हालांकि, फ़ॉन्ट अपडेट Google की ओर से GMS Core में किया जाता है, लेकिन सामान्य फ़ॉन्ट अपडेट यह तरीका सभी OEM के लिए उपलब्ध है. OEM, इसका इस्तेमाल करके अतिरिक्त फ़ॉन्ट अपडेटर इंस्टॉल कर सकते हैं मीटिंग से जुड़ी ज़रूरी शर्तें, फ़ॉन्ट फ़ाइलें साइन करना, में दिए गए चरण और रनटाइम के फ़ॉन्ट में बदलाव करना.

शर्तें पूरी करें

फ़ॉन्ट अपडेट करने का तरीका, fs-verity Linux कर्नेल सुविधा का इस्तेमाल करता है. पुष्टि करें कि आपका डिवाइस fs-verity का पालन करता है और सर्टिफ़िकेट को अपने डिवाइस में शामिल करें.

फ़ॉन्ट फ़ाइलों पर हस्ताक्षर करें

फ़ॉन्ट फ़ाइलें जोखिम भरे संसाधन होती हैं, इसलिए उनकी पुष्टि भरोसेमंद कुंजियों से की जानी चाहिए. उन सभी फ़ॉन्ट फ़ाइलों की ध्यान से समीक्षा करें जिन्हें अपडेट करना है और अपने निजी पासकोड दबाएं. हस्ताक्षर fs-verity के साथ काम करने वाला होना चाहिए.

रनटाइम के फ़ॉन्ट को अपडेट करें

FontManger के सिस्टम ऐप्लिकेशन, फ़ॉन्ट को अपडेट करता है. FontManager ऐप्लिकेशन उपलब्ध कराता है हाल ही में इंस्टॉल किए गए सिस्टम फ़ॉन्ट का स्टेटस और फ़ॉन्ट फ़ाइलों को अपडेट करने की सुविधा हस्ताक्षर के साथ. ऐप्लिकेशन अपडेट करने के लिए, UPDATE_FONT signature|privileged को जोड़ें ऐप्लिकेशन के लिए अनुमति वाली सूची की अनुमति, और अपने मेनिफ़ेस्ट में सबमिट करें.

अपने ऐप्लिकेशन के अपडेटर को UPDATE_FONT signature|privileged की अनुमति दें फ़ंक्शन का इस्तेमाल करना होगा.