নন-এ / বি সিস্টেম আপডেট

A / B পার্টিশন ছাড়াই পুরানো অ্যান্ড্রয়েড ডিভাইসগুলিতে, ফ্ল্যাশ স্পেসে সাধারণত নিম্নলিখিত পার্টিশন থাকে:

বুট
লিনাক্স কার্নেল এবং একটি নূন্যতম রুট ফাইল সিস্টেম (একটি র‌্যাম ডিস্কে লোড) রয়েছে। এটি সিস্টেম এবং অন্যান্য পার্টিশন মাউন্ট করে এবং সিস্টেম পার্টিশনে অবস্থিত রানটাইম শুরু করে।
পদ্ধতি
অ্যান্ড্রয়েড ওপেন সোর্স প্রকল্প (এওএসপি) এ সোর্স কোড রয়েছে এমন সিস্টেম অ্যাপ্লিকেশন এবং লাইব্রেরি রয়েছে। স্বাভাবিক ক্রিয়াকলাপের সময়, এই পার্টিশনটি কেবল পঠনযোগ্য মাউন্ট করা হয়; এর সামগ্রীগুলি কেবল একটি ওটিএ আপডেটের সময় পরিবর্তিত হয়।
বিক্রেতা
সিস্টেম অ্যাপ্লিকেশন ও লাইব্রেরির যে সোর্স কোড অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট (AOSP) উপলব্ধ নেই রয়েছে। সাধারণ ক্রিয়াকলাপের সময়, এই পার্টিশনটি কেবল পঠনযোগ্য মাউন্ট করা হয়; এর সামগ্রীগুলি কেবল একটি ওটিএ আপডেটের সময় পরিবর্তিত হয়।
ব্যবহারকারী তথ্য
ব্যবহারকারীর দ্বারা ইনস্টল করা অ্যাপ্লিকেশন ইত্যাদির সাহায্যে সংরক্ষিত ডেটা সংরক্ষণ করে etc.
ক্যাশে
কয়েকটি অ্যাপ্লিকেশন দ্বারা ব্যবহৃত অস্থায়ী হোল্ডিং এরিয়া (এই পার্টিশনে অ্যাক্সেস করার জন্য বিশেষ অ্যাপের অনুমতি প্রয়োজন) এবং ডাউনলোড করা ওটিএ আপডেট প্যাকেজগুলির সঞ্চয় করার জন্য। অন্যান্য প্রোগ্রামগুলি যে কোনও সময় ফাইলগুলি অদৃশ্য হয়ে যেতে পারে এই প্রত্যাশা সহ এই স্থানটি ব্যবহার করে। কিছু ওটিএ প্যাকেজ ইনস্টলেশনগুলির ফলে এই পার্টিশনটি পুরোপুরি মুছে ফেলা হতে পারে। ক্যাশেতে একটি ওটিএ আপডেট থেকে আপডেট লগগুলিও রয়েছে।
পুনরুদ্ধার
একটি দ্বিতীয় সম্পূর্ণ লিনাক্স সিস্টেম রয়েছে যার মধ্যে একটি কার্নেল এবং বিশেষ পুনরুদ্ধারের বাইনারি রয়েছে যা একটি প্যাকেজ পড়ে এবং অন্যান্য সামগ্রীগুলি আপডেট করার জন্য এর সামগ্রীগুলি ব্যবহার করে।
বিবিধ
ওটিএ প্যাকেজ প্রয়োগ করার সময় ডিভাইসটি পুনরায় চালু করার ক্ষেত্রে ডিভাইসটি পুনরায় চালু করার ক্ষেত্রে এটি কী করছে সে সম্পর্কে কিছু তথ্য রক্ষার জন্য পুনরুদ্ধারের মাধ্যমে ক্ষুদ্র পার্টিশন ব্যবহার করা হয়।

একটি ওটিএ আপডেটের জীবন

