اندروید Dynamic System Update DSU

Dynamic System Update اندروید

در مقاله های قبلی درباره GSI ها در سیستم عامل اندروید صحبت کردیم. اگر شما هم مثل من سعی کرده باشید یکی از GSI های اندروید را برای تست اپلیکیشن های خودتان روی یک دستگاه اندرویدی نصب کنید، با سختی های این کار آشنا هستید. خوشبختانه در ورژن های جدید تر اندروید، خیلی راحت تر میتوانیم این کار را انجام بدهیم. امروز قصد داریم درباره یکی دیگر از تکنولوژی های سیستم عامل اندروید، به نام Dynamic System Update یا DSI صحبت کنیم.

dynamic system update dsu اندروید

این تکنولوژی در اندروید 11 اضافه شد و با استفاده از آن شما میتوانید به راحتی Generic System Image هایی که نیاز دارید را روی دستگاه خودتان نصب کنید. بعد از نصب و استفاده هم بدون دردسر خاصی میتوانید دوباره به سیستم عامل اصلی دستگاه برگردید و نگران بکاپ گرفتن و اشکالات نرم افزاری هم نباشید. در این مقاله از بلاگ برنامه چی میخواهیم درباره پیش نیاز های DSI، نصب و طریقه استفاده از Dynamic System Update و بوت کردن GSI با استفاده از آن صحبت کنیم.


Dynamic System Update یا DSU چه کار میکند؟

سیستم آپدیت پویا یا Dynamic System Update یکی از ویژگی های جدید سیستم عامل اندروید است که در ورژن 10 (API 29) به آن اضافه شد. این سیستم میتواند وظیفه های زیر را انجام بدهد:

  • یک GSI جدید (یا Image های دیگر سیستم عامل اندروید) برای دستگاه شما دانلود میکند
  • یک پارتیشن جدید و داینامیک میسازد
  • GSI دانلود شده را روی پارتیشن ساخته شده بارگذاری میکند
  • GSI را به عنوان یک سیستم عامل مهمان روی دستگاه بوت میکند
  • بعد از اتمام کار، Dynamic System Update یا همان DSU به شما این امکان را میدهد که به راحتی بین سیستم عامل اصلی و GSI که نصب کردید سوییچ کنید. این کار ریسک خراب کردن سیستم عامل فعلی را کاملا صفر میکند.

پیش نیاز های Dynamic System Update

برای اینکه بتوانید از این قابلیت استفاده کنید، یک سری پیش نیاز ها لازم دارید. در حقیقت DSU کارهای خود را بر اساس یکی از ویژگی های اندروید به نام Dynamic Partition انجام میدهد. اگر با کامپیوتر ها و لپتاپ های ویندوزی کار کرده باشید، حتما با پارتیشن بندی هارد دیسک آشنا هستید. به زبان ساده تر، این قابلیت یک تکه از حافظه دستگاه را جدا کرده و از آن برای نصب کردن GSI استفاده میکند.

یعنی اگر این قابلیت وجود نداشته باشد، Dynamic System Update نمیتواند وظیفه های خودش را انجام بدهد. یکی دیگر از چیزهایی که نیاز داریم این است که GSI هایی که قرار است از آنها استفاده کنید، توسط گوگل یا شرکت سازنده گوشی، به عنوان یک Image قابل اعتماد ثبت شده باشند. یعنی نمیتوانید از ایمیج های نرم افزاری غیر معتبر استفاده کنید.

به یک نکته باید توجه داشته باشید: DSU در حقیقت توسط شرکت سازنده دستگاه شما ارائه میشود. یعنی برای اینکه بدانید این ویژگی برای شما قابل دسترسی هست یا نه، باید به صفحه Support سایت شرکت سازنده دستگاه تان بروید. شرکت گوگل Dynamic System Update را برای گوشی های Pixel 3 و دستگاه های جدیدتر، بعد از اندروید 10 ورژن بتا 4 در دسترس قرار داد.


