OTA আপডেট

বাক্সের বাইরে, গ্লাস এন্টারপ্রাইজ ওভার দ্য এয়ার (OTA) আপডেট করার জন্য সজ্জিত নয়। যাইহোক, আপনার পক্ষে মৌলিক OTA আপডেটগুলি কনফিগার করা সম্ভব। EE2 OTA আপডেট কার্যকারিতা ডিভাইসের মালিককে ওভার দ্য এয়ার (OTA) আপডেটের সম্পূর্ণ নিয়ন্ত্রণ নিম্নরূপ দেয়:

  • আপডেট কোথায় সংরক্ষণ করা হয় তা নিয়ন্ত্রণ করতে।
  • আপডেট কখন হয় তা নিয়ন্ত্রণ করতে।
  • হালনাগাদ লক্ষ্যগুলি কী তৈরি করে তা নিয়ন্ত্রণ করতে।

কনফিগারেশন

EE2 ডিভাইসে OTA আপডেটের অনুমতি দেওয়ার জন্য আপনার সার্ভার-সাইড এবং ক্লায়েন্ট-সাইড কনফিগারেশন প্রয়োজন।

সার্ভার-সাইড কনফিগারেশন

আপনার নেটওয়ার্কে অ্যাক্সেসযোগ্য সার্ভারে ডাউনলোড করার জন্য আপনাকে OTA আপডেট ফাইলটি হোস্ট করতে হবে। আপডেট ফাইলটি সিস্টেম ইমেজ পৃষ্ঠা থেকে ডাউনলোড করা উচিত।

আপনাকে একটি JSON ফাইল হোস্ট করতে হবে, যা আপডেট প্রবাহকে চালিত করে। এটি আপডেটার sample.json উদাহরণের মতোই ফর্ম্যাট করা দরকার। ফাইলটিতে পেলোডের আকার, বাইনারি দৈর্ঘ্য এবং অন্যান্য মেটাডেটার মতো তথ্য রয়েছে যা OTA বাইনারিগুলি গ্রহণ করার জন্য আপডেট ইঞ্জিনের প্রয়োজন।

ক্লায়েন্ট-সাইড কনফিগারেশন

একটি ডিভাইস যাতে OTA আপডেট চেক করতে পারে তার জন্য, আপনাকে OTA URL এবং পোলিং ব্যবধান সেটআপ করতে হবে। আপনি একটি কার্যকলাপ শুরু করতে একটি অভিপ্রায় ব্যবহার করতে পারেন যা তাদের সেট আপ করে। কার্যকলাপের নাম com.google.android.glass.otaservice/.OtaSettingsActivity

2টি সমর্থিত ক্রিয়া রয়েছে:

  • com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION
    • JSON মেটাডেটা ফাইলের URL যা ডেমন পোল করে এবং পরীক্ষা করে।
    • নিম্নলিখিত কী সহ একটি স্ট্রিং যুক্ত করুন: com.google.android.glass.otaservice.UPDATE_LOCATION
  • com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION
    • যে ব্যবধানে ওটিএ ডেমন মিলিসেকেন্ডে পোল করতে জেগে ওঠে।
    • নিম্নলিখিত কী সহ একটি নম্বর যুক্ত করুন: com.google.android.glass.otaservice.UPDATE_FREQUENCY
    • এই অভিপ্রায়টি একটি OTA চেক অবিলম্বে শুরু করে যদি কেউ ইতিমধ্যেই চালু না হয়।
    • 900,000 মিলিসেকেন্ডের বেশি একটি সংখ্যা প্রয়োজন৷
    • যদি একটি OTA ইতিমধ্যেই প্রগতিতে থাকে, তাহলে বর্তমান চেক সম্পূর্ণ হওয়ার পরে ফ্রিকোয়েন্সি ব্যবধান আপডেট করা হয়। এটি প্রয়োজনীয়, অন্যথায় Android Doze পরিষেবাতে বাধা দিতে পারে।

অভিপ্রায় একটি startActivityForResult দ্বারা পাঠানো যেতে পারে। একটি প্রতিক্রিয়া onActivityResult কলব্যাকে ফেরত পাঠানো হয় সাফল্যের জন্য একটি RESULT_OK অথবা ব্যর্থ হলে RESULT_CANCELLED । তারপরে সমস্যা সমাধানের উদ্দেশ্যে ডিভাইস লগগুলিতে একটি বার্তা পাইপ করা হয়।

অভিপ্রায়টি নিম্নরূপ adb কমান্ড দ্বারাও পাঠানো যেতে পারে:

adb shell am start \
-a com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION \
--es com.google.android.glass.otaservice.UPDATE_LOCATION "some_URL_for_json_file" \
-n com.google.android.glass.otaservice/.OtaSettingsActivity
adb shell am start \
-a com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION \
--el com.google.android.glass.otaservice.UPDATE_FREQUENCY 1800000 \
-n com.google.android.glass.otaservice/.OtaSettingsActivity

ফ্রিকোয়েন্সি সেটিং এর উপর নির্ভর করে OTA ডেমন প্রতি 15 মিনিট বা তার বেশি সময়ে একটি JobService হিসাবে চলে। JobService চলে এবং আপডেট হওয়া পেলোড গৃহীত ও যাচাই না হওয়া পর্যন্ত চলতে থাকে।

