Google अश्वेत समुदायों के लिए नस्लीय इक्विटी को आगे बढ़ाने के लिए प्रतिबद्ध है। देखो कैसे।
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

सामान्य प्रणाली छवियाँ

जेनेरिक सिस्टम इमेज (GSI) एंड्रॉइड डिवाइस के लिए समायोजित कॉन्फ़िगरेशन के साथ एक सिस्टम इमेज है। यह अनमॉडिफाइड एंड्रॉइड ओपन सोर्स प्रोजेक्ट (AOSP) कोड के साथ एक शुद्ध एंड्रॉइड कार्यान्वयन माना जाता है जो कि एंड्रॉइड 8.1 या उच्चतर चलाने वाला कोई भी एंड्रॉइड डिवाइस सफलतापूर्वक चला सकता है।

जीएसआई का उपयोग वीटीएस और सीटीएस-ऑन-जीएसआई परीक्षण चलाने के लिए किया जाता है। एंड्रॉइड डिवाइस की सिस्टम छवि को GSI के साथ बदल दिया जाता है, फिर वेंडर टेस्ट सूट (VTS) और संगतता टेस्ट सूट (CTS) के साथ परीक्षण किया जाता है ताकि यह सुनिश्चित हो सके कि डिवाइस एंड्रॉइड के नवीनतम संस्करण के साथ विक्रेता के इंटरफेस को सही ढंग से लागू करता है।

GSI के साथ आरंभ करने के लिए, GSI कॉन्फ़िगरेशन (और अनुमत संस्करण), प्रकार (Android GSI और लिगेसी GSI), और विक्रेता बायनेरिज़ और VNDK निर्भरता के विवरण के लिए निम्नलिखित अनुभागों की समीक्षा करें। जब आप GSI का उपयोग करने के लिए तैयार हों, तो अपने डिवाइस लक्ष्य के लिए GSI डाउनलोड करें और उसका निर्माण करें , फिर Android डिवाइस पर GSI फ़्लैश करें

जीएसआई कॉन्फ़िगरेशन और संस्करण

वर्तमान Android GSI में निम्न कॉन्फ़िगरेशन है:

  • तिगुना। जीएसआई में एंड्रॉइड 8.0 में पेश किए गए एचआईडीएल-आधारित वास्तुशिल्प परिवर्तनों (जिसे ट्रेबल के रूप में भी जाना जाता है) के लिए पूर्ण समर्थन शामिल है, जिसमें एचआईडीएल इंटरफेस के लिए समर्थन भी शामिल है । आप किसी भी Android डिवाइस पर HSIL विक्रेता इंटरफ़ेस का उपयोग करने वाले GSI का उपयोग कर सकते हैं। (अधिक जानकारी के लिए, आर्किटेक्चर संसाधन देखें।)
  • बूट सत्यापित करें। GSI में एक सत्यापित बूट समाधान (जैसे vboot 1.0 या AVB ) शामिल नहीं है। एंड्रॉइड 9 या उससे पहले लॉन्च होने वाले डिवाइस के लिए जीएसआई को फ्लैश करने के लिए, डिवाइस में सत्यापित बूट को अक्षम करने के लिए एक विधि होनी चाहिए।
  • फाइल सिस्टम। GSI ext4 फ़ाइल सिस्टम का उपयोग करता है।
  • विभाजन लेआउट। जीएसआई सिस्टम--रूट विभाजन लेआउट का उपयोग करता है

वर्तमान Android GSI में निम्नलिखित प्रमुख संस्करण शामिल हैं:

  • सीपीयू वास्तुकला। विभिन्न CPU निर्देशों (ARM, x86, आदि) और CPU बिटनेस (32 बिट या 64 बिट) के लिए समर्थन।

ट्रेबल अनुपालन परीक्षणों के लिए GSI लक्ष्य

अनुपालन परीक्षण के लिए उपयोग किए जाने वाले जीएसआई को एंड्रॉइड संस्करण द्वारा निर्धारित किया जाता है जो डिवाइस के साथ लॉन्च होता है।

उपकरण का प्रकार लक्ष्य बनाएं
Android 10 के साथ लॉन्च होने वाले डिवाइस aosp_$arch-user
Android 9 के साथ लॉन्च होने वाले डिवाइस aosp_$arch-userdebug
Android 8.0 या Android 8.1 के साथ लॉन्च होने वाले डिवाइस aosp_$arch_ab-userdebug

