ব্লক-ভিত্তিক ওটিএ

আপনি Android 5.0 চালিত নতুন ডিভাইসগুলির জন্য ব্লক-ভিত্তিক ওভার-দ্য-এয়ার (OTA) আপডেটগুলি সক্ষম করতে পারেন৷ OTA হল সেই পদ্ধতি যার মাধ্যমে OEMs দূরবর্তীভাবে একটি ডিভাইসের সিস্টেম পার্টিশন আপডেট করে:

  • অ্যান্ড্রয়েড 5.0 এবং পরবর্তী সংস্করণগুলি ব্লক OTA আপডেটগুলি ব্যবহার করে তা নিশ্চিত করতে যে প্রতিটি ডিভাইস ঠিক একই পার্টিশন ব্যবহার করে। পৃথক ফাইলের তুলনা এবং বাইনারি প্যাচগুলি কম্পিউটিং করার পরিবর্তে, ব্লক OTA সম্পূর্ণ পার্টিশনটিকে একটি ফাইল হিসাবে পরিচালনা করে এবং একটি একক বাইনারি প্যাচ গণনা করে, ফলস্বরূপ পার্টিশনে ঠিক যে বিটগুলি রয়েছে তা নিশ্চিত করে। এটি ফাস্টবুট বা OTA এর মাধ্যমে ডিভাইস সিস্টেম ইমেজকে একই অবস্থা অর্জন করতে দেয়।
  • অ্যান্ড্রয়েড 4.4 এবং পূর্ববর্তী সংস্করণগুলি ফাইল ওটিএ আপডেটগুলি ব্যবহার করেছিল, যা নিশ্চিত করে যে ডিভাইসগুলিতে অনুরূপ ফাইলের বিষয়বস্তু, অনুমতি এবং মোড রয়েছে, তবে টাইমস্ট্যাম্পের মতো মেটাডেটা এবং অন্তর্নিহিত স্টোরেজের লেআউট আপডেট পদ্ধতির উপর ভিত্তি করে ডিভাইসগুলির মধ্যে পরিবর্তিত হওয়ার অনুমতি দেয়৷

যেহেতু ব্লক OTA নিশ্চিত করে যে প্রতিটি ডিভাইস একই পার্টিশন ব্যবহার করে, এটি সিস্টেম পার্টিশনে ক্রিপ্টোগ্রাফিকভাবে স্বাক্ষর করতে dm-verity ব্যবহার করতে সক্ষম করে। dm-verity সম্পর্কে বিস্তারিত জানার জন্য, Verified Boot দেখুন।

দ্রষ্টব্য: dm-verity ব্যবহার করার আগে আপনার অবশ্যই একটি কার্যকরী ব্লক OTA সিস্টেম থাকতে হবে।

সুপারিশ

Android 5.0 বা তার পরে চালু হওয়া ডিভাইসগুলির জন্য, ফ্যাক্টরি ROM-এ ব্লক OTA আপডেটগুলি ব্যবহার করুন৷ পরবর্তী আপডেটের জন্য একটি ব্লক-ভিত্তিক OTA তৈরি করতে, --block বিকল্পটি ota_from_target_files এ পাস করুন।

Android 4.4 বা তার আগে চালু হওয়া ডিভাইসগুলির জন্য, ফাইল OTA আপডেটগুলি ব্যবহার করুন৷ যদিও অ্যান্ড্রয়েড 5.0 বা তার পরের একটি সম্পূর্ণ ব্লক OTA পাঠানোর মাধ্যমে ডিভাইসগুলিকে স্থানান্তর করা সম্ভব, এটির জন্য একটি সম্পূর্ণ OTA পাঠাতে হবে যা একটি বর্ধিত OTA থেকে উল্লেখযোগ্যভাবে বড় (এবং তাই নিরুৎসাহিত করা হয়)।

কারণ dm-verity-এর জন্য বুটলোডার সমর্থন প্রয়োজন যা শুধুমাত্র Android 5.0 বা তার পরবর্তী সংস্করণের সাথে শিপিং করা নতুন ডিভাইসগুলিতে পাওয়া যায়, আপনি বিদ্যমান ডিভাইসগুলির জন্য dm-verity সক্ষম করতে পারবেন না

