এই ডেভেলপার গাইডে ব্যাখ্যা করা হয়েছে যে কীভাবে আপনার ডিভাইস নীতি কন্ট্রোলার (DPC) ডিভাইস ব্যবহারকারীর হয়ে Android সিস্টেম আপডেট ম্যানেজ করতে পারে।
ভূমিকা
Android ডিভাইস সিস্টেমে এবং অ্যাপ্লিকেশন সফ্টওয়্যারে ওভার-দ্য-এয়ার (OTA) আপডেট পেতে এবং ইনস্টল করতে পারে। Android ডিভাইসের ব্যবহারকারীকে জানায় যে সিস্টেম আপডেট উপলভ্য আছে এবং ডিভাইসের ব্যবহারকারী আপডেটটি সাথে সাথে বা পরে ইনস্টল করতে পারবেন।
আপনার DPC ব্যবহার করে, একজন আইটি অ্যাডমিন ডিভাইস ব্যবহারকারীর জন্য সিস্টেম আপডেট ম্যানেজ করতে পারেন। DPC সম্পূর্ণ ম্যানেজ করা ডিভাইসের মালিক হতে পারে (ডিভাইসের মালিক বলা হয়) অথবা অফিস প্রোফাইলের মালিক হতে পারে (প্রোফাইলের মালিক বলা হয়)। সারণী ১ দেখায় যে কীভাবে ডিভাইসের মালিকরা সিস্টেম আপডেটগুলি পরিচালনা করতে পারেন, যখন প্রোফাইলের মালিকরা শুধুমাত্র সিস্টেম আপডেট সম্পর্কে তথ্য রিপোর্ট করতে পারেন।
সারণী ১: DPC-এর জন্য উপলভ্য টাস্ক মালিকানা মোডের উপর নির্ভর করে
বাকি থাকা আপডেট চেক করুন
বাকি থাকা আপডেট হল ডিভাইসের জন্য সিস্টেম আপডেট যা এখনও ইনস্টল করা হয়নি। আপনার DPC, আইটি অ্যাডমিনদের কোন ডিভাইসে সিস্টেম আপডেট পেন্ডিং আছে তা চেক করতে সাহায্য করতে পারে—এবং সম্ভবত ডিভাইস ব্যবহারকারীদের অবিলম্বে গুরুত্বপূর্ণ আপডেট ইনস্টল করতে বলতে পারে।
Android 8.0 (API লেভেল ২৬) বা তার পরবর্তী ভার্সনে চলা ডিভাইসের মালিক ও প্রোফাইলের মালিক
কোনও ডিভাইসে সিস্টেম আপডেট বাকি আছে কিনা তা চেক করতে পারবেন। কল
DevicePolicyManager.getPendingSystemUpdate()
যা ডিভাইস আপ-টু-ডেট থাকলে null রিটার্ন করে। সিস্টেম আপডেট পেন্ডিং থাকলে,
পদ্ধতিটি আপডেট সম্পর্কে তথ্য প্রদান করে।
বাকি থাকা আপডেট সম্পর্কে আরও জানুন
getPendingSystemUpdate() কল করার পরে, আপনি ফেরত আসা
SystemUpdateInfo ভ্যালু চেক করে দেখতে পারেন যাতে পেন্ডিং আপডেট সম্পর্কে আরও জানতে পারেন। নিম্নলিখিত
উদাহরণ থেকে আপনি জানতে পারবেন যে ডিভাইসের জন্য কোনও পেন্ডিং আপডেট কখন প্রথম
উপলভ্য হয়েছিল:
Kotlin
val firstAvailable = dpm.getPendingSystemUpdate(adminName)?.receivedTime firstAvailable?.let { Log.i(TAG, "Update first available: ${Date(firstAvailable)}") }
জাভা
SystemUpdateInfo updateInfo = dpm.getPendingSystemUpdate(adminName); if (updateInfo != null) { Long firstAvailable = updateInfo.getReceivedTime(); Log.i(TAG, "Update first available: " + new Date(firstAvailable)); }
সিস্টেম কলব্যাক
কোনও আপডেট উপলভ্য হলে, Android সিস্টেম ডিভাইস মালিকদের নতুন আপডেট সম্পর্কে বিজ্ঞপ্তি দেয়। Android 8.0 বা তার পরবর্তী যেকোনও ভার্সনে, সিস্টেম প্রোফাইলের মালিককেও বিজ্ঞপ্তি পাঠায়।
আপনার DeviceAdminReceiver সাবক্লাসে, onSystemUpdatePending() কলব্যাক ওভাররাইড করুন। কলব্যাক পাওয়ার জন্য আপনার DPC-এর জন্য রেজিস্টার বা বিজ্ঞাপন করার প্রয়োজন নেই। সিস্টেমটি একটি আপডেটের জন্য একাধিকবার এই পদ্ধতিটি কল করতে পারে, তাই উত্তর দেওয়ার আগে আপডেটের স্ট্যাটাস চেক করুন। কলব্যাকে সিস্টেম আপডেট সম্পর্কে আরও জানতে
getPendingSystemUpdate() নম্বরে কল করুন। আপনি কীভাবে এটি করতে পারেন তা নিম্নলিখিত উদাহরণ থেকে দেখুন:
Kotlin
/** * Called when a new update is available. */ override fun onSystemUpdatePending(context: Context?, intent: Intent?, receivedTime: Long) { // System update information is supported in API level 26 or higher. if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { return } val updateInfo = getManager(context) .getPendingSystemUpdate(getWho(context)) ?: return if (updateInfo.securityPatchState == SystemUpdateInfo.SECURITY_PATCH_STATE_TRUE) { // Perhaps install because this is a security patch. // ... } }
জাভা
/** * Called when a new update is available. */ public void onSystemUpdatePending (Context context, Intent intent, long receivedTime) { // System update information is supported in API level 26 or higher. if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { return; } SystemUpdateInfo updateInfo = getManager(context) .getPendingSystemUpdate(getWho(context)); if (updateInfo == null) { return; } if (updateInfo.getSecurityPatchState() == SystemUpdateInfo.SECURITY_PATCH_STATE_TRUE) { // Perhaps install because this is a security patch. // ... } }
কোনও সিস্টেমে একাধিক DPC থাকলে, যেমন সম্পূর্ণ ম্যানেজ করা ডিভাইসে অফিস প্রোফাইল, ডিভাইসের মালিক এবং প্রোফাইলের মালিক দুজনেই কলব্যাক পান।
নীতি আপডেট করুন
ডিভাইসের মালিক, ডিভাইসের জন্য লোকাল সিস্টেম আপডেট নীতি সেট করে, কখন আপডেট ইনস্টল করা হবে তা নিয়ন্ত্রণ করতে পারেন। সিস্টেম আপডেট নীতি তিন ধরনের হতে পারে:
- অটোমেটিক
- সিস্টেম আপডেট উপলভ্য হওয়ার সাথে সাথেই (ব্যবহারকারীর ইন্টার্যাকশন ছাড়াই) সেটি ইনস্টল করে। এই ধরনের নীতি সেট করলে, স্থগিত থাকা বা রক্ষণাবেক্ষণের জন্য অপেক্ষা করা যেকোনও আপডেট অবিলম্বে ইনস্টল করা হয়।
- উইন্ডো করা হয়েছে
- দৈনিক রক্ষণাবেক্ষণের সময় সিস্টেম আপডেট ইনস্টল করে (ব্যবহারকারীর ইন্টার্যাকশন ছাড়াই)। নতুন উইন্ডোযুক্ত নীতি তৈরি করার সময়, দিনের মিনিট হিসেবে, দৈনিক রক্ষণাবেক্ষণ উইন্ডোর শুরু ও শেষ সেট করুন।
- পিছিয়ে গেছে
- ৩০ দিনের জন্য সিস্টেম আপডেট ইনস্টল করা স্থগিত রাখে। ৩০ দিনের সময়সীমা শেষ হওয়ার পরে, সিস্টেম ডিভাইস ব্যবহারকারীকে আপডেট ইনস্টল করার জন্য প্রম্পট করে।
স্থগিতকরণের সময়সীমা
সিস্টেম প্রতিটি আপডেটকে ৩০ দিনের জন্য একবার স্থগিত করার অনুমতি দেয়। সিস্টেম প্রথমবার আপডেট স্থগিত করলে এই সময়সীমা শুরু হয় এবং স্থগিত রাখার নতুন নীতি সেট করলে এই সময়সীমা বাড়ানো হবে না।
স্থগিত করা ছাড়াও, Android অন্যান্য কারণে আপডেট ইনস্টল করতে নাও পারে, যেমন কানেক্টিভিটি না থাকা, ডিস্ক স্টোরেজে খালি জায়গা কম থাকা বা ব্যাটারির চার্জ কম থাকা।
এই সময়সীমার মধ্যে অন্য কোনও আপডেট উপলভ্য হলে, সিস্টেম ৩০-দিনের স্থগিতকরণের টাইমার রিসেট করে—এর ফলে আইটি অ্যাডমিনরা সম্মিলিত সিস্টেম আপডেট করার সুযোগ পান। নতুন আপডেট ছাড়াই ৩০ দিন কেটে গেলে, সিস্টেম ব্যবহারকারীকে বাকি থাকা সব আপডেট ইনস্টল করার জন্য প্রম্পট করে। পরে, নতুন সিস্টেম আপডেট উপলভ্য হলে, ৩০ দিনের সময়সীমা আবার শুরু হয়।
কীভাবে নীতি সেট করবেন
আপনি Android 8.0 (API লেভেল ২৬) বা তার পরবর্তী ভার্সনে আপডেট সংক্রান্ত নীতি সেট করতে পারবেন। ডিভাইস কখন সিস্টেম আপডেট ইনস্টল করবে তা নির্দিষ্ট করতে, উপরে উল্লেখ করা তিনটি প্রকারের মধ্যে একটি ব্যবহার করে SystemUpdatePolicy-এর একটি ইনস্ট্যান্স তৈরি করুন। কোনও নীতি সেট করতে, আপনার ডিভাইস মালিক DevicePolicyManager পদ্ধতি কল করেন
setSystemUpdatePolicy()। নিম্নলিখিত কোড
স্যাম্পেল থেকে আপনি জানতে পারবেন যে কীভাবে এটি করতে পারেন। উইন্ডো করা নীতির উদাহরণ দেখতে, SystemUpdatePolicy ডকুমেন্টেশন দেখুন।
Kotlin
// Create the system update policy to postpone installation for 30 days. val policy = SystemUpdatePolicy.createPostponeInstallPolicy() // Get a DevicePolicyManager instance to set the policy on the device. val dpm = context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager val adminName = getComponentName(context) // Set the policy. dpm.setSystemUpdatePolicy(adminName, policy)
জাভা
// Create the system update policy to postpone installation for 30 days. SystemUpdatePolicy policy = SystemUpdatePolicy.createPostponeInstallPolicy(); // Get a DevicePolicyManager instance to set the policy on the device. DevicePolicyManager dpm = (DevicePolicyManager) context .getSystemService(Context.DEVICE_POLICY_SERVICE); ComponentName adminName = getComponentName(context); // Set the policy. dpm.setSystemUpdatePolicy(adminName, policy);
আপনি একবার নীতি ইনস্ট্যান্স তৈরি করলে তা পরিবর্তন করা যাবে না। ডিভাইস কখন আপডেট ইনস্টল করবে তা পরিবর্তন করতে, আপনি একটি নতুন নীতি তৈরি ও সেট করতে পারেন। ডিভাইস থেকে কোনও নীতি সরাতে, policy আর্গুমেন্ট হিসেবে null পাস করে setSystemUpdatePolicy() কল করুন।
আপনার DPC কোনও নীতি সরিয়ে দেওয়ার পরে, ডিভাইসের ব্যবহারকারী উপলভ্য সিস্টেম আপডেটের জন্য
বিজ্ঞপ্তি দেখতে পান।
ডিভাইসের জন্য বর্তমান নীতি পেতে অ্যাপ getSystemUpdatePolicy()-এ কল করতে পারে। এই পদ্ধতি null রিটার্ন করলে, এর অর্থ হল
বর্তমানে কোনও নীতি সেট করা নেই।
ফ্রিজ পিরিয়ড
ছুটির দিন বা অন্যান্য ব্যস্ত সময়ের মতো গুরুত্বপূর্ণ সময় OS ভার্সন ফ্রিজ করতে, ডিভাইস মালিকরা ৯০ দিন পর্যন্ত সিস্টেম আপডেট সাসপেন্ড করতে পারেন। কোনও ডিভাইস ফ্রিজ পিরিয়ডে থাকলে, সেটি এইভাবে কাজ করে:
- ডিভাইসটি বাকি থাকা সিস্টেম আপডেট সম্পর্কে কোনও বিজ্ঞপ্তি পায় না।
- OS-এ সিস্টেম আপডেট ইনস্টল করা হয়নি।
- ডিভাইস ব্যবহারকারীরা সেটিংস থেকে ম্যানুয়ালি সিস্টেম আপডেট চেক করতে পারবেন না।
ডিভাইস অনির্দিষ্টকালের জন্য ফ্রিজ হওয়া আটকাতে, সিস্টেম যেকোনও নির্দিষ্ট ফ্রিজ পিরিয়ডের পরে বাধ্যতামূলক ৬০ দিনের বাফার পিরিয়ড এনফোর্স করে। মনে রাখবেন, সিস্টেম আপডেট ফ্রিজ করে দিলে, ডিভাইস গুরুত্বপূর্ণ আপডেট নাও পেতে পারে।
আপনি আপডেট নীতিতে ফ্রিজ পিরিয়ড সেট করেছেন। নীতি সেট না করে আপনি ফ্রিজ পিরিয়ড সেট করতে পারবেন না। আপনার সেট করা ফ্রিজ পিরিয়ডের বাইরে ডিভাইস থাকলে, সাধারণ নীতি (অটোমেটিক, উইন্ডো করা বা স্থগিত করা) প্রযোজ্য হয়।
ফ্রিজ পিরিয়ড কীভাবে সেট করবেন
আপনি Android 9 (API লেভেল ২৮) বা তার পরবর্তী ভার্সনে ফ্রিজ পিরিয়ড সেট করতে পারবেন। ডিভাইসের মালিক ডিভাইসের জন্য নীতি সেট করার আগে সিস্টেম আপডেট নীতিতে ফ্রিজ পিরিয়ড সেট করেন। ধাপগুলি হল:
- নতুন (বা বর্তমান) সিস্টেম আপডেট নীতি তৈরি করুন।
setFreezePeriods()কল করে নীতিতে ফ্রিজ পিরিয়ড সেট করুন।setSystemUpdatePolicy()কল করে ডিভাইসের জন্য নীতি ও ফ্রিজ পিরিয়ড সেট করুন।
ফ্রিজ পিরিয়ড প্রতি বছর পুনরাবৃত্তি হয় বলে, পিরিয়ডের শুরু ও শেষের তারিখ মাস ও দিনের ভ্যালু হিসেবে দেখানো হয়। শুরুর দিনটি অবশ্যই আগের কোনও ফ্রিজ পিরিয়ড শেষ হওয়ার অন্তত ৬০ দিন পরে হতে হবে। নিচের উদাহরণে দেখানো হয়েছে যে আগে থেকে থাকা সিস্টেম আপডেট নীতির জন্য আপনি কীভাবে দুটি ফ্রিজ পিরিয়ড সেট করতে পারেন:
Kotlin
// Get the existing policy from the DevicePolicyController instance. val policy = dpm.systemUpdatePolicy ?: return try { // Set the two annual freeze periods on the policy for our retail // point-of-sale devices. val summerSale = FreezePeriod( MonthDay.of(6, 1), MonthDay.of(7, 31)) // Jun 1 - Jul 31 inclusive val winterSale = FreezePeriod( MonthDay.of(11, 20), MonthDay.of(1, 12)) // Nov 20 - Jan 12 inclusive policy.freezePeriods = Arrays.asList(summerSale, winterSale) // Set the policy again to activate the freeze periods. dpm.setSystemUpdatePolicy(adminName, policy) } catch (e: SystemUpdatePolicy.ValidationFailedException) { // There must be previous periods recorded on the device because // summerSale and winterSale don’t overlap and are separated by more // than 60 days. Report the overlap ... }
জাভা
// Get the existing policy from the DevicePolicyController instance. SystemUpdatePolicy policy = dpm.getSystemUpdatePolicy(); try { // Set the two annual freeze periods on the policy for our // retail point-of-sale devices. FreezePeriod summerSale = new FreezePeriod( MonthDay.of(6, 1), MonthDay.of(7, 31)); // Jun 1 - Jul 31 inclusive FreezePeriod winterSale = new FreezePeriod( MonthDay.of(11, 20), MonthDay.of(1, 12)); // Nov 20 - Jan 12 inclusive policy.setFreezePeriods(Arrays.asList(summerSale, winterSale)); // Don’t forget to set the policy again to activate the freeze periods. dpm.setSystemUpdatePolicy(adminName, policy); } catch (SystemUpdatePolicy.ValidationFailedException e) { // There must be previous periods recorded on the device because summerSale // and winterSale don’t overlap and are separated by more than 60 days. // Report the overlap ... }
শুরু ও শেষ হওয়ার দিন, দুটিই অন্তর্ভুক্ত। শুরুর দিনটি শেষ দিনের থেকে
বেশি হলে (যেমন আগের উদাহরণে winterSale), ফ্রিজ
পিরিয়ড পরের বছর পর্যন্ত বাড়ানো হয়।
সিস্টেম আপডেট নীতিতে ফ্রিজ পিরিয়ড সেট করার সময়, Android এইসব প্রয়োজনীয়তা পরীক্ষা করে:
- কোনও ফ্রিজ পিরিয়ড ৯০ দিনের বেশি হয় না।
- ফ্রিজ পিরিয়ডের মধ্যে ব্যবধান অন্তত ৬০ দিন।
- ফ্রিজ পিরিয়ড ওভারল্যাপ করে না।
- কোনও ডুপ্লিকেট ফ্রিজ পিরিয়ড নেই।
কোনও ডিভাইসের জন্য সিস্টেম আপডেট নীতি সেট করার সময়, Android এইসব টেস্টের পুনরাবৃত্তি করে এবং ডিভাইসের জন্য বর্তমান বা অতীতের যেকোনও ফ্রিজ পিরিয়ড অন্তর্ভুক্ত করে।
এইসব টেস্টের মধ্যে কোনও একটিতে সমস্যা হলে,
Android SystemUpdatePolicy.ValidationFailedException থ্রো করে।
সিস্টেম আপডেট নীতি অবজেক্টে আগে থেকে সেট করা ফ্রিজ পিরিয়ডের তালিকা পেতে,
ইনস্টল করা সব অ্যাপ
SystemUpdatePolicy.getFreezePeriods() কল করতে পারে। নিম্নলিখিত
উদাহরণটি ডিভাইসের ফ্রিজ পিরিয়ড লগ করার জন্য এই পদ্ধতিকে কল করে:
Kotlin
// Log any freeze periods that might be set on a system update policy. dpm.systemUpdatePolicy?.freezePeriods?.forEach { Log.i(TAG, "Freeze period: $it") }
জাভা
// Log any freeze periods that might be set on a system update policy. SystemUpdatePolicy currentPolicy = dpm.getSystemUpdatePolicy(); if (currentPolicy != null) { // A policy might not be set. for (FreezePeriod freezePeriod : currentPolicy.getFreezePeriods()) { Log.i(TAG, "Freeze period: " + freezePeriod.toString()); } }
লিপ ইয়ার
ফ্রিজ পিরিয়ড গণনা করার জন্য Android, ISO 8601 ক্যালেন্ডার (গ্রেগরিয়ান ক্যালেন্ডারও বলা হয়) ব্যবহার করে এবং এটি লিপ ইয়ারকে উপেক্ষা করে। এর অর্থ হল, ২৯ ফেব্রুয়ারি তারিখটি বৈধ তারিখ হিসেবে গণ্য করা হয় না এবং ২৮ ফেব্রুয়ারি হিসেবেই ধরা হয়। তাই, ফ্রিজ পিরিয়ডের সময়সীমা গণনা করার সময় ২৯ ফেব্রুয়ারিকে ধরা হয় না।
ডেভেলপমেন্ট ও টেস্টিং
আপনার DPC-এর সিস্টেম আপডেট ফিচার ডেভেলপ ও টেস্ট করার সময়, আপনাকে হয়ত অনেক ফ্রিজ পিরিয়ড তৈরি করতে হবে। Android যেহেতু আগের ফ্রিজ পিরিয়ডের মধ্যে ৬০ দিনের ব্যবধান চেক করে, তাই আগের পিরিয়ডের রেকর্ড না মুছে আপনি হয়ত নতুন ফ্রিজ পিরিয়ড সেট করতে পারবেন না। ডিভাইসের ফ্রিজ পিরিয়ড রেকর্ড মুছতে, Android ডিবাগ ব্রিজ (adb) শেলে নিম্নলিখিত কমান্ড রান করুন:
adb shell dpm clear-freeze-period-record
সিস্টেম আপডেটের জন্য ইউজার ইন্টারফেস বন্ধ করা আছে কিনা তা চেক করে আপনি কনফার্ম করতে পারবেন যে ডিভাইসটি ফ্রিজ পিরিয়ডে আছে কিনা।
Google Play সিস্টেম আপডেট (Mainline)
Google Play সিস্টেম আপডেট (যাকে মেইনলাইন আপডেটও বলা হয়) অটোমেটিক ডাউনলোড হয়ে যায়, তবে ইনস্টল করার জন্য ডিভাইস রিবুট করতে হয়। এইসব আপডেট অটোমেটিক রিবুট ট্রিগার করবে না এবং এর পরিবর্তে পরবর্তী ব্যবহারকারী, অ্যাডমিন বা নীতি দ্বারা শুরু করা রিবুটে ইনস্টল করা হবে। সিস্টেম আপডেট নীতির মাধ্যমে ট্রিগার করা রিবুট, সংশ্লিষ্ট Google/OEM সিস্টেম আপডেট এবং আগে ডাউনলোড করা যেকোনও Google Play সিস্টেম আপডেট ইনস্টল করবে।
এছাড়াও, Google Play সিস্টেম আপডেট ম্যানুয়ালি ইনস্টল করতে, সেটিংস > সম্পর্কে > Android ভার্সন > Google Play সিস্টেম আপডেট বিকল্পে যান।
আপডেট রোল ব্যাক করা
কিছু ক্ষেত্রে, Google Play সিস্টেম আপডেট ইনস্টল করার সময় কোনও সমস্যা হলে, ডিভাইসের আগের অবস্থা ফিরিয়ে আনতে Google Play System Update Rollbacks (GPSUR) টুল ব্যবহার করা যেতে পারে। এই টুলটি উন্নত ব্যবহারকারীদের দ্বারা ব্যবহার করা উচিত বা যখন সহায়তা কর্মীদের দ্বারা এটি করার নির্দেশ দেওয়া হয় কারণ এর ফলে ডেটা নষ্ট হতে পারে। GPSUR টুল কীভাবে ব্যবহার করবেন তা এখানে দেওয়া হল:
- আপনার মেশিনে Android ডিবাগ ব্রিজ (adb) চালু থাকলে, এগিয়ে যাওয়ার আগে adb পরিষেবা বন্ধ করুন যাতে এটি রোলব্যাক প্রসেসে
কোনও বাধা সৃষ্টি না করে। adb বন্ধ করতে,
adb kill-serverরান করুন। - GPSUR টুল খুলুন।
- টুলটিকে adb-এর মাধ্যমে আপনার টেস্ট ডিভাইসের সাথে যোগাযোগ করার অনুমতি দিতে ADB অ্যাক্সেসের অনুমতি দিন বিকল্পে ক্লিক করুন।
- নতুন ডিভাইস যোগ করুন বিকল্পে ক্লিক করুন।
- তালিকা থেকে আপনার ডিভাইস বেছে নিয়ে কানেক্ট করুন বিকল্পে ক্লিক করুন। এই তালিকায় ডিভাইসের সম্পূর্ণ নাম নাও থাকতে পারে।
- আপনার ডিভাইসের স্ক্রিনে, এই কম্পিউটার থেকে সবসময় অনুমতি দিন বিকল্প বেছে নিন এবং USB ডিবাগিং কানেকশন গ্রহণ করতে ঠিক আছে বিকল্পে ক্লিক করুন।
- আপনার ব্রাউজারে কানেক্ট করা ডিভাইস বেছে নিন।
- আপনার ডিভাইসে রোলব্যাক উপলভ্য থাকলে, পৃষ্ঠার বোতামের টেক্সট কোনও রোলব্যাক উপলভ্য নেই থেকে সাম্প্রতিক আপডেট রোলব্যাক করুন-এ পরিবর্তন হয়ে যাবে। সাম্প্রতিক আপডেট রোলব্যাক করুন বিকল্পে ক্লিক করুন।
- রোলব্যাক কনফার্ম করুন মডালে সতর্কতাগুলি পড়ে কনফার্ম করুন বিকল্পে ক্লিক করুন।
- রোলব্যাক সম্পূর্ণ হওয়ার জন্য অপেক্ষা করুন। সম্পূর্ণ হয়ে গেলে, একটি রোলব্যাক সফল হয়েছে মোডাল দেখা যাবে এবং ডিভাইস রিবুট হবে। এখন আপনার ডিভাইস আনপ্লাগ করা নিরাপদ।
অতিরিক্ত রিসোর্স
সিস্টেম আপডেট সম্পর্কে আরও জানতে, Android ওপেন সোর্স প্রোজেক্টের OTA আপডেট ডকুমেন্টেশন পড়ুন।