सभी जीएसआई को एंड्रॉइड 10 कोडबेस से बनाया गया है, और प्रत्येक सीपीयू आर्किटेक्चर में संबंधित जीएसआई बाइनरी है ( बिल्डिंग जीएसआई में निर्माण लक्ष्यों की सूची देखें)।

Android 10 GSI परिवर्तन

Android 10 के साथ लॉन्च होने वाले डिवाइसों को अनुपालन परीक्षण के लिए Android 10 GSI का उपयोग करना चाहिए। इसमें पहले GSI से निम्नलिखित प्रमुख परिवर्तन शामिल हैं:

  • उपयोगकर्ता का निर्माण। जीएसआई में एंड्रॉइड 10 से उपयोगकर्ता बिल्ड है। एंड्रॉइड 10 में, उपयोगकर्ता बिल्ड जीएसआई का उपयोग सीटीएस-ऑन-जीएसआई / वीआईएसआई अनुपालन परीक्षण में किया जा सकता है। विस्तार के लिए डिबग रामडिस्क के साथ संदर्भ वीटीएस परीक्षण
  • अनिर्धारित प्रारूप। aosp_$arch लक्ष्य के साथ GSI बिना प्रारूप वाले प्रारूप में बनाए गए हैं। यदि आवश्यक हो तो एक अनिर्दिष्ट GSI को विरल प्रारूप में बदलने के लिए आप img2simg का उपयोग कर सकते हैं।
  • प्रणाली के रूप में जड़। विरासत GSI बिल्ड लक्ष्य जिसका नाम aosp_$arch_a , को चरणबद्ध किया गया था। रैमडिस्क और नॉन-सिस्टम- aosp_$arch_ab -रूट के साथ एंड्रॉइड 8 या 8.1 से एंड्रॉइड 10 में अपग्रेड किए गए उपकरणों के लिए, विरासत जीएसआई aosp_$arch_ab उपयोग करें। रैमडिस्क में उन्नत init सिस्टम-जैसे-रूट लेआउट के साथ ओईएम system.img का समर्थन करता है।

CTS-on-GSI के साथ Android 9 या 10 पर लॉन्च होने वाले उपकरणों का परीक्षण करने के लिए, Android GSI बिल्ड लक्ष्य का उपयोग करें।

विरासत जीएसआई

लीगेसी GSIs का नाम प्रत्यय _ab (उदाहरण के लिए, aosp_arm64_ab ) है। ये GSI एंड्रॉइड 10 सोर्स ट्री से बनाए गए हैं, लेकिन इसमें एंड्रॉइड 8 या अपडेट किए गए डिवाइस के लिए निम्नलिखित पिछड़े-संगत कॉन्फ़िगरेशन शामिल हैं:

  • 32-बिट उपयोगकर्ता स्थान + 32-बिट बाइंडर इंटरफ़ेस। 32-बिट GSIs 32-बिट बाइंडर इंटरफ़ेस का उपयोग करना जारी रख सकते हैं।
  • 8.1 वीएनडीके। डिवाइस शामिल 8.1 VNDK का उपयोग कर सकते हैं।
  • माउंट निर्देशिका। कुछ विरासत डिवाइस माउंट पॉइंटर्स (उदाहरण के लिए, /bluetooth , /firmware/radio , और /persist ) के रूप में निर्देशिकाओं का उपयोग करते हैं।

सीटीएस-ऑन-जीएसआई के साथ एंड्रॉइड 8 या 8.1 पर लॉन्च होने वाले उपकरणों का परीक्षण करने के लिए, लिगेसी जीएसआई बिल्ड लक्ष्यों का उपयोग करें।

Android 9 GSI बदल जाता है

Android 9 GSI में पहले GSI से निम्नलिखित प्रमुख परिवर्तन शामिल हैं:

  • जीएसआई और एमुलेटर का विलय करता है। जीएसआई को एमुलेटर उत्पादों की सिस्टम छवियों से बनाया गया है, उदाहरण के लिए, aosp_arm64 और aosp_x86
  • प्रणाली के रूप में जड़। एंड्रॉइड के पिछले संस्करणों में, ए / बी अपडेट का समर्थन नहीं करने वाले डिवाइस /system निर्देशिका के तहत सिस्टम छवि को माउंट कर सकते हैं। एंड्रॉइड 9 में, सिस्टम इमेज की जड़ को डिवाइस के रूट के रूप में माउंट किया गया है।
  • 64-बिट बाइंडर इंटरफ़ेस। एंड्रॉइड 8.x में, 32-बिट GSIs ने 32-बिट बाइंडर इंटरफ़ेस का उपयोग किया। Android 9 32-बिट बाइंडर इंटरफ़ेस का समर्थन नहीं करता है, इसलिए 32-बिट GSI और 64-बिट GSI दोनों 64-बिट बाइंडर इंटरफ़ेस का उपयोग करते हैं।
  • VNDK प्रवर्तन। Android 8.1 में, VNDK वैकल्पिक था। Android 9 से शुरू, VNDK अनिवार्य है, इसलिए BOARD_VNDK_VERSION सेट किया जाना चाहिए।
  • संगत प्रणाली संपत्ति। Android 9 एक संगत सिस्टम प्रॉपर्टी ( PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE := true ) के लिए एक्सेस चेक सक्षम करता है।

