Android 15 की शुरुआत में, वैरिएबल फ़ॉन्ट यहां रेंडर किए जाते हैं
का इस्तेमाल करें. इस अपडेट के बाद, वेंडर को ये काम करने होंगे
नए वैरिएबल फ़ॉन्ट कॉन्फ़िगरेशन को इसमें जोड़ें
font_fallback.xml
की जगह fonts.xml
का इस्तेमाल किया जाएगा, क्योंकि fonts.xml
अब काम नहीं करता है.
ज़्यादा जानकारी के लिए, वैरिएबल फ़ॉन्ट के लिए सहायता देखें.
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
तरीके के आर्ग्युमेंट; तो यह फ़ॉन्ट सेटिंग शुरू करता है
ऐप्लिकेशन की प्रोसेस में इस्तेमाल किया जा सकता है.
वैरिएबल फ़ॉन्ट के साथ काम करता है
Android 15 की शुरुआत से, वैरिएबल के फ़ॉन्ट कॉन्फ़िगरेशन इस तरह बनाए जा सकते हैं
इसमें बताया गया है
font_fallback.xml
इसके लिए, नीचे दिए गए फ़ॉर्मैट का इस्तेमाल करें:
<family lang="und-Ethi" supportedAxes="wght,ital">
<font>NotoSansEthiopic-VF.ttf</font>
</family>
इस फ़ॉर्मैट में, वैरिएबल फ़ॉन्ट में
एक अतिरिक्त supportedAxes
एट्रिब्यूट. supportedAxes
एट्रिब्यूट
इस्तेमाल किए जा सकने वाले ऐक्सिस टैग की कॉमा-सेपरेटेड लिस्ट. के साथ
Android 15 वाले वर्शन में, सिर्फ़ wght
और ital
ऐक्सिस इस्तेमाल किए जा सकते हैं
बताया गया है.
अगर supportedAxes
एट्रिब्यूट की जानकारी नहीं दी गई है, तो font
नोड इस तौर पर काम करता है:
वैरिएबल फ़ॉन्ट के एक इंस्टेंस के लिए स्टैटिक फ़ॉन्ट डाला गया है. इसके लिए, axis
का इस्तेमाल किया गया है
बच्चे.
अगर supportedAxes
एट्रिब्यूट तय किया जाता है, तो सिस्टम डाइनैमिक तौर पर
रनटाइम के दौरान दिए गए वज़न और स्टाइल की वैल्यू के लिए फ़ॉन्ट इंस्टेंस.
डेवलपर android.graphics.fonts.SystemFonts#getAvailableFonts
का इस्तेमाल कर सकते हैं
Java API या ASystemFontIterator_open
NDK API, ताकि सिस्टम से इंस्टॉल की गई फ़ॉन्ट फ़ाइलों की सूची मिल सके. इस पर जानकारी के लिए
ऐसे डेवलपर एपीआई जो इस अपडेट के साथ काम करते हैं, देखें
बेहतर OpenType वैरिएबल फ़ॉन्ट एपीआई
और buildVariableFamily
.
फ़ॉन्ट को पसंद के मुताबिक बनाएं
कुछ OEM अपने ब्रैंड दिखाने के लिए, AOSP में फ़ॉन्ट फ़ाइलें इंस्टॉल करते हैं या बदलते हैं. यह सुविधा, Android 12 पर काम करती है. हालांकि, यह सुविधा साथ ही, यह भी ज़रूरी है कि आप डिवाइसों में इमोजी फ़ॉन्ट अपडेट करते रहें. ऐसे OEM जिनमें बदलाव नहीं किया जाता है या इमोजी फ़ॉन्ट फ़ाइलों को अपडेट करने के लिए इस सुविधा की ज़रूरत नहीं है.
Google, GMS की मदद से फ़ॉन्ट फ़ाइलों को अपडेट करता है, खास तौर पर NotoColorEmoji
फ़ाइलों को
कोर, इसलिए NotoColorEmoji.ttf
फ़ाइल को
/system
विभाजन और उसे यहां से न निकालें
/frameworks/base/data/fonts/fonts.xml
.
अपने फ़ॉन्ट को पसंद के मुताबिक बनाने के इन तीन तरीकों पर ध्यान दें:
NotoColorEmoji.ttf
फ़ाइल की जगह, OEM ब्रैंड वाले इमोजी फ़ॉन्ट का इस्तेमाल करें.- अपने स्थानीय बाज़ार की ज़रूरतों के हिसाब से,
NotoColorEmoji.ttf
फ़ाइल में बदलाव करें. - अन्य फ़ॉन्ट फ़ाइलों को बदलें या उनमें बदलाव करें.
अगर एओएसपी में इमोजी के फ़ॉन्ट में बदलाव नहीं किया जा रहा है, तो आपको कोई कार्रवाई करने की ज़रूरत नहीं है. अगर आपने आप इमोजी फ़ॉन्ट को कस्टमाइज़ करना चाहते हैं, तो नीचे दिए गए निर्देशों का पालन करें सेक्शन.
NotoColorEmoji.ttf की जगह OEM-ब्रैंड वाले इमोजी फ़ॉन्ट इस्तेमाल करें
NotoColorEmoji.ttf
फ़ाइल को OEM ब्रैंड वाले इमोजी फ़ॉन्ट की फ़ाइल से बदलने के लिए,
इमोजी फ़ॉन्ट को फ़ॉन्ट फ़ॉलबैक चेन से ठीक पहले रखें:
/system
पार्टीशन मेंOEMCustomEmoji.ttf
नाम का अपना फ़ॉन्ट रखें./frameworks/base/data/fonts/fonts.xml
में बदलाव करें (और/frameworks/base/data/fonts/font-fallback.xml
इंच Android 15 और उसके बाद के वर्शन) के लिए उपलब्ध है, जैसा कि इस कोड में बताया गया है:<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 में बदलाव करें
अपने स्थानीय मार्केट की ज़रूरतों के मुताबिक बदलाव करने के लिए, यह तरीका अपनाएं:
- किसी दूसरे नाम से अपनी खुद की
NotoColorEmoji
फ़ाइल बनाएं; उदाहरण के लिए, इसेModified\_NotoColorEmoji.ttf
नाम दें. - इसे मूल
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
के साथ काम करने वाला होना चाहिए.
रनटाइम के फ़ॉन्ट को अपडेट करें
FontManager
का सिस्टम ऐप्लिकेशन, फ़ॉन्ट को अपडेट करता है. FontManager
ऐप्लिकेशन
नवीनतम इंस्टॉल किए गए सिस्टम फ़ॉन्ट की स्थिति और फ़ॉन्ट को अपडेट करने की क्षमता उपलब्ध कराता है
हस्ताक्षर वाली फ़ाइलें. ऐप्लिकेशन अपडेट करने के लिए, कॉल करने के लिए
UPDATE_FONT signature|privileged
अनुमति
ऐप्लिकेशन की अनुमति वाली सूची,
और अपने मेनिफ़ेस्ट में सबमिट करें.
अपने ऐप्लिकेशन के अपडेटर को UPDATE_FONT signature|privileged
की अनुमति दें
फ़ंक्शन का इस्तेमाल करना होगा.