বিক্রেতা API স্তর

ভেন্ডর এপিআই লেভেল ভেন্ডর পার্টিশন দ্বারা সমর্থিত ইন্টারফেসের সংস্করণকে বোঝায়। ইন্টারফেস দ্বিমুখী; এটি সেই API বর্ণনা করে যা ভেন্ডর পার্টিশন সিস্টেম পার্টিশনে প্রদান করে (হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার বা HAL ইন্টারফেস), এবং সেই API যেটি ভেন্ডর পার্টিশন সিস্টেম পার্টিশন থেকে প্রয়োজন (নিম্ন-স্তরের নেটিভ ডেভেলপার কিট বা LLNDK ইন্টারফেস)।

ভেন্ডর এপিআই লেভেল ভেন্ডর সফ্টওয়্যার রিকোয়ারমেন্ট (ভিএসআর) নির্ধারণ করতেও ব্যবহৃত হয়, যা কার্যকরী এবং অকার্যকর প্রয়োজনীয়তার একটি সংগ্রহ যা ভেন্ডর পার্টিশনের সফ্টওয়্যারকে অবশ্যই পূরণ করতে হবে।

এই পৃষ্ঠার অবশিষ্টাংশ ব্যাখ্যা করে যে কীভাবে সিস্টেমের বৈশিষ্ট্যগুলি ব্যবহার করা হয়, আপনার Android সংস্করণের উপর নির্ভর করে, বিক্রেতা API স্তর নির্ধারণ করতে।

বিক্রেতা নিশ্চল

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

আপনি যদি একটি Android-সামঞ্জস্যপূর্ণ ডিভাইস তৈরি করেন তবেই একটি ভেন্ডর ফ্রিজ পাওয়া যায়৷

বিক্রেতা API স্তর নির্ধারণ করুন (Android 14-QPR3 এবং পরবর্তী)

Android 14-QPR3 এবং পরবর্তীতে, ভেন্ডর এপিআই লেভেল আলাদাভাবে রিলিজ করা হয়, যার অর্থ SDK API লেভেল এবং ভেন্ডর API লেভেল সিঙ্কের বাইরে।

আলাদা রিলিজ সময়সূচীর কারণে, Android 14-QPR3 এবং পরবর্তীতে, ভেন্ডর এপিআই লেভেল সম্পূর্ণরূপে SDK API লেভেল থেকে ডিকপল করা হয়েছে। এই ডিকপলিং পরিষ্কার নিশ্চিত করতে, ভেন্ডর API লেভেলের ফর্ম্যাট হল YYYYMM (বছর এবং মাস) হিসাবে ফর্ম্যাট করা একটি তারিখ যেখানে SDK লেভেল হল একটি পূর্ণসংখ্যা৷

Android 14-QPR3 এবং পরবর্তীতে বিক্রেতা API স্তরের সাথে সম্পর্কিত নিম্নলিখিত সিস্টেম বৈশিষ্ট্য রয়েছে ( ro.vendor.api_level ):

