कस्टम डिवाइस डेवलपमेंट

इस पेज पर, अपने डिवाइस के लिए बिल्ड सेट अप करने के दौरान किए जाने वाले कई कामों के बारे में बताया गया है.

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

फ़ास्टबूट के निर्देश, 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).

फ़्लैश लॉक की स्थिति तय करना

अगर किसी डिवाइस के लिए कस्टम फ़्लैशबूट डीमन (flashbootd) बनाया जा रहा है, तो आपको बूटलोडर और बूटलोडर लॉक की स्थिति का पता चलना चाहिए. getFlashLockState() @SystemApi, बूटलोडर की स्थिति को ट्रांसमिट करता है और PersistentDataBlockManager.getFlashLockState() सिस्टम एपीआई, ज़रूरी शर्तें पूरी करने वाले डिवाइसों पर बूटलोडर के लॉक स्टेटस की जानकारी दिखाता है.

रिटर्न वैल्यू स्वास्थ्य से जुड़ी स्थितियां
FLASH_LOCK_UNKNOWN यह वैल्यू सिर्फ़ Android 7.x या उसके बाद के वर्शन पर अपग्रेड करने वाले उन डिवाइसों से मिलती है जो पहले, फ़्लैश लॉक की स्थिति पाने के लिए ज़रूरी बूटलोडर बदलावों के साथ काम नहीं करते थे. हालांकि, अगर वे फ़्लैश लॉक/अनलॉक करने की सुविधा के साथ काम करते थे, तो यह वैल्यू मिलती थी.
  • Android 7.x या इसके बाद के वर्शन वाले नए डिवाइसों की स्थिति FLASH_LOCK_LOCKED या FLASH_LOCK_UNLOCKED में होनी चाहिए.
  • Android 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