Android 9 कीमास्टर परिवर्तन

एंड्रॉइड के पुराने संस्करणों में, Keymaster 3 या उससे कम को लागू करने वाले उपकरणों को यह सत्यापित करने के लिए आवश्यक था कि रनिंग सिस्टम द्वारा रिपोर्ट की गई संस्करण जानकारी ( ro.build.version.release और ro.build.version.security_patch ) बूटलोडर द्वारा रिपोर्ट किए गए संस्करण जानकारी से मेल खाती है। ऐसी जानकारी आमतौर पर बूट इमेज हेडर से प्राप्त की जाती थी।

एंड्रॉइड 9 और उच्चतर में, यह आवश्यकता विक्रेताओं को जीएसआई को बूट करने में सक्षम करने के लिए बदल गई है। विशेष रूप से, Keymaster सत्यापन नहीं करना चाहिए क्योंकि GSI द्वारा रिपोर्ट की गई संस्करण जानकारी विक्रेता के बूटलोडर द्वारा रिपोर्ट की गई संस्करण जानकारी से मेल नहीं खा सकती है। कीमास्टर 3 या निम्न को लागू करने वाले उपकरणों के लिए, विक्रेताओं को सत्यापन को छोड़ने के लिए कीमास्टर कार्यान्वयन को संशोधित करना चाहिए (या कीमास्टर 4 में अपग्रेड)। कीमास्टर के विवरण के लिए, हार्डवेयर-समर्थित कीस्टोर का संदर्भ लें।

विक्रेता बायनेरिज़ और VNDK निर्भरताएँ

एंड्रॉइड 10 में अपग्रेड होने वाले डिवाइस में डिवाइस पर उपयोग में आने वाले वेंडर बायनेरिज़ के संस्करण के आधार पर अलग-अलग अपग्रेड पथ होते हैं और डिवाइस को बनाने के लिए VNDK- संबंधित कॉन्फ़िगरेशन का उपयोग किया जाता है। निम्न तालिका उन्नत उपकरणों के लिए विरासत GSI समर्थन को सारांशित करती है।

उदाहरण विक्रेता
बाइनरी
संस्करण
BOARD_VNDK_VERSION विरासत जीएसआई
सिस्टम बायनेरी संस्करण
विरासत जीएसआई का समर्थन
0 8.0 (कोई भी) 10 नहीं
1 8.1 (खाली) 10 नहीं
2 8.1 current 10 हाँ
3 10 current 10 हाँ

सबसे आम समर्थित उपयोग मामला # 2 है, जहां लीगेसी जीएसआई एंड्रॉइड 8.1 पर चलने वाले उपकरणों का समर्थन करता है जो BOARD_VNDK_VERSION साथ बनाया गया था जो current सेट किया गया है।