সিস্টেম সম্পত্তি বিন্যাস বর্ণনা প্রাথমিক সেটিং
ro.board.api_level YYYYMM ভেন্ডর এপিআই লেভেল যা একটি চিপসেটের সফ্টওয়্যার সমর্থন করে। এই সম্পত্তি সব চিপসেট জন্য সেট করা হয়. এটি স্বয়ংক্রিয়ভাবে বিল্ড সিস্টেম দ্বারা সেট করা হয়।
ro.board.first_api_level YYYYMM একটি চিপসেটের সফ্টওয়্যার যেটি দিয়ে প্রথম প্রকাশ করা হয়েছিল সেই ভেন্ডর এপিআই লেভেল। এই সম্পত্তিটি শুধুমাত্র চিপসেটের একটি ফাংশন এবং SoC বিক্রেতাদের দ্বারা সেট করা হয় যদি SoC চিপসেট ভেন্ডর ফ্রিজের জন্য যোগ্য হয়। প্রাথমিক সেটিং পরে, এটি সংশোধন করা উচিত নয়. SoC বিক্রেতারা BOARD_SHIPPING_API_LEVEL ব্যবহার করে এই সেটিং সেট করে।
ro.product.first_api_level পূর্ণসংখ্যা ডিভাইসটি প্রাথমিকভাবে লঞ্চ করা হয়েছে এমন SDK API স্তর। এই সম্পত্তিটি OEM দ্বারা সেট করা হয় এবং তারপরে OS আপগ্রেড করার পরেও আপডেট করা হয় না।
ro.vendor.api_level YYYYMM বিক্রেতা API স্তর যা ডিভাইসটিকে সামগ্রিকভাবে মেনে চলতে হবে। এই টেবিলের পরে বর্ণিত.
ro.board.api_frozen বুলিয়ান ro.board.api_level প্রতিনিধিত্ব করে এমন ভেন্ডর API লেভেল চূড়ান্ত হলে এই প্রপার্টিটি true হিসেবে সেট করা হয়। এই সম্পত্তি সেট না থাকলে, এটি ডিফল্ট false
ro.llndk.api_level YYYYMM YYYYMM ফর্ম্যাটের বিক্রেতা API স্তর যা সিস্টেম পার্টিশনে বর্তমান LLNDK প্রদান করে। LLNDK পশ্চাদপদ সামঞ্জস্যপূর্ণ, তাই এই API স্তরের কম বা সমান যে কোনও বিক্রেতা চিত্র এই সিস্টেম চিত্রের সাথে ফ্ল্যাশ করা যেতে পারে। এই সম্পত্তি সিস্টেম পার্টিশন দ্বারা সেট করা হয়.

ro.vendor.api_level প্রপার্টি নিম্নলিখিত দুটি উপায়ের একটিতে প্রাপ্ত হয়:

  • যদি চিপসেট ভেন্ডর ফ্রিজের জন্য যোগ্য হয়ে থাকে:

    ro.vendor.api_level = min(
      ro.board.api_level,
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level))
    
  • চিপসেট যদি ভেন্ডর ফ্রিজের অধীনে না থাকে:

    ro.vendor.api_level =
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level)
    

AVendorSupport_getVendorApiLevelOf() পদ্ধতি একটি SDK API স্তর থেকে সংশ্লিষ্ট বিক্রেতা API স্তর নির্ধারণ করে। উদাহরণস্বরূপ AVendorSupport_getVendorApiLevelOf(35) , যেখানে 35 হল 2024 সালে প্রধান Android রিলিজের SDK API স্তর 202404 প্রদান করে, যেটি Android 14-QPR3 এর জন্য মোটামুটি তারিখ যখন বর্তমান ভেন্ডর API স্তর সেট করা হয়েছিল।

বিক্রেতা API স্তর নির্ধারণ করুন (Android 13)

ভেন্ডর এপিআই লেভেল SDK এপিআই লেভেলকে অনুসরণ করে, যা অ্যাপ-ওএস ইন্টারফেসের জন্য এবং বছরে একবার আপডেট করা হয় যখন নতুন অ্যান্ড্রয়েড প্ল্যাটফর্ম AOSP-তে প্রকাশ করা হয়।

অ্যান্ড্রয়েড 13 এ ভেন্ডর এপিআই লেভেল ( ro.vendor.api_level ) এর সাথে সম্পর্কিত নিম্নলিখিত সিস্টেম বৈশিষ্ট্য রয়েছে:

