ওয়াই-ফাই সচেতন, ওয়াই-ফাই সচেতন, ওয়াই-ফাই সচেতন, ওয়াই-ফাই সচেতন

The Wi-Fi Aware feature added in Android 8.0 enables supporting devices to discover, connect, and range (added in Android 9) to one another directly using the Wi-Fi Aware protocol without internet or cellular network access. This feature, built upon the Wi-Fi Alliance (WFA) Wi-Fi Aware specification (versions 2.0, 3.0, 3.1 and 4.0), facilitates sharing of high-throughput data among trusted devices and apps that are otherwise off-network.

উদাহরণ এবং উৎস

এই ফিচারটি ব্যবহার করার জন্য, ডিভাইস নির্মাতাদের ওয়াই-ফাই ভেন্ডর এইচএএল (Wi-Fi Vendor HAL) ইমপ্লিমেন্ট করতে হবে। অ্যান্ড্রয়েড ১৪ এবং তার পরবর্তী সংস্করণগুলোতে, ভেন্ডর এইচএএল ইন্টারফেসটি এআইডিএল (AIDL) ব্যবহার করে সংজ্ঞায়িত করা হয়। অ্যান্ড্রয়েড ১৩ এবং তার পূর্ববর্তী সংস্করণগুলোর জন্য, ভেন্ডর এইচএএল ইন্টারফেসটি এইচআইডিএল (HIDL) ব্যবহার করে সংজ্ঞায়িত করা হয়।

Wi-Fi Aware ফিচারটি ব্যবহার করতে Wi-Fi ইন্টারফেসটি অনুসরণ করুন। কোন ইন্টারফেসটি ব্যবহার করা হয়েছে তার উপর নির্ভর করে, এটি হতে পারে:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.2 বা তার পরবর্তী সংস্করণ

AIDL এবং HIDL ইন্টারফেসগুলোর সাথে এর সম্পর্ক কীভাবে কাজ করে, তা দেখতে আপনি লিগ্যাসি Wi-Fi HAL-টি দেখতে পারেন: hardware/libhardware_legacy/+/android17-release/include/hardware_legacy/wifi_nan.h

বাস্তবায়ন

ডিভাইস প্রস্তুতকারকদের ফ্রেমওয়ার্ক এবং HAL/ফার্মওয়্যার উভয় প্রকার সমর্থন প্রদান করতে হবে:

  • কাঠামো:
    • অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট (AOSP) কোড
    • অ্যাওয়্যার সক্ষম করুন: এর জন্য একটি ফিচার ফ্ল্যাগ এবং একটি বিল্ড ফ্ল্যাগ উভয়ই প্রয়োজন।
  • Wi-Fi Aware (NAN) HAL সমর্থন (যার জন্য ফার্মওয়্যার সমর্থনের প্রয়োজন)

এই বৈশিষ্ট্যটি বাস্তবায়ন করতে, ডিভাইস নির্মাতারা ওয়াই-ফাই ইন্টারফেসটি প্রয়োগ করে এবং দুটি ফিচার ফ্ল্যাগ সক্রিয় করে:

  • device/<oem>/<device> ফোল্ডারে অবস্থিত BoardConfig.mk অথবা BoardConfig-common.mk ফাইলে নিম্নলিখিত ফ্ল্যাগটি যোগ করুন:

    WIFI_HIDL_FEATURE_AWARE := true
    
  • device/<oem>/<device> ফোল্ডারে অবস্থিত device.mk ফাইলে, Wi-Fi Aware ফিচারটির সাপোর্ট অন্তর্ভুক্ত করার জন্য PRODUCT_COPY_FILES এনভায়রনমেন্ট ভেরিয়েবলটি পরিবর্তন করুন:

    PRODUCT_COPY_FILES +=
    frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
    

Wi-Fi Aware includes ranging to peer devices using the IEEE 802.11mc protocol, also known as Round Trip Time (RTT). This sub-feature of Wi-Fi Aware is conditional on the device supporting the Wi-Fi RTT feature, that is, it requires the device to support both Wi-Fi Aware and Wi-Fi RTT. For more details, see Wi-Fi RTT .

অন্যথায়, এই বৈশিষ্ট্যের জন্য প্রয়োজনীয় সবকিছু AOSP-তে অন্তর্ভুক্ত রয়েছে।

যদি WIFI_HAL_INTERFACE_COMBINATIONS ফ্ল্যাগটি নির্দিষ্ট করা থাকে, তাহলে WIFI_HIDL_FEATURE_AWARE ফ্ল্যাগটি উপেক্ষা করা হয়। আরও তথ্যের জন্য, Wi-Fi মাল্টি-ইন্টারফেস কনকারেন্সি দেখুন।

MAC র‍্যান্ডমাইজেশন