একটি সাধারণ ওটিএ আপডেটে নিম্নলিখিত পদক্ষেপগুলি থাকে:

  1. ডিভাইস ওটিএ সার্ভারগুলির সাথে নিয়মিত চেক ইন করে এবং আপডেট প্যাকেজের URL এবং ব্যবহারকারীকে বর্ণনা করার জন্য একটি স্ট্রিং স্ট্রিং সহ আপডেটের উপলব্ধতার বিষয়ে অবহিত হয়।
  2. কোনও ক্যাশে বা ডেটা পার্টিশনে ডাউনলোডগুলি আপডেট করুন এবং এর ক্রিপ্টোগ্রাফিক স্বাক্ষরটি / /system/etc/security/otacerts.zip এ শংসাপত্রগুলির বিরুদ্ধে যাচাই করা আছে। ব্যবহারকারী আপডেট ইনস্টল করতে অনুরোধ জানানো হয়।
  3. ডিভাইসগুলি পুনরুদ্ধার মোডে পুনরায় বুট হয়, যার মধ্যে পুনরুদ্ধারের পার্টিশনে কার্নেল এবং সিস্টেম বুট পার্টিশনে কার্নেলের পরিবর্তে বুট হয়।
  4. রিকভারি বাইনারি init দ্বারা শুরু হয়। এটি /cache/recovery/command কমান্ড-লাইন আর্গুমেন্টগুলি খুঁজে পায় যা এটি ডাউনলোড করা প্যাকেজটিতে নির্দেশ করে।
  5. পুনরুদ্ধারটি প্যাকেজটির ক্রিপ্টোগ্রাফিক স্বাক্ষরটি /res/keys (পুনরুদ্ধারের পার্টিশনে থাকা র্যাম ডিস্কের অংশ) পাবলিক কীগুলির বিরুদ্ধে পরীক্ষা করে against
  6. প্যাকেজ থেকে ডেটা টানা হয় এবং প্রয়োজনীয় হিসাবে বুট, সিস্টেম এবং / অথবা বিক্রেতার পার্টিশন আপডেট করতে ব্যবহৃত হয়। সিস্টেম পার্টিশনে থাকা নতুন ফাইলগুলির মধ্যে একটিতে নতুন পুনরুদ্ধারের পার্টিশনের বিষয়বস্তু রয়েছে।
  7. ডিভাইসগুলি স্বাভাবিকভাবে রিবুট হয়।
    1. নতুন আপডেট হওয়া বুট পার্টিশনটি লোড করা হয়েছে এবং এটি নতুন আপডেট হওয়া সিস্টেম পার্টিশনে মাউন্ট করে এবং বাইনারিগুলি প্রয়োগ করতে শুরু করে।
    2. স্বাভাবিক প্রারম্ভের অংশ হিসাবে, সিস্টেম পছন্দসই সামগ্রীগুলির (যা পূর্বে /system ফাইল হিসাবে সঞ্চিত ছিল) বিপরীতে পুনরুদ্ধার পার্টিশনের সামগ্রীগুলি পরীক্ষা করে। এগুলি পৃথক, সুতরাং পুনরুদ্ধারের পার্টিশনটি পছন্দসই সামগ্রীগুলির সাথে পুনরায় সংযুক্ত করা হয়। (পরবর্তী বুটগুলিতে, পুনরুদ্ধার পার্টিশনে ইতিমধ্যে নতুন বিষয়বস্তু রয়েছে, সুতরাং কোনও পুনর্বিবেচনার প্রয়োজন নেই)

সিস্টেম আপডেট শেষ! আপডেট লগগুলি /cache/recovery/last_log. #

প্যাকেজ আপডেট করুন