সিস্টেম সম্পত্তি বিন্যাস বর্ণনা প্রাথমিক সেটিং
ro.board.first_api_level পূর্ণসংখ্যা একটি চিপসেটের সফ্টওয়্যার যেটি দিয়ে প্রথম প্রকাশ করা হয়েছিল সেই ভেন্ডর এপিআই লেভেল। এটি শুধুমাত্র চিপসেটের একটি ফাংশন, এবং SoC বিক্রেতা বা OEM দ্বারা সংশোধন করা যাবে না। এই সম্পত্তিটি শুধুমাত্র চিপসেটের জন্য সেট করা হয়েছে যা ভেন্ডর ফ্রিজের জন্য যোগ্য device.mk ফাইলে BOARD_SHIPPING_API_LEVEL সেট করে মান প্রতিষ্ঠিত হয়।
ro.board.api_level পূর্ণসংখ্যা ভেন্ডর এপিআই লেভেল যা একটি চিপসেটের সফ্টওয়্যার সমর্থন করে। এই সম্পত্তি শুধুমাত্র বিক্রেতা ফ্রিজ জন্য যোগ্য চিপসেট জন্য সেট করা হয়. এই সম্পত্তি সব চিপসেট জন্য সেট করা হয়. প্রাথমিকভাবে, এই প্রপার্টির মান বিল্ড সিস্টেম দ্বারা ro.board.first_api_level এর মতই সেট করা হয়, কিন্তু ভেন্ডর পার্টিশন আপগ্রেড করা হলে আপডেট করা যেতে পারে।
ro.product.first_api_level পূর্ণসংখ্যা ডিভাইসটি প্রাথমিকভাবে লঞ্চ করা হয়েছে এমন SDK API স্তর। এই সম্পত্তিটি OEM দ্বারা সেট করা হয় এবং তারপরে OS আপগ্রেড করার পরেও আপডেট করা হয় না।
ro.vendor.api_level পূর্ণসংখ্যা বিক্রেতা API স্তর যা ডিভাইসটিকে সামগ্রিকভাবে মেনে চলতে হবে। এই টেবিলের পরে বর্ণিত.
ro.vndk.version পূর্ণসংখ্যা VNDK-এর সংস্করণ যার বিরুদ্ধে ভেন্ডর পার্টিশন তৈরি করা হয়েছে। এই সম্পত্তি সিস্টেম পার্টিশন দ্বারা সেট করা হয়.
ro.vendor.build.version.sdk পূর্ণসংখ্যা উৎস ট্রির SDK API স্তর যেখানে ভেন্ডর পার্টিশন তৈরি করা হয়েছিল।
ro.vendor.build.version.release পূর্ণসংখ্যা উৎস গাছের প্ল্যাটফর্ম সংস্করণ যেখানে বিক্রেতা পার্টিশন তৈরি করা হয়েছিল।
ro.vendor.build.version.release_or_codename পূর্ণসংখ্যা উৎস ট্রির কোড নাম যেখানে ভেন্ডর পার্টিশন তৈরি করা হয়েছিল।

ro.vendor.api_level প্রপার্টি স্বয়ংক্রিয়ভাবে ন্যূনতম ro.board.api_level (অথবা ro.board.first_api_level যদি ro.board.api_level সংজ্ঞায়িত করা না থাকে) এবং ro.product.first_api_level সেট করা হয়।

,

ভেন্ডর এপিআই লেভেল ভেন্ডর পার্টিশন দ্বারা সমর্থিত ইন্টারফেসের সংস্করণকে বোঝায়। ইন্টারফেস দ্বিমুখী; এটি সেই API বর্ণনা করে যা ভেন্ডর পার্টিশন সিস্টেম পার্টিশনে প্রদান করে (হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার বা HAL ইন্টারফেস), এবং সেই API যেটি ভেন্ডর পার্টিশন সিস্টেম পার্টিশন থেকে প্রয়োজন (নিম্ন-স্তরের নেটিভ ডেভেলপার কিট বা LLNDK ইন্টারফেস)।

ভেন্ডর এপিআই লেভেল ভেন্ডর সফ্টওয়্যার রিকোয়ারমেন্ট (ভিএসআর) নির্ধারণ করতেও ব্যবহৃত হয়, যা কার্যকরী এবং অকার্যকর প্রয়োজনীয়তার একটি সংগ্রহ যা ভেন্ডর পার্টিশনের সফ্টওয়্যারকে অবশ্যই পূরণ করতে হবে।

এই পৃষ্ঠার অবশিষ্টাংশ ব্যাখ্যা করে যে কীভাবে সিস্টেমের বৈশিষ্ট্যগুলি ব্যবহার করা হয়, আপনার Android সংস্করণের উপর নির্ভর করে, বিক্রেতা API স্তর নির্ধারণ করতে।

বিক্রেতা নিশ্চল

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

আপনি যদি একটি Android-সামঞ্জস্যপূর্ণ ডিভাইস তৈরি করেন তবেই একটি ভেন্ডর ফ্রিজ পাওয়া যায়৷

বিক্রেতা API স্তর নির্ধারণ করুন (Android 14-QPR3 এবং পরবর্তী)

Android 14-QPR3 এবং পরবর্তীতে, ভেন্ডর এপিআই লেভেল আলাদাভাবে রিলিজ করা হয়, যার অর্থ SDK API লেভেল এবং ভেন্ডর API লেভেল সিঙ্কের বাইরে।