অ্যান্ড্রয়েড OTA সিস্টেমে কাজ করা বিকাশকারীরা (পুনরুদ্ধার চিত্র এবং স্ক্রিপ্টগুলি যা OTAs তৈরি করে) android-ota@googlegroups.com মেইলিং তালিকায় সদস্যতা নিয়ে পরিবর্তনগুলি চালিয়ে যেতে পারে৷

ফাইল বনাম ব্লক OTAs

একটি ফাইল-ভিত্তিক OTA চলাকালীন, অ্যান্ড্রয়েড ফাইল-সিস্টেম স্তরে (ফাইল-বাই-ফাইলের ভিত্তিতে) সিস্টেম পার্টিশনের বিষয়বস্তু পরিবর্তন করার চেষ্টা করে। আপডেটটি একটি সামঞ্জস্যপূর্ণ ক্রমে ফাইলগুলি লিখতে, একটি সামঞ্জস্যপূর্ণ শেষ পরিবর্তিত সময় বা সুপারব্লক, এমনকি ব্লক ডিভাইসে একই অবস্থানে ব্লক রাখার নিশ্চয়তা দেয় না। এই কারণে, ফাইল-ভিত্তিক OTAs একটি dm-verity-সক্ষম ডিভাইসে ব্যর্থ হয়; OTA প্রচেষ্টার পরে, ডিভাইসটি বুট হয় না।

একটি ব্লক-ভিত্তিক OTA চলাকালীন, অ্যান্ড্রয়েড ডিভাইসটিকে দুটি ব্লক ইমেজের মধ্যে পার্থক্য (ফাইলের দুটি সেটের পরিবর্তে) পরিবেশন করে। আপডেটটি নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে ব্লক স্তরে (ফাইল সিস্টেমের নীচে) সংশ্লিষ্ট বিল্ড সার্ভারের বিরুদ্ধে একটি ডিভাইস বিল্ড পরীক্ষা করে:

  • সম্পূর্ণ আপডেট । সম্পূর্ণ সিস্টেম ইমেজ কপি করা সহজ এবং প্যাচ জেনারেশন সহজ করে কিন্তু বড় ইমেজ তৈরি করে যা প্যাচ প্রয়োগ করাকে ব্যয়বহুল করে তুলতে পারে।
  • ক্রমবর্ধমান আপডেট । বাইনারি ডিফার টুল ব্যবহার করলে ছোট ইমেজ তৈরি হয় এবং প্যাচ অ্যাপ্লিকেশান সহজ করে, কিন্তু প্যাচ তৈরি করার সময় মেমরি-নিবিড়।

দ্রষ্টব্য: adb fastboot সম্পূর্ণ OTA হিসাবে ডিভাইসে ঠিক একই বিট রাখে, তাই ফ্ল্যাশিং ব্লক OTA-এর সাথে সামঞ্জস্যপূর্ণ।

অপরিবর্তিত সিস্টেম আপডেট করুন

