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

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

फ़्लैश करने के लिए, अपनी पसंद के मुताबिक कॉन्फ़िगरेशन बनाना

Fastboot के निर्देश, fastboot-info.txt नाम के आर्टफ़ैक्ट में तय किए जाते हैं. अगर एक से ज़्यादा टारगेट के लिए बिल्ड किया जाता है, तो $OUT_DIR में fastboot-info.txt की एक से ज़्यादा फ़ाइलें होंगी. साथ ही, $ANDROID_PRODUCT_OUT उस सबसे नए टारगेट की ओर इशारा करता है जिसे आपने बिल्ड किया है. इस पेज पर, fastboot को एक्ज़ीक्यूट करने के टास्क की सूची दी गई है. इसे 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) बनाया जा रहा है, तो बूटलोडर और बूटलोडर लॉक की स्थिति का पता लगाना ज़रूरी है. The 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