রেসকিউ পার্টি

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

অ্যান্ড্রয়েড 8.0-এ এমন একটি বৈশিষ্ট্য রয়েছে যা ক্র্যাশ লুপে আটকে থাকা মূল সিস্টেমের উপাদানগুলি লক্ষ্য করলে একটি "রেসকিউ পার্টি" পাঠায়। রেসকিউ পার্টি তারপর ডিভাইস পুনরুদ্ধার করার জন্য কর্মের একটি সিরিজের মাধ্যমে বৃদ্ধি. শেষ অবলম্বন হিসাবে, রেসকিউ পার্টি ডিভাইসটিকে পুনরুদ্ধার মোডে রিবুট করে এবং ব্যবহারকারীকে ফ্যাক্টরি রিসেট করার জন্য অনুরোধ করে।

এই রেসকিউ বৈশিষ্ট্যগুলি Android সামঞ্জস্যতা সংজ্ঞা দস্তাবেজ দ্বারা প্রয়োজন হয় না, কিন্তু এখনও সমর্থন কেস কমাতে দরকারী হতে পারে.

বাস্তবায়ন

Android 8.0-এ রেসকিউ পার্টি ডিফল্টরূপে সক্রিয় থাকে এবং বাস্তবায়ন /services/core/java/com/android/server/RescueParty.java এ থাকে। রেসকিউ পার্টি বুট এবং ক্র্যাশ ইভেন্ট সম্পর্কে তথ্য পায় এবং শুরু করে যদি:

  • সিস্টেম_সার্ভারটি 5 মিনিটে 5 বারের বেশি পুনরায় চালু হয়।
  • একটি স্থায়ী সিস্টেম অ্যাপ 30 সেকেন্ডে 5 বারের বেশি ক্র্যাশ হয়।

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

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

যেহেতু প্রতিটি রেসকিউ লেভেল একটি ডিভাইস পুনরায় চালু হওয়ার আগে 5 মিনিট পর্যন্ত যোগ করতে পারে, ডিভাইস নির্মাতাদের কাস্টম রেসকিউ লেভেল যোগ করা উচিত নয়। একটি অকার্যকর ডিভাইসের সাথে সময় বৃদ্ধির ফলে ব্যবহারকারীরা তাদের ডিভাইসটি স্ব-পুনরুদ্ধার করার পরিবর্তে একটি সমর্থন বা ওয়ারেন্টি তদন্ত শুরু করার সম্ভাবনা বেশি করে।

বৈধতা

ডিভাইসটিতে একটি সক্রিয় USB ডেটা সংযোগ থাকলে সমস্ত উদ্ধার ইভেন্ট দমন করা হয় কারণ এটি একটি শক্তিশালী সংকেত যে কেউ ডিভাইসটি ডিবাগ করছে।

এই দমন ওভাররাইড করতে, চালান:

adb shell setprop persist.sys.enable_rescue 1

সেখান থেকে, আপনি একটি সিস্টেম বা UI ক্র্যাশ লুপ ট্রিগার করতে পারেন।

একটি নিম্ন-স্তরের system_server ক্র্যাশ লুপ ট্রিগার করতে, চালান:

adb shell setprop debug.crash_system 1

একটি মধ্য-স্তরের SystemUI ক্র্যাশ লুপ ট্রিগার করতে, চালান:

adb shell setprop debug.crash_sysui 1

উভয় ক্র্যাশ লুপ রেসকিউ লজিক শুরু করে। পরবর্তী পরিদর্শন এবং ডিবাগিংয়ের জন্য /data/system/uiderrors.txt এ সংরক্ষিত স্থায়ী PackageManager লগগুলিতেও সমস্ত উদ্ধার অভিযান লগ করা হয়। এই ক্রমাগত লগগুলি "প্যাকেজ সতর্কতা বার্তা" বিভাগের অধীনে প্রতিটি বাগ রিপোর্টে অন্তর্ভুক্ত করা হয়েছে।