অ্যান্ড্রয়েড 5.0 চালিত অপরিবর্তিত সিস্টেম পার্টিশন সহ ডিভাইসগুলির জন্য, একটি ব্লক OTA-এর ডাউনলোড এবং ইনস্টল প্রক্রিয়া OTA ফাইলের মতোই থাকে৷ যাইহোক, OTA আপডেটে নিম্নলিখিত এক বা একাধিক পার্থক্য থাকতে পারে:

  • ডাউনলোড সাইজ

    সম্পূর্ণ ব্লক OTA আপডেটগুলি সম্পূর্ণ ফাইল OTA আপডেটের আকারের প্রায় একই আকারের, এবং ক্রমবর্ধমান আপডেটগুলি মাত্র কয়েক মেগাবাইট বড় হতে পারে।

    OTA আকারের তুলনা

    চিত্র 1. Android 5.0 এবং Android 5.1 রিলিজের মধ্যে Nexus 6 OTA আকারের তুলনা করুন (বিভিন্ন লক্ষ্য বিল্ড পরিবর্তন)

    সাধারণভাবে, ইনক্রিমেন্টাল ব্লক ওটিএ আপডেটগুলি ক্রমবর্ধমান ফাইল ওটিএ আপডেটগুলির চেয়ে বড় কারণগুলির কারণে:

    • ডেটা সংরক্ষণ । ব্লক-ভিত্তিক ওটিএগুলি ফাইল-ভিত্তিক ওটিএর চেয়ে বেশি ডেটা (ফাইল মেটাডেটা, ডিএম-ভেরিটি ডেটা, এক্সটি 4 লেআউট, ইত্যাদি) সংরক্ষণ করে।
    • গণনা অ্যালগরিদম পার্থক্য । একটি ফাইল OTA আপডেটে, যদি একটি ফাইল পাথ উভয় বিল্ডে অভিন্ন হয়, OTA প্যাকেজে সেই ফাইলের জন্য কোনো ডেটা থাকে না। একটি ব্লক OTA আপডেটে, একটি ফাইলে সামান্য বা কোন পরিবর্তন নির্ধারণ করা প্যাচ কম্পিউটেশন অ্যালগরিদমের গুণমান এবং উৎস এবং লক্ষ্য উভয় সিস্টেমে ফাইল ডেটার বিন্যাসের উপর নির্ভর করে।
  • ত্রুটিপূর্ণ ফ্ল্যাশ এবং RAM সংবেদনশীলতা . যদি একটি ফাইল দূষিত হয়, একটি ফাইল OTA ততক্ষণ পর্যন্ত সফল হয় যতক্ষণ না এটি দূষিত ফাইলটিকে স্পর্শ না করে, কিন্তু একটি ব্লক OTA ব্যর্থ হয় যদি এটি সিস্টেম পার্টিশনে কোনো দুর্নীতি সনাক্ত করে।

পরিবর্তিত সিস্টেম আপডেট করুন

Android 5.0 চালিত পরিবর্তিত সিস্টেম পার্টিশন সহ ডিভাইসগুলির জন্য:

  • ইনক্রিমেন্টাল ব্লক OTA আপডেট ব্যর্থ হয়েছে । একটি সিস্টেম পার্টিশন একটি adb remount সময় বা ম্যালওয়্যারের ফলে পরিবর্তিত হতে পারে। ফাইল OTA পার্টিশনে কিছু পরিবর্তন সহ্য করে, যেমন ফাইল যোগ করা যা উৎস বা লক্ষ্য বিল্ডের অংশ নয়। যাইহোক, ব্লক OTA পার্টিশনে সংযোজন সহ্য করে না, তাই ব্যবহারকারীদের একটি সম্পূর্ণ OTA ইনস্টল করতে হবে যে কোনো সিস্টেম পার্টিশন পরিবর্তনগুলিকে ওভাররাইট করে) অথবা ভবিষ্যতের OTAs সক্ষম করতে একটি নতুন সিস্টেম ইমেজ ফ্ল্যাশ করতে হবে।
  • পরিবর্তিত ফাইলগুলি পরিবর্তন করার প্রচেষ্টা আপডেট ব্যর্থতার কারণ । ফাইল এবং ব্লক OTA আপডেট উভয়ের জন্য, যদি OTA কোনো ফাইল পরিবর্তন করার চেষ্টা করে যা পরিবর্তন করা হয়েছে, OTA আপডেট ব্যর্থ হয়।
  • পরিবর্তিত ফাইলগুলি অ্যাক্সেস করার প্রচেষ্টা ত্রুটি তৈরি করে (শুধুমাত্র dm-verity) । ফাইল এবং ব্লক OTA আপডেট উভয়ের জন্য, যদি dm-verity সক্ষম করা থাকে এবং OTA সিস্টেম ফাইল সিস্টেমের পরিবর্তিত অংশগুলি অ্যাক্সেস করার চেষ্টা করে, OTA একটি ত্রুটি তৈরি করে।