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

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

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

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