Wi-Fi Aware

Android 8.0-এ যোগ করা Wi-Fi Aware ফিচার, কাজ করে এমন ডিভাইসকে একে অপরের সাথে সরাসরি কানেক্ট করতে, খুঁজে পেতে এবং রেঞ্জ (Android 9-এ যোগ করা হয়েছে) করতে সাহায্য করে। এটি ইন্টারনেট বা সেলুলার নেটওয়ার্ক অ্যাক্সেস ছাড়াই Wi-Fi Aware প্রোটোকল ব্যবহার করে। Wi-Fi Alliance (WFA) Wi-Fi Aware স্পেসিফিকেশন (ভার্সন ২.০, ৩.০, ৩.১ এবং ৪.০)-এর উপর ভিত্তি করে তৈরি এই ফিচার, বিশ্বস্ত ডিভাইস এবং অ্যাপের মধ্যে হাই-থ্রুপুট ডেটা শেয়ার করার সুবিধা প্রদান করে যা অন্যথায় অফ-নেটওয়ার্ক থাকে।

Android 17 ও তার পরবর্তী ভার্সনে Wi-Fi Aware আর্কিটেকচারের বিস্তারিত বিবরণের জন্য, Wi-Fi Aware আর্কিটেকচার দেখুন।

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

এই ফিচার ব্যবহার করতে, ডিভাইস প্রস্তুতকারকদের Wi-Fi Vendor HAL প্রয়োগ করতে হবে। Android 14 ও তার পরবর্তী যেকোনও ভার্সনে, AIDL ব্যবহার করে ভেন্ডর HAL ইন্টারফেসকে সংজ্ঞায়িত করা হয়। Android 13 ও এর আগের যেকোনও ভার্সনের জন্য, HIDL ব্যবহার করে ভেন্ডর HAL ইন্টারফেসকে সংজ্ঞায়িত করা হয়।

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

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.2 বা তার পরবর্তী ভার্সন

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

প্রয়োগ

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

  • ফ্রেমওয়ার্ক:
    • Android ওপেন সোর্স প্রজেক্ট (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-এর মধ্যে IEEE 802.11mc প্রোটোকল ব্যবহার করে পিয়ার ডিভাইসে রেঞ্জিং অন্তর্ভুক্ত থাকে, যা রাউন্ড ট্রিপ টাইম (RTT) নামেও পরিচিত। Wi-Fi Aware-এর এই সাব-ফিচারটি ডিভাইসে Wi-Fi RTT ফিচার কাজ করলে তবেই কাজ করে, অর্থাৎ, এটি ডিভাইসে Wi-Fi Aware ও Wi-Fi RTT দুটিই কাজ করলে তবেই কাজ করে। আরও বিবরণের জন্য, Wi-Fi RTT দেখুন।

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

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

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

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

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

সাসপেন্ড ও আবার চালু করা

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

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

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

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

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

যাচাইকরণ

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

ইউনিট টেস্ট

এগুলি ব্যবহার করে Wi-Fi Aware প্যাকেজ টেস্ট চালানো হয়:

পরিষেবা টেস্ট:

atest com.android.server.wifi.aware

ম্যানেজার টেস্ট:

atest android.net.wifi.aware

কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) টেস্ট

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

এগুলি ব্যবহার করে CTS টেস্ট ট্রিগার করা যেতে পারে:

atest SingleDeviceTest

CTS Verifier টেস্ট

CTS Verifier টেস্ট দুটি ডিভাইস ব্যবহার করে Wi-Fi Aware-এর আচরণ যাচাই করে: একটি টেস্ট ডিভাইস এবং একটি পরিচিত ভালো ডিভাইস। টেস্ট রান করতে, CTS Verifier খুলুন এবং Wi-Fi Aware টেস্ট শীর্ষক বিভাগে নেভিগেট করুন।