স্কোপ করা ভেন্ডর লগিং প্রয়োগ করা

Android 11 একটি নতুন HAL, IDumpstateDevice (version 1.1) যোগ করে। এই HAL, স্ট্যান্ডার্ড বাগ রিপোর্টে অন্তর্ভুক্ত ভেন্ডর লগ আরও কঠোরভাবে স্কোপ করার জন্য নতুন পদ্ধতি প্রকাশ করে, পাশাপাশি ব্যবহারকারীর বিল্ডকে ভেন্ডর লগিং চালু ও বন্ধ করার অনুমতি দেয় (ব্যবহারকারীর বিল্ডের জন্য ডিফল্ট হল বন্ধ)। এর ফলে, নির্দিষ্ট ধরনের সমস্যার রিপোর্টে কী কী অন্তর্ভুক্ত করা হবে সেই বিষয়ে OEM-এর আরও নিয়ন্ত্রণ থাকে।

OEM যদি এই ঐচ্ছিক HAL প্রয়োগ করার সিদ্ধান্ত নেয়, তাহলে এই ফিচারটি OEM-কে প্রভাবিত করে। SoC প্রভাবিত হতে পারে, OEM এই HAL-এর সাথে কী প্রকাশ করতে চায় তার উপর নির্ভর করে। পরিষেবা প্রদানকারীর উপর কোনও প্রভাব পড়বে না।

সমস্যার সমাধান করার জন্য আপনি কোন তথ্য প্রাসঙ্গিক বলে মনে করেন তার উপর নির্ভর করে যে আপনি বাগ রিপোর্টে কী অন্তর্ভুক্ত করবেন, তবে সাধারণত আরও বিস্তারিত তথ্য থাকলে ভালো হয়।

উদাহরণ ও সোর্স

IDumpstateDevice-এর (সঞ্চালিত) 1.0 ভার্সনের একটি ডিফল্ট প্রয়োগ আছে যা dumpstate ইউটিল লাইব্রেরি ব্যবহারের একটি উদাহরণ দেখায়: frameworks/native/cmds/dumpstate/DumpstateUtil.h. এছাড়াও, 1.1 HAL-এর একটি Cuttlefish ইমপ্লিমেন্টেশন আছে: device/google/cuttlefish/guest/monitoring/dumpstate_ext/*.

সোর্স কোড এখানে আছে:

প্রয়োগ

এই HAL প্রয়োগ করতে, android.hardware.dumpstate@1.1::IDumpstateDevice HAL ইন্টারফেস প্রয়োগ করুন। DumpstateMode-এর অনেক সম্ভাব্য ভ্যালু আছে, কিন্তু সব ভ্যালু একটি ডিভাইসে কাজ নাও করতে পারে (যেমন, Wear OS নয় এমন ডিভাইসের জন্য WEAR)।

dumpstate HAL প্রয়োগ করা ঐচ্ছিক। Android 11-এর সাথে লঞ্চ হওয়া সব নতুন ডিভাইসে IDumpstateDevice 1.1 প্রয়োগ করতেই হবে, যদি সেগুলি Dumpstate HAL প্রয়োগ করে। যেসব ডিভাইসে Android 11-এর আগে থেকেই IDumpstateDevice 1.0 প্রয়োগ করা হয়েছে, সেগুলিকে 1.1-এ আপগ্রেড করা তুলনামূলকভাবে সহজ এবং এটি করার জন্য অত্যন্ত সাজেস্ট করা হয়, কারণ এটি বাগ রিপোর্টে অন্তর্ভুক্ত অপ্রাসঙ্গিক ব্যক্তিগত তথ্যের পরিমাণ অনেক কমিয়ে দেয়।

এই ফিচারটি Android 11-এর সাথে অন্তর্ভুক্ত কোর ডাম্পস্টেট পরিবর্তনের উপরও নির্ভর করে, যা frameworks/native/cmds/dumpstate-এর অধীনে থাকে।

এই HAL প্রয়োগ করার জন্য, জিনিসগুলি সম্পূর্ণভাবে কাজ করানোর জন্য, নির্দিষ্ট কিছু সিস্টেম প্রপার্টি, ফাইল ইত্যাদিতে কিছু SEPolicy পরিবর্তন করতে হবে এবং বাগ রিপোর্টে সব প্রাসঙ্গিক তথ্য ডাম্প করার জন্য ভেন্ডরদের সাথে কোঅর্ডিনেট করতে হবে।

কাস্টমাইজেশন

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

আপনি dumpstate.cpp (যা IDumpstateDevice HAL পদ্ধতিকে কল করে) পরিবর্তন করতে পারেন, যেমন, dumpstateBoard সম্পূর্ণ করার জন্য দেওয়া টাইমআউট বাড়াতে। তবে, dumpstate.cpp-এর মূল লজিক অপরিবর্তিত থাকতে হবে।

টাইমআউট যেকোনও ভ্যালু হতে পারে, তবে এটি যেন বাগ রিপোর্ট সম্পূর্ণ করার জন্য প্রয়োজনীয় সময়কে অত্যধিক বাড়িয়ে না দেয়। বিশেষ করে, DumpstateMode::CONNECTIVITY অত্যন্ত সময় সংবেদনশীল এবং সমস্ত প্রাসঙ্গিক মডেম/ওয়াই-ফাই/নেটওয়ার্কিং লগ সংগ্রহ করার জন্য যত দ্রুত সম্ভব রান করতে হবে।

যাচাইকরণ

IDumpstateDevice ইমপ্লিমেন্টেশনের জন্য VTS টেস্ট আছে এবং সাধারণ BugreportManager কার্যকারিতার জন্য কার্যকরী ইউনিট টেস্ট আছে।

সাজেস্ট করা ম্যানুয়াল টেস্ট কেস হল frameworks/base/core/tests/bugreports/src/android/server/bugreports/BugreportManagerTest.java।