আপডেট প্যাকেজটি একটি .zip ফাইল যা এক্সিকিউটেবল বাইনারি META-INF/com/google/android/update-binary ধারণ করে। প্যাকেজে স্বাক্ষর যাচাই করার পরে, recovery এই বাইনারিটিকে /tmp এবং বাইনারি চালায়, নিম্নলিখিত যুক্তিগুলি পাস করে:

  • বাইনারি এপিআই সংস্করণ নম্বর আপডেট করুন । আর্গুমেন্টগুলি আপডেট বাইনারি পরিবর্তনে পাস হলে এই সংখ্যাটি বৃদ্ধি পায়।
  • কমান্ড পাইপের ফাইল বর্ণনাকারী । আপডেট প্রোগ্রামটি এই পাইপটি ব্যবহার করে রিকভারি বাইনারিগুলিতে ফিরে কমান্ডগুলি পাঠাতে ব্যবহার করতে পারে, বেশিরভাগ ইউআই পরিবর্তনের জন্য যেমন ব্যবহারকারীর অগ্রগতি নির্দেশ করে।
  • আপডেট প্যাকেজের ফাইল নাম.zip ফাইল

একটি আপডেট প্যাকেজ আপডেট বাইনারি হিসাবে স্থিতিযুক্ত লিঙ্কযুক্ত যে কোনও বাইনারি ব্যবহার করতে পারে। ওটিএ প্যাকেজ নির্মাণ সরঞ্জামগুলি আপডেটেটর প্রোগ্রাম ( bootable/recovery/updater ) ব্যবহার করে, যা একটি সাধারণ স্ক্রিপ্টিং ভাষা সরবরাহ করে যা অনেকগুলি ইনস্টলেশন কাজ করতে পারে। আপনি ডিভাইসে চলমান অন্য কোনও বাইনারি স্থান পরিবর্তন করতে পারেন।

আপডেটেটর বাইনারি সম্পর্কিত বিশদের জন্য, সিনট্যাক্সটি সংশোধন করুন এবং বিল্টিন ফাংশনগুলি দেখুন ওডিএ প্যাকেজগুলির অভ্যন্তরে

পূর্ববর্তী রিলিজগুলি থেকে স্থানান্তরিত হচ্ছে

অ্যান্ড্রয়েড 2.3 / 3.0 / 4.0 রিলিজ থেকে স্থানান্তরিত করার সময়, বড় পরিবর্তনটি হ'ল সি + ফাংশনগুলির একটি সেট থেকে সি ++ অবজেক্টগুলিতে সি ফাংশনের একটি সেট থেকে সমস্ত ডিভাইস-নির্দিষ্ট কার্যকারিতা রূপান্তর। নিম্নলিখিত সারণিতে পুরানো ফাংশন এবং নতুন পদ্ধতির তালিকা দেওয়া হয়েছে যা মোটামুটি সমতুল্য উদ্দেশ্য পূরণ করে:

সি ফাংশন সি ++ পদ্ধতি
ডিভাইস_ডেকোরি_স্টার্ট () ডিভাইস :: রিকভারিস্টার্ট ()
ডিভাইস_টোগল_ডিজপ্লে ()
ডিভাইস_বুবু_নাও ()
রিকভারিউআই :: চেককি ()
(এছাড়াও পুনরুদ্ধারআইআই :: ইসকীপ্রেসড) ()
ডিভাইস হ্যান্ডল_কি () ডিভাইস :: হ্যান্ডেলমেনুকি ()
ডিভাইস_পারফর্ম_অ্যাকশন () ডিভাইস :: ইনভোকমেনু আইটেম ()
ডিভাইস_উইপ_ডাটা () ডিভাইস :: ওয়াইপডাটা ()
ডিভাইস_ইউইনিট () স্ক্রিনের পুনরুদ্ধারআইআই :: উদ্যোগ ()

পুরানো ফাংশনগুলিকে নতুন পদ্ধতিতে রূপান্তর করা যুক্তিসঙ্গতভাবে সোজা হওয়া উচিত। আপনার নতুন ডিভাইস সাবক্লাসের একটি উদাহরণ তৈরি করতে এবং ফেরত দিতে নতুন make_device() ফাংশন যুক্ত করতে ভুলবেন না।