Wi-Fi অনলাইন এবং সংযুক্ত থাকলেই ব্যাকগ্রাউন্ড পরিষেবাটি ভোট দেয়৷ যাইহোক, Wi-Fi এর ইন্টারনেট অ্যাক্সেসের প্রয়োজন নেই, শুধুমাত্র LAN।

সমস্ত প্রক্রিয়াকরণ পটভূমিতে সঞ্চালিত হয়। প্রক্রিয়াকরণের সময় কোন ব্যবহারকারীর ইনপুট প্রয়োজন হয় না। বিজ্ঞপ্তি ড্রয়ারে একটি বিজ্ঞপ্তি প্রদর্শিত হয় এবং পরবর্তী রিবুট ঘটলে OS স্বয়ংক্রিয়ভাবে আপডেট হয়।

আপডেট পদক্ষেপ

OTA আপডেট পরীক্ষা করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. বর্তমান আপডেট সহ ডিভাইসটি ডাউনলোড করুন এবং ম্যানুয়ালি ফ্ল্যাশ করুন৷
  2. গ্লাস সেটিংস ডিভাইসের তথ্য কার্ডটি দেখানো উচিত: বর্তমান আপডেট
  3. একটি Wi-Fi নেটওয়ার্কে সংযোগ করুন৷
  4. পরবর্তী আপডেটে আপডেট করতে আপনার json ফাইলের দিকে নির্দেশ করতে adb কমান্ডগুলি চালান:

    adb shell am start \
    -a com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION \
    --es com.google.android.glass.otaservice.UPDATE_LOCATION "your_json_file_location" \
    -n com.google.android.glass.otaservice/.OtaSettingsActivity
    adb shell am start \
    -a com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION \
    --el com.google.android.glass.otaservice.UPDATE_FREQUENCY 900000 \
    -n com.google.android.glass.otaservice/.OtaSettingsActivity
  5. প্রগতিতে OTA সংক্রান্ত বিজ্ঞপ্তি প্রদর্শিত হবে৷
  6. OTA বিজ্ঞপ্তিটি অদৃশ্য হয়ে যায়
  7. পরবর্তী ম্যানুয়াল ডিভাইস বুটআপে, ডিভাইসটি আপডেট হওয়া উচিত এবং গ্লাস সেটিংস ডিভাইস তথ্য কার্ড দেখানো উচিত: নতুন আপডেট

আপডেট প্রবাহ

এখানে স্ট্যান্ডার্ড প্রক্রিয়া যার মাধ্যমে OTA আপডেট করা হয়:

  1. বুট করার পরে, OTA ডেমন তার প্রথম নির্বাহের সময়সূচী করে, যা নির্দিষ্ট ব্যবধান দ্বারা নির্ধারিত হয়। যদি কোন ব্যবধান প্রদান করা না হয়, এটি ডিফল্ট 15 মিনিট।
  2. মেটাডেটা ফাইল ডাউনলোড করার জন্য ডেমন ওয়েব সার্ভারে ভোট দেয়। যদি কোনো URL প্রদান করা না হয়, তাহলে ডেমন প্রস্থান করে এবং পরবর্তী এক্সিকিউশন ব্যবধান পর্যন্ত অপেক্ষা করে।
  3. সঠিক পতাকা সেট করা হয়েছে তা নিশ্চিত করতে ডেমন মেটাডেটা ফাইলে প্রাথমিক পরীক্ষা চালায়। যদি কোনো ত্রুটি থাকে, ডেমন প্রস্থান করে এবং লগগুলিতে আউটপুট প্রিন্ট করে। ডেমন তারপর পরবর্তী নির্ধারিত মৃত্যুদন্ড পর্যন্ত অপেক্ষা করে।
  4. ডেমন JSON ফাইলের এন্ট্রিগুলির সাথে তুলনা করে বর্তমান বিল্ড থেকে টানা যা ডিভাইসে চলছে। যদি এই এন্ট্রিগুলির মধ্যে একটির জন্য একটি অমিল সনাক্ত করা হয়, একটি OTA ডাউনলোড শুরু হয়। মেটাডেটা ফাইলের বিষয়বস্তু AOSP আপডেট ইঞ্জিনে পাঠানো হয়।

    আপডেট পজ করা যাবে না। এটি চলতে থাকে যতক্ষণ না এটি সফল হয়, ব্যর্থ হয় বা একটি টাইমআউট ঘটে।

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

অ্যাপ্লিকেশন আপডেট

EE2 এ অ্যাপ্লিকেশন আপডেটগুলিকে স্ট্যান্ডার্ড অ্যান্ড্রয়েড আপডেট হিসাবে পরিচালনা করা উচিত। দুটি প্রধান বিকল্প আছে:

  1. একটি MDM সমাধান ব্যবহার করুন বা আপনার নিজস্ব ডিভাইস মালিক অ্যাপ্লিকেশন তৈরি করুন এবং নীরবে অ্যাপ্লিকেশন আপডেট করুন। আপনি এটি করতে Android API PackageInstaller ব্যবহার করতে পারেন।
  2. আপনার অ্যাপ্লিকেশন থেকে সরাসরি Android API PackageInstaller ব্যবহার করুন যাতে এটি নিজেই আপডেট হয়। এই ক্ষেত্রে একটি সিস্টেম ডায়ালগ উপস্থিত হয়।