به روز رسانی OTA

خارج از جعبه، Glass Enterprise برای انجام به‌روزرسانی‌های Over The Air (OTA) مجهز نیست. با این حال، این امکان برای شما وجود دارد که به‌روزرسانی‌های اولیه OTA را پیکربندی کنید. عملکرد به‌روزرسانی‌های EE2 OTA به مالک دستگاه کنترل کامل به‌روزرسانی‌های Over the Air (OTA) را به شرح زیر می‌دهد:

  • برای کنترل محل ذخیره به روز رسانی.
  • برای کنترل زمان به روز رسانی.
  • برای کنترل اینکه به‌روزرسانی چه ساختی را هدف قرار می‌دهد.

پیکربندی

به منظور امکان به‌روزرسانی OTA در دستگاه‌های EE2، به پیکربندی‌های سمت سرور و سمت کلاینت نیاز دارید.

پیکربندی سمت سرور

شما باید فایل به‌روزرسانی OTA را میزبانی کنید تا در سروری که در شبکه شما قابل دسترسی است دانلود شود. فایل به روز رسانی باید از صفحه تصاویر سیستم دانلود شود.

شما همچنین باید یک فایل JSON را میزبانی کنید که جریان به روز رسانی را هدایت می کند. باید درست مانند نمونه به روز رسانی نمونه.json فرمت شود. این فایل حاوی اطلاعاتی مانند اندازه بار، طول باینری و سایر ابرداده‌هایی است که موتور به‌روزرسانی برای پذیرش باینری‌های OTA نیاز دارد.

پیکربندی سمت مشتری

برای اینکه دستگاه بتواند به‌روزرسانی‌های OTA را بررسی کند، باید URL OTA و فاصله نظرسنجی را تنظیم کنید. می توانید از یک intent برای شروع فعالیتی استفاده کنید که آنها را تنظیم می کند. نام فعالیت com.google.android.glass.otaservice/.OtaSettingsActivity است.

2 اقدام پشتیبانی شده وجود دارد:

  • com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION
    • URL فایل فراداده JSON که دیمون آن را نظرسنجی و بررسی می کند.
    • یک رشته با کلید زیر اضافه کنید: com.google.android.glass.otaservice.UPDATE_LOCATION
  • com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION
    • فاصله زمانی که شبح OTA برای نظرسنجی در میلی ثانیه بیدار می شود.
    • یک عدد را با کلید زیر اضافه کنید: com.google.android.glass.otaservice.UPDATE_FREQUENCY
    • این هدف همچنین یک بررسی OTA را در صورتی که قبلاً اجرا نشده است، بلافاصله شروع می کند.
    • عددی بیشتر از 900000 میلی ثانیه مورد نیاز است
    • اگر OTA از قبل در حال انجام باشد، فاصله فرکانس پس از تکمیل بررسی فعلی به روز می شود. این مورد ضروری است، در غیر این صورت ممکن است Android Doze سرویس را قطع کند.

قصد را می توان توسط startActivityForResult کرد. پاسخی با RESULT_OK در مورد موفقیت یا RESULT_CANCELLED در صورت شکست به پاسخ به تماس onActivityResult برگردانده می‌شود. سپس پیامی برای اهداف عیب‌یابی به لاگ دستگاه ارسال می‌شود.

Intent همچنین می تواند توسط دستورات 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.

تمام پردازش ها در پس زمینه انجام می شود. هیچ ورودی کاربر در طول پردازش مورد نیاز نیست. یک اعلان در کشوی اعلان ظاهر می شود و سیستم عامل به طور خودکار با راه اندازی مجدد بعدی به روز می شود.

به روز رسانی مراحل

این مراحل را برای آزمایش به‌روزرسانی‌های OTA دنبال کنید:

  1. دستگاه را با آپدیت فعلی دانلود و به صورت دستی فلش کنید.
  2. کارت اطلاعات دستگاه تنظیمات شیشه باید: به‌روزرسانی فعلی را نشان دهد.
  3. به یک شبکه Wi-Fi متصل شوید.
  4. دستورات adb را برای اشاره به فایل json خود برای به روز رسانی به به روز رسانی بعدی اجرا کنید:

    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 مستقیماً از برنامه خود استفاده کنید تا خود به‌روزرسانی شود. یک گفتگوی سیستم در این مورد ظاهر می شود.