আলাদা রিলিজ সময়সূচীর কারণে, Android 14-QPR3 এবং পরবর্তীতে, ভেন্ডর এপিআই লেভেল সম্পূর্ণরূপে SDK API লেভেল থেকে ডিকপল করা হয়েছে। এই ডিকপলিং পরিষ্কার নিশ্চিত করতে, ভেন্ডর API লেভেলের ফর্ম্যাট হল YYYYMM (বছর এবং মাস) হিসাবে ফর্ম্যাট করা একটি তারিখ যেখানে SDK লেভেল হল একটি পূর্ণসংখ্যা৷

Android 14-QPR3 এবং পরবর্তীতে বিক্রেতা API স্তরের সাথে সম্পর্কিত নিম্নলিখিত সিস্টেম বৈশিষ্ট্য রয়েছে ( ro.vendor.api_level ):

সিস্টেম সম্পত্তি বিন্যাস বর্ণনা প্রাথমিক সেটিং
ro.board.api_level YYYYMM ভেন্ডর এপিআই লেভেল যা একটি চিপসেটের সফ্টওয়্যার সমর্থন করে। এই সম্পত্তি সব চিপসেট জন্য সেট করা হয়. এটি স্বয়ংক্রিয়ভাবে বিল্ড সিস্টেম দ্বারা সেট করা হয়।
ro.board.first_api_level YYYYMM একটি চিপসেটের সফ্টওয়্যার যেটি দিয়ে প্রথম প্রকাশ করা হয়েছিল সেই ভেন্ডর এপিআই লেভেল। এই সম্পত্তিটি শুধুমাত্র চিপসেটের একটি ফাংশন এবং SoC বিক্রেতাদের দ্বারা সেট করা হয় যদি SoC চিপসেট ভেন্ডর ফ্রিজের জন্য যোগ্য হয়। প্রাথমিক সেটিং পরে, এটি সংশোধন করা উচিত নয়. SoC বিক্রেতারা BOARD_SHIPPING_API_LEVEL ব্যবহার করে এই সেটিং সেট করে।
ro.product.first_api_level পূর্ণসংখ্যা ডিভাইসটি প্রাথমিকভাবে লঞ্চ করা হয়েছে এমন SDK API স্তর। এই সম্পত্তিটি OEM দ্বারা সেট করা হয় এবং তারপরে OS আপগ্রেড করার পরেও আপডেট করা হয় না।
ro.vendor.api_level YYYYMM বিক্রেতা API স্তর যা ডিভাইসটিকে সামগ্রিকভাবে মেনে চলতে হবে। এই টেবিলের পরে বর্ণিত.
ro.board.api_frozen বুলিয়ান ro.board.api_level প্রতিনিধিত্ব করে এমন ভেন্ডর API লেভেল চূড়ান্ত হলে এই প্রপার্টিটি true হিসেবে সেট করা হয়। এই সম্পত্তি সেট না থাকলে, এটি ডিফল্ট false
ro.llndk.api_level YYYYMM YYYYMM ফর্ম্যাটের বিক্রেতা API স্তর যা সিস্টেম পার্টিশনে বর্তমান LLNDK প্রদান করে। LLNDK পশ্চাদপদ সামঞ্জস্যপূর্ণ, তাই এই API স্তরের কম বা সমান যে কোনও বিক্রেতা চিত্র এই সিস্টেম চিত্রের সাথে ফ্ল্যাশ করা যেতে পারে। এই সম্পত্তি সিস্টেম পার্টিশন দ্বারা সেট করা হয়.

ro.vendor.api_level প্রপার্টি নিম্নলিখিত দুটি উপায়ের একটিতে প্রাপ্ত হয়:

  • যদি চিপসেট ভেন্ডর ফ্রিজের জন্য যোগ্য হয়ে থাকে:

    ro.vendor.api_level = min(
      ro.board.api_level,
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level))
    
  • চিপসেট যদি ভেন্ডর ফ্রিজের অধীনে না থাকে:

    ro.vendor.api_level =
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level)
    

AVendorSupport_getVendorApiLevelOf() পদ্ধতি একটি SDK API স্তর থেকে সংশ্লিষ্ট বিক্রেতা API স্তর নির্ধারণ করে। উদাহরণস্বরূপ AVendorSupport_getVendorApiLevelOf(35) , যেখানে 35 হল 2024 সালে প্রধান Android রিলিজের SDK API স্তর 202404 প্রদান করে, যেটি Android 14-QPR3 এর জন্য মোটামুটি তারিখ যখন বর্তমান ভেন্ডর API স্তর সেট করা হয়েছিল।

