कस्टम डिवाइस विकास

यदि आप अपने डिवाइस के लिए बिल्ड सेट अप कर रहे हैं तो यह पृष्ठ कई कार्यों की व्याख्या करता है जिन्हें आपको करने की आवश्यकता हो सकती है।

एक कस्टम फ़्लैश कॉन्फ़िगरेशन बनाएं

फास्टबूट निर्देशों को fastboot-info.txt नामक एक आर्टिफैक्ट में परिभाषित किया गया है। यदि आप एकाधिक लक्ष्य बनाते हैं, तो आपके पास $OUT_DIR में एकाधिक fastboot-info.txt फ़ाइलें होंगी। और, $ANDROID_PRODUCT_OUT आपके द्वारा बनाए गए सबसे मौजूदा लक्ष्य की ओर इशारा करता है। यह पृष्ठ फास्टबूट को निष्पादित करने के लिए कार्यों को सूचीबद्ध करता है और इसे m fastboot_info का उपयोग करके पुन: उत्पन्न किया जा सकता है। आप fastboot-info.txt फ़ाइल को संशोधित करके कस्टम फ़्लैशिंग लॉजिक पेश कर सकते हैं।

fastboot-info.txt फ़ाइल इन आदेशों का समर्थन करती है:

  • flash %s : किसी दिए गए विभाजन को फ़्लैश करता है. वैकल्पिक तर्कों में --slot-other, filename_path , and --apply-vbmeta` शामिल हैं।
  • update-super : सुपर विभाजन को अद्यतन करता है।
  • if-wipe : यदि वाइप निर्दिष्ट किया गया है तो सशर्त रूप से कुछ अन्य घटक चलाता है।
  • erase %s : किसी दिए गए विभाजन को मिटा देता है (केवल if-wipe के साथ संयोजन में उपयोग किया जा सकता है -> उदाहरण के लिए if-wipe erase cache )।

फ़्लैश लॉक स्थिति निर्धारित करें

यदि आप किसी डिवाइस के लिए कस्टम फ्लैशबूट डेमॉन (फ्लैशबूटडी) बना रहे हैं, तो आपको बूटलोडर और बूटलोडर लॉक स्थिति प्राप्त करने में सक्षम होना चाहिए। getFlashLockState() @SystemApi बूटलोडर स्थिति को प्रसारित करता है और PersistentDataBlockManager.getFlashLockState() सिस्टम API अनुरूप उपकरणों पर बूटलोडर की लॉक स्थिति लौटाता है।

प्रतिलाभ की मात्रा स्थितियाँ
FLASH_LOCK_UNKNOWN केवल एंड्रॉइड 7.x या उच्चतर पर अपग्रेड करने वाले उपकरणों द्वारा लौटाया जाता है जो पहले फ्लैश लॉक स्थिति प्राप्त करने के लिए आवश्यक बूटलोडर परिवर्तनों का समर्थन नहीं करते थे यदि वे फ्लैशिंग लॉक/अनलॉक क्षमता का समर्थन करते थे।
  • Android 7.x या उच्चतर संस्करण चलाने वाले नए उपकरण या तो FLASH_LOCK_LOCKED या FLASH_LOCK_UNLOCKED स्थिति में होने चाहिए।
  • एंड्रॉइड 7.x या उच्चतर पर अपग्रेड करने वाले डिवाइस जो फ्लैशिंग अनलॉक/लॉक क्षमता का समर्थन नहीं करते हैं, उन्हें FLASH_LOCK_LOCKED स्थिति लौटानी चाहिए।
FLASH_LOCK_LOCKED किसी भी डिवाइस द्वारा लौटाया गया जो फ्लैशिंग लॉक/अनलॉक का समर्थन नहीं करता है (अर्थात, डिवाइस हमेशा लॉक रहता है), या कोई भी डिवाइस जो फ्लैशिंग लॉक/अनलॉक का समर्थन करता है और लॉक स्थिति में है।
FLASH_LOCK_UNLOCKED किसी भी उपकरण द्वारा लौटाया गया जो फ्लैशिंग लॉक/अनलॉक का समर्थन करता है और अनलॉक स्थिति में है।

निर्माताओं को लॉक और अनलॉक बूटलोडर वाले उपकरणों द्वारा लौटाए गए मानों का परीक्षण करना चाहिए। उदाहरण के लिए, AOSP में एक संदर्भ कार्यान्वयन शामिल है जो ro.boot.flash.locked बूट प्रॉपर्टी के आधार पर एक मान लौटाता है। उदाहरण कोड निम्नलिखित निर्देशिकाओं में स्थित है:

  • frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
  • frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java