কাস্টম ডিভাইস উন্নয়ন

এই পৃষ্ঠায় এমন কয়েকটি কাজ ব্যাখ্যা করা হয়েছে যা আপনার নিজের ডিভাইসের জন্য বিল্ড সেট আপ করার সময় আপনাকে সম্পাদন করতে হতে পারে।

একটি কাস্টম ফ্ল্যাশ কনফিগারেশন তৈরি করুন

ফাস্টবুট নির্দেশাবলী 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() সিস্টেম API সামঞ্জস্যপূর্ণ ডিভাইসগুলিতে বুটলোডারের লক স্ট্যাটাস ফেরত দেয়।

ফেরত মান শর্তাবলী
FLASH_LOCK_UNKNOWN যেসব ডিভাইস ফ্ল্যাশিং লক/আনলক করার ক্ষমতা সমর্থন করত এবং পূর্বে ফ্ল্যাশ লক স্ট্যাটাস পাওয়ার জন্য প্রয়োজনীয় বুটলোডার পরিবর্তন সমর্থন করত না, শুধুমাত্র অ্যান্ড্রয়েড ৭.x বা তার উচ্চতর সংস্করণে আপগ্রেড করার পরেই এটি ফেরত আসবে।
  • অ্যান্ড্রয়েড ৭.x বা তার উচ্চতর সংস্করণে চালিত নতুন ডিভাইসগুলোকে অবশ্যই FLASH_LOCK_LOCKED অথবা FLASH_LOCK_UNLOCKED অবস্থায় থাকতে হবে।
  • যেসব ডিভাইস অ্যান্ড্রয়েড ৭.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