বিক্রেতা API স্তর নির্ধারণ করুন (Android 13)

ভেন্ডর এপিআই লেভেল SDK এপিআই লেভেলকে অনুসরণ করে, যা অ্যাপ-ওএস ইন্টারফেসের জন্য এবং বছরে একবার আপডেট করা হয় যখন নতুন অ্যান্ড্রয়েড প্ল্যাটফর্ম AOSP-তে প্রকাশ করা হয়।

অ্যান্ড্রয়েড 13 এ ভেন্ডর এপিআই লেভেল ( ro.vendor.api_level ) এর সাথে সম্পর্কিত নিম্নলিখিত সিস্টেম বৈশিষ্ট্য রয়েছে:

সিস্টেম সম্পত্তি বিন্যাস বর্ণনা প্রাথমিক সেটিং
ro.board.first_api_level পূর্ণসংখ্যা একটি চিপসেটের সফ্টওয়্যার যেটি দিয়ে প্রথম প্রকাশ করা হয়েছিল সেই ভেন্ডর এপিআই লেভেল। এটি শুধুমাত্র চিপসেটের একটি ফাংশন, এবং SoC বিক্রেতা বা OEM দ্বারা সংশোধন করা যাবে না। এই সম্পত্তিটি শুধুমাত্র চিপসেটের জন্য সেট করা হয়েছে যা ভেন্ডর ফ্রিজের জন্য যোগ্য device.mk ফাইলে BOARD_SHIPPING_API_LEVEL সেট করে মান প্রতিষ্ঠিত হয়।
ro.board.api_level পূর্ণসংখ্যা ভেন্ডর এপিআই লেভেল যা একটি চিপসেটের সফ্টওয়্যার সমর্থন করে। এই সম্পত্তি শুধুমাত্র বিক্রেতা ফ্রিজ জন্য যোগ্য চিপসেট জন্য সেট করা হয়. এই সম্পত্তি সব চিপসেট জন্য সেট করা হয়. প্রাথমিকভাবে, এই প্রপার্টির মান বিল্ড সিস্টেম দ্বারা ro.board.first_api_level এর মতই সেট করা হয়, কিন্তু ভেন্ডর পার্টিশন আপগ্রেড করা হলে আপডেট করা যেতে পারে।
ro.product.first_api_level পূর্ণসংখ্যা ডিভাইসটি প্রাথমিকভাবে লঞ্চ করা হয়েছে এমন SDK API স্তর। এই সম্পত্তিটি OEM দ্বারা সেট করা হয় এবং তারপরে OS আপগ্রেড করার পরেও আপডেট করা হয় না।
ro.vendor.api_level পূর্ণসংখ্যা বিক্রেতা API স্তর যা ডিভাইসটিকে সামগ্রিকভাবে মেনে চলতে হবে। এই টেবিলের পরে বর্ণিত.
ro.vndk.version পূর্ণসংখ্যা VNDK-এর সংস্করণ যার বিরুদ্ধে ভেন্ডর পার্টিশন তৈরি করা হয়েছে। এই সম্পত্তি সিস্টেম পার্টিশন দ্বারা সেট করা হয়.
ro.vendor.build.version.sdk পূর্ণসংখ্যা উৎস ট্রির SDK API স্তর যেখানে ভেন্ডর পার্টিশন তৈরি করা হয়েছিল।
ro.vendor.build.version.release পূর্ণসংখ্যা উৎস গাছের প্ল্যাটফর্ম সংস্করণ যেখানে বিক্রেতা পার্টিশন তৈরি করা হয়েছিল।
ro.vendor.build.version.release_or_codename পূর্ণসংখ্যা উৎস ট্রির কোড নাম যেখানে ভেন্ডর পার্টিশন তৈরি করা হয়েছিল।

ro.vendor.api_level প্রপার্টি স্বয়ংক্রিয়ভাবে ন্যূনতম ro.board.api_level (অথবা ro.board.first_api_level যদি ro.board.api_level সংজ্ঞায়িত করা না থাকে) এবং ro.product.first_api_level সেট করা হয়।