অ্যান্ড্রয়েডের জন্য ওয়াই-ফাই অ্যাওয়্যার ডিসকভারি (NMI) এবং ডেটা ইন্টারফেসের (NDP) ম্যাক অ্যাড্রেস অবশ্যই র‍্যান্ডমাইজ করা থাকতে হবে এবং তা ডিভাইসের আসল ম্যাক অ্যাড্রেসের সাথে অভিন্ন হবে না। ম্যাক অ্যাড্রেসগুলো অবশ্যই হতে হবে:

  • যখনই Wi-Fi Aware চালু বা পুনরায় চালু করা হয়, তখন এটি এলোমেলোভাবে নির্ধারিত হয়।
  • যখন Wi-Fi Aware সক্রিয় করা থাকে, তখন NanConfigRequest.macAddressRandomizationIntervalSec প্যারামিটার দ্বারা কনফিগার করা একটি নিয়মিত বিরতিতে MAC অ্যাড্রেসটি র‍্যান্ডমাইজ করতে হবে। ফ্রেমওয়ার্ক দ্বারা এটি ডিফল্টরূপে ৩০ মিনিটে কনফিগার করা থাকে।

স্থগিত করুন এবং পুনরায় শুরু করুন

অ্যান্ড্রয়েড ১৪ এবং এর পরবর্তী সংস্করণগুলোতে, ওয়াই-ফাই অ্যাওয়্যার (Wi-Fi Aware) ফিচারটি বিশেষ সুবিধাপ্রাপ্ত অ্যাপগুলোকে সক্রিয় ডিসকভারি সেশন (সেই সেশনগুলোর সাথে যুক্ত সমস্ত ডেটা পাথ সহ) স্থগিত এবং পুনরায় চালু করার ক্ষমতা প্রদান করে। এই ক্ষমতাটি সমর্থন করার ফলে ডিভাইসগুলো ডিসকভারি সেশন আরও দ্রুত পুনরায় চালু করতে পারে এবং কম শক্তি ব্যবহার করে, কারণ ডিসকভারি সেশনগুলো স্থগিত করা যায়।

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

যখন কোনো প্রিভিলেজড অ্যাপ একটি সাসপেন্ডেড ডিসকভারি সেশন পুনরায় চালু করে, তখন ফ্রেমওয়ার্কটি সেশনটিকে তার পূর্ববর্তী অবস্থায় ফিরিয়ে দেয়, যার মধ্যে এর সাথে যুক্ত সমস্ত NDP সেশনও অন্তর্ভুক্ত থাকে। একটি সাসপেন্ডেড ডিসকভারি সেশন পুনরায় চালু করা, Wi-Fi Aware চালু করে একটি নতুন ডিসকভারি সেশন তৈরি করার চেয়ে দ্রুততর।

ডিসকভারি সেশন স্থগিত এবং পুনরায় চালু করার ক্ষমতা সমর্থন করার জন্য, ডিভাইস প্রস্তুতকারকদের অবশ্যই HAL এবং ফার্মওয়্যার সমর্থন প্রদান করতে হবে। বিস্তারিত জানতে, IWifiNanIface.java দেখুন।

ডিভাইস নির্মাতারা একাধিক ডিভাইসে সাসপেন্ড এবং রিজুম সিঙ্ক্রোনাইজ করতে আউট-অফ-ব্যান্ড কমিউনিকেশন (যেমন, BLE) ব্যবহার করতে পারেন।

বৈধতা

অ্যান্ড্রয়েড ওয়াই-ফাই অ্যাওয়্যার ফিচারটি যাচাই করার জন্য একগুচ্ছ ইউনিট টেস্ট, কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) টেস্ট এবং CTS ভেরিফায়ার টেস্ট প্রদান করে। ভেন্ডর টেস্ট স্যুট (VTS) ব্যবহার করেও ওয়াই-ফাই অ্যাওয়্যার পরীক্ষা করা যেতে পারে।

ইউনিট পরীক্ষা

Wi-Fi Aware প্যাকেজের পরীক্ষাগুলো নিম্নলিখিতভাবে চালানো হয়:

পরিষেবা পরীক্ষা:

atest com.android.server.wifi.aware

ব্যবস্থাপক পরীক্ষা:

atest android.net.wifi.aware

সামঞ্জস্য পরীক্ষা স্যুট (CTS) পরীক্ষা

Wi-Fi Aware ফিচারটি যাচাই করতে CTS টেস্ট ব্যবহার করুন। ফিচারটি কখন চালু করা হয় তা CTS শনাক্ত করে এবং স্বয়ংক্রিয়ভাবে এর সাথে সম্পর্কিত টেস্টগুলো অন্তর্ভুক্ত করে।

নিম্নলিখিত উপায়ে CTS টেস্টগুলো চালু করা যেতে পারে:

atest SingleDeviceTest

CTS ভেরিফায়ার পরীক্ষা

CTS ভেরিফায়ার টেস্ট দুটি ডিভাইস ব্যবহার করে Wi-Fi Aware-এর কার্যকারিতা যাচাই করে: একটি পরীক্ষামূলক ডিভাইস এবং একটি পরিচিত ভালো ডিভাইস। টেস্টগুলো চালানোর জন্য, CTS ভেরিফায়ার খুলুন এবং 'Wi-Fi Aware Tests' শিরোনামের বিভাগে যান।