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

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

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

फ़ास्टबूट के निर्देशों को fastboot-info.txt नाम के आर्टफ़ैक्ट में तय किया जाता है. एक से ज़्यादा टारगेट बनाने पर, आपको fastboot-info.txt में एक से ज़्यादा fastboot-info.txt फ़ाइलें दिखेंगी.$OUT_DIR साथ ही, $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: Erases a given partition (can only be used in conjunction with if-wipe -> eg. 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