केस # 1 समर्थित नहीं है। इस स्थिति में, विरासत जीएसआई एंड्रॉइड 8.1 पर चलने वाले उपकरणों का समर्थन नहीं करता है जहां BOARD_VNDK_VERSION बिल्ड से छोड़ा गया है। इन उपकरणों का समर्थन नहीं किया जा सकता है क्योंकि उनके विक्रेता बायनेरिज़ एंड्रॉइड 8.1 गैर-वीएनडीके साझा पुस्तकालयों पर निर्भर करते हैं, जो विरासत जीएसआई में शामिल नहीं हैं। इन उपकरणों को एक विरासत GSI के साथ संगत बनाने के लिए, आपको निम्न में से एक करना होगा:

  • BOARD_VNDK_VERSION बिना BOARD_VNDK_RUNTIME_DISABLE सक्षम करें (उपयोग केस # 2)।

    या

  • Android 10 से साझा पुस्तकालयों पर निर्भर करने के लिए विक्रेता बायनेरिज़ को पोर्ट / अपग्रेड करें (केस केस # 3 का उपयोग करें)।

GSI डाउनलोड कर रहा है

आप ci.android.com पर AOSP निरंतर एकीकरण (CI) वेबसाइट से जीयूआई डाउनलोड कर सकते हैं। यदि आपके हार्डवेयर प्लेटफ़ॉर्म के लिए GSI प्रकार डाउनलोड के लिए उपलब्ध नहीं है, तो विशिष्ट लक्ष्यों के लिए GSI के निर्माण के विवरण के लिए निम्न अनुभाग देखें।

बिल्डिंग जी.एस.आई.

एंड्रॉयड 9 से शुरू होने वाले प्रत्येक Android संस्करण एक जीएसआई शाखा नामक DESSERT -gsi (उदाहरण के लिए, AOSP पर android10-gsi एंड्रॉयड 10 पर जीएसआई शाखा है)। जीएसआई शाखाओं में सभी सुरक्षा पैच और लागू किए गए जीएसआई पैच के साथ एंड्रॉइड की सामग्री शामिल है।

जीएसआई का निर्माण करने के लिए, जीएसआई शाखा से डाउनलोड करके और जीएसआई बिल्ड लक्ष्य का चयन करके एंड्रॉइड सोर्स ट्री सेट करें। अपने डिवाइस के लिए सही GSI संस्करण का निर्धारण करने के लिए नीचे दिए गए निर्माण लक्ष्य तालिकाओं का उपयोग करें। बिल्ड पूर्ण होने के बाद, GSI सिस्टम इमेज (जो कि, system.img ) और आउटपुट फ़ोल्डर out/target/product/ generic_arm64 । बिल्ड vbmeta.img भी आउटपुट vbmeta.img , जिसका उपयोग आप Android सत्यापित बूट का उपयोग करके उपकरणों पर सत्यापित बूट को अक्षम करने के लिए कर सकते हैं।

उदाहरण के लिए, GSI निर्माण लक्ष्य aosp_arm64-userdebug को GSI शाखा android10-gsi , निम्न कमांड चलाएँ।

$ repo init -u https://android.googlesource.com/platform/manifest -b android10-gsi
$ repo sync -cq
$ source build/envsetup.sh
$ lunch aosp_arm64-userdebug
$ make -j4

Android GSI लक्ष्य बनाते हैं

निम्न GSI बिल्ड लक्ष्य Android 9 या उच्चतर पर लॉन्च होने वाले उपकरणों के लिए हैं। आर्किटेक्चर के बीच भिन्नता में कमी के कारण, एंड्रॉइड 10 में केवल चार जीएसआई उत्पाद शामिल हैं।

GSI नाम सीपीयू आर्क बाइंडर इंटरफ़ेस बिटनेस प्रणाली के रूप में जड़ लक्ष्य बनाएं
aosp_arm एआरएम 64 Y aosp_arm-user
aosp_arm-userdebug
aosp_arm64 ARM64 64 Y aosp_arm64-user
aosp_arm64-userdebug
aosp_x86 86 64 Y aosp_x86-user
aosp_x86-userdebug
aosp_x86_64 x86-64 64 Y aosp_x86_64-user
aosp_x86_64-userdebug

विरासत GSI लक्ष्य बनाते हैं

निम्न विरासत जीएसआई बिल्ड लक्ष्य एंड्रॉइड 8.0 या 8.1 से एंड्रॉइड 10 में अपग्रेड करने वाले उपकरणों के लिए हैं। लीगेसी जीएसआई नामों में एंड्रॉइड 10 जीएसआई नामों से अलग करने के लिए प्रत्यय _ab शामिल है।

GSI नाम सीपीयू आर्क बाइंडर इंटरफ़ेस बिटनेस प्रणाली के रूप में जड़ लक्ष्य बनाएं
aosp_arm_ab एआरएम 32 Y aosp_arm_ab-userdebug
aosp_arm_64b_ab एआरएम 64 Y aosp_arm_64b_ab-userdebug
aosp_arm64_ab ARM64 64 Y aosp_arm64_ab-userdebug
aosp_x86_ab 86 32 Y aosp_x86_ab-userdebug
aosp_x86_64_ab x86-64 64 Y aosp_x86_64_ab-userdebug

जीएसआई चमकती के लिए आवश्यकताएँ

एंड्रॉइड डिवाइस में अलग-अलग डिज़ाइन हो सकते हैं, इसलिए सभी उपकरणों पर लागू करने के लिए GSI चमकाने के लिए कोई सामान्य आदेश या निर्देशों का सेट नहीं है। स्पष्ट चमकती निर्देशों के लिए एंड्रॉइड डिवाइस के निर्माता के साथ जांचें। सामान्य दिशानिर्देश के रूप में निम्नलिखित चरणों का उपयोग करें:

  1. सुनिश्चित करें कि डिवाइस में निम्नलिखित हैं:
    • Treblized
    • उपकरणों को अनलॉक करने के लिए एक विधि (ताकि वे का उपयोग कर दिखाया जा सकता है fastboot )
    • सत्यापित बूट अक्षम करने के लिए एक विधि (उदाहरण के लिए, vboot 1.0 या AVB )
    • एक खुला राज्य यह Flash समर्थ के माध्यम से बनाने के लिए fastboot (सुनिश्चित करने के लिए आप का नवीनतम संस्करण है कि fastboot , एंड्रॉयड स्रोत पेड़ से इसे बनाने।)
  2. सत्यापित बूट अक्षम करें।
  3. वर्तमान सिस्टम विभाजन को मिटाएँ, फिर सिस्टम विभाजन में GSI फ़्लैश करें।
  4. उपयोगकर्ता डेटा मिटाएं और अन्य आवश्यक विभाजन (उदाहरण के लिए, उपयोगकर्ता डेटा और सिस्टम विभाजन) से डेटा साफ़ करें।
  5. डिवाइस को रिबूट करें।

उदाहरण के लिए, किसी पिक्सेल डिवाइस के लिए GSI फ़्लैश करने के लिए:

  1. fastboot मोड में बूट करें और बूटलोडर को अनलॉक करेंfastbootd समर्थन करने वाले उपकरणों को भी fastbootd में बूट करना होगा:
    $ fastboot reboot fastboot
  2. vbmeta.img करके बूट (AVB) सत्यापित करें:
    $ fastboot --disable-verification flash vbmeta vbmeta.img
  3. सिस्टम विभाजन में GSI को मिटाएँ और फ़्लैश करें:
    $ fastboot erase system
    $ fastboot flash system system.img
    
  4. उपयोगकर्ता डेटा मिटाएं और अन्य आवश्यक विभाजन (उदाहरण के लिए, उपयोगकर्ता डेटा और सिस्टम विभाजन) से डेटा साफ़ करें:
    $ fastboot -w
  5. रीबूट:
    $ fastboot reboot
एंड्रॉइड 10 उपकरणों पर जिनके छोटे सिस्टम विभाजन हैं, जीएसआई को फ्लैश करते समय निम्न त्रुटि संदेश दिखाई दे सकता है:
    Resizing 'system_a'    FAILED (remote: 'Not enough space to resize partition')
    fastboot: error: Command failed
उत्पाद विभाजन को हटाने और सिस्टम विभाजन के लिए स्थान खाली करने के लिए निम्न आदेश का उपयोग करें। यह GSI को फ्लैश करने के लिए अतिरिक्त स्थान प्रदान करता है:
$ fastboot delete-logical-partition product_a
पोस्टफ़िक्स _a को सिस्टम विभाजन के स्लॉट आईडी से मेल खाना चाहिए, जैसे कि इस उदाहरण में system_a

जीएसआई में योगदान

Android GSI विकास में आपके योगदान का स्वागत करता है। आप इसमें शामिल हो सकते हैं और GSI को बेहतर बनाने में मदद कर सकते हैं:

  • एक GSI पैच बनाना। DESSERT -gsi एक विकास शाखा नहीं है और AOSP मास्टर शाखा से केवल चेरीपिक्स स्वीकार करता है, इसलिए GSI पैच जमा करने के लिए, आपको यह करना होगा:
    1. पैच को AOSP master शाखा में जमा करें।
    2. पैच को DESSERT -gsi
    3. चेरीपिक की समीक्षा करने के लिए एक बग दर्ज करें।
  • GSI बग्स की रिपोर्ट करना या अन्य सुझाव देना। रिपोर्टिंग कीड़े में दिए गए निर्देशों की समीक्षा करें, फिर GSI बग ब्राउज़ करें या फ़ाइल करें।

टिप्स

एडीबी का उपयोग करके नेविगेशन बार मोड को बदलना

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

adb exec-out cmd overlay enable-exclusive com.android.internal.systemui.navbar. mode

कहाँ mode हो सकता है threebutton , twobutton , gestural , और इतने पर।