نصب GSI با استفاده از DSU و Command Line

همانطور که گفتیم با استفاده از Dynamic System Update میتوانیم GSI های مختلف را روی سیستم عامل نصب کنیم. در این قسمت میخواهیم با استفاده از Command Line این کار را با هم انجام بدهیم. قبل از هر چیز باید گوشی موبایل را با استفاده از adb به کامپیوتر متصل کنیم. برای این کار میتوانید آموزش اتصال سریع به گوشی اندروید با استفاده از Adb را مطالعه کنید. بعد از انجام مراحل اتصال دستگاه، قدم های زیر را برای نصب DSU دنبال کنید.


قدم اول – فعال کردن DSU Feature Flag

قبل از اینکه بخواهیم از Dynamic System Update استفاده کنیم، باید مطمئن بشویم Feature Flag درست را برای این قابلیت فعال کرده ایم. با یکی از روش های زیر میتوانیم پرچم (Flag) مخصوص برای این ویژگی را فعال کنیم:

روی دستگاهی که دارای Userdebug Android Build باشد، میتوانید از این مسیر اقدام به فعالسازی کنید:

Settings > System > Developer Options > Feature Flag > settings_dynamic_system

برای سیستم عامل اندروید، سه Build Type متفاوت وجود دارد. User، userdebug و eng این سه مدل هستند. ورژن هایی که از userdebug استفاده میکنند، دارای دسترسی root بوده و قابل اشکال زدایی یا debug کردن هستند. این بیلد تایپ بیشتر برای debugging استفاده میشود

روی بقیه دستگاه ها، میتوانید از دستور زیر در محیط Command Line استفاده کنید:

adb shell setprop persist.sys.fflag.override.settings_dynamic_system true

قدم دوم – اجرا کردن Dynamic System Update

بعد از اینکه این قابلیت را روی دستگاه خودتان فعال کردید، باید DSU را با استفاده از ابزار adb اجرا کنیم. مرحله های زیر را با هم جلو میرویم:

از صفحه انتشار GSI باید یکی از ورژن های Generic System Image را دانلود کنید. (میتونین از سایت های دیگه هم دانلود کنین ولی معتبر ترینش همین لینکی هست که براتون گذاشتم).

اگر شما GSI کاستوم شده خودتان را دارید یا از صفحه های دیگری به جز صفحه اصلی آن را دانلود کرده باشید، بسته گشایی یا به اصطلاح Unpack یا Unsparsed نشده باشند. این کار باعث میشود که فایل های ایمیج با پسوند .img ساخته بشوند. نگران این مورد نباشید. اول به پوشه build بروید و با استفاده از دستور زیر، عمل بسته گشایی را برای فایل هایی که دانلود کردید انجام بدهید:
simg2img system.img system_raw.img


قدم سوم – فشرده سازی فایل GSI

در این مرحله باید با استفاده از الگوریتم gzip، فایل GSI را فشرده کنیم. برای این کار از دستور زیر استفاده میکنیم:

gzip -c system_raw.img > system_raw.gz

قدم چهارم – ارسال فایل ایمیج برای دستگاه

الان دیگر باید فایل فشرده شده GSI را به دستگاه ارسال کنیم. دستور زیر را وارد کنید:

adb push system_raw.gz /storage/emulated/0/Download/

قدم پنجم – اجرای DSU برای راه اندازی GSI

به عنوان آخرین مرحله، باید Dynamic System Update را روی دستگاه اجرا کنیم. دستور زیر مخصوص این کار است:

adb shell am start-activity \
-n com.android.dynsystem/com.android.dynsystem.VerificationActivity \
-a android.os.image.action.START_INSTALL \
-d file:///storage/emulated/0/Download/system_raw.gz \
--el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \
--el KEY_USERDATA_SIZE 8589934592

بعد از این کار، یک ناتیفیکیشن باید در نوار استاتوس دستگاه نشان داده بشود که مانند شکل زیر است:

ناتیفیکیشن Dynamic System Updates dsu

قدم ششم – بوت کردن GSI

وقتی که Dynamic System Update توانست GSI را روی سیستم شما نصب کند، یک منوی DSU به شکل یک ناتیفیکیشن در نوار استاتوس دستگاه شما ظاهر میشود. عکس زیر را نگاه کنید:

بوت کردن Dynamic System Updates dsu

در این مرحله شما میتوانید یکی از کارهای زیر را انجام بدهید:

  1. با انتخاب گزینه Restart، دستگاه را به GSI نصب شده بوت کنید.
  2. با انتخاب گزینه Discard، میتوانید GSI نصب شده را پاکسازی کنید.

قدم هفتم – برگشتن به Image سیستم اصلی دستگاه

خب، بعد از اینکه تست کردن اپلیکیشن ها با استفاده از GSI تمام شد، شما میتوانید با ریستارت نرم افزاری، به سیستم عامل اصلی دستگاه برگردید.

وقتی که برای استفاده از GSI دوباره دستگاه خودتان را ریستارت کنید، شما میتوانید GSI را برای چندین چرخه بوت شدن همچنان نصب شده نگه دارید. اگر گزینه Sticky Mode را فعال کنید، تا وقتی که گزینه Discard را انتخاب نکرده باشید، این چرخه تکرار خواهد شد. اگر گزینه Sticky Mode را غیر فعال کرده باشید،  GSI فقط برای یک بار در چرخه بوت شدن دستگاه نصب خواهد ماند. برای فعال کردن Sticky Mode میتوانید از دستور زیر استفاده کنید:

adb shell gsi_tool enable

برای غیر فعال کردن Sticky Mode هم میتوانید از دستور زیر استفاده کنید:

adb shell gsi_tool disable
adb shell gsi_tool enable -s
adb shell gsi_tool disable

نصب کردن GSI با استفاده از DSU و DSU Loader

یکی از ویژگی های دیگری که به اندروید  اضافه شده است، ابزاری در قسمت Developer Options است که به شما اجازه میدهد دانلود، نصب و مدیریت GSI ها را کاملا از طریق رابط کاربری سیستم انجام بدهید. به این ویژگی DSU Loader گفته میشود.

برای اینکه با استفاده از DSU Loader بتوانید GSI را نصب کنید، مرحله های زیر را روی دستگاهی که اندروید 11 یا بالاتر دارد، دنبال کنید:

  1. گزینه Developer Options را روی دستگاه خودتان فعال کنید.
  2. تنظیمات گوشی را باز کنید و از درون Developer Options گزینه DSU Loader را انتخاب کنید.
  3. ورژن GSI که میخواهید روی دستگاه خود نصب کنید را انتخاب کنید.
  4. در پنجره ای که باز میشود شرایط و ضوابط استفاده از GSI را قبول کنید. بعد از این کار، GSI مورد نظر شما شروع به دانلود شدن میکند. با استفاده از ناتیفیکیشن موجود در نوار استاتوس وضعیت دانلود را بررسی کنید.
  5. وقتی که دانلود تمام شد، روی گزینه Restart کلیک کنید تا دستگاه روی GSI بوت شود.
  6. زمانی که خواستید به سیستم عامل اصلی دستگاه خودتان برگردید، از نایتیفیکیشن های سیستم DSU روی گزینه Restart کلیک کنید.

جمع بندی

موضوع این مقاله درباره Dynamic System Update در سیستم عامل اندروید بود و درباره مفهوم و روش راه اندازی آن صحبت کردیم. اگر هنوز سوالی در این باره در ذهن شما وجود دارد، میتوانید با نوشتن نظرات خود (همین پایین)، به کامل تر شدن این مقاله آموزشی کمک کنید.


منابع بیشتر برای مطالعه

میتوانید از منابع زیر برای مطالعه بیشتر در زمینه DSU در اندروید استفاده کنید:

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اسکرول به بالا