Generic system image android

آموزش Generic System Image اندروید

در مقاله های قبلی بلاگ برنامه چی درباره اینکه همه میتوانند از پروژه متن باز اندروید استفاده کنند صحبت کردیم. یعنی همه شرکت ها این پروژه را برمیدارند، هر طوری که دوست دارند تغییر میدهند و گجت های خودشان را با این سیستم عامل منتشر میکنند. اما از اندروید ورژن 9 به بعد، پروژه ای به اسم Generic System Image به این سیستم عامل اضافه شد. از این به بعد توسعه دهنده ها هم میتوانند پروژه متن باز اندروید را دانلود و روی دستگاه های مختلف تست کنند. امروز قصد داریم درباره Generic System Image (یا همون GSI) در سیستم عامل اندروید صحبت کنیم.

توسعه دهنده GSI

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


Generic System Image اندروید چیست؟

Generic System Image اندروید چیست

به نظرم اول باید کلمه به کلمه این عبارت را با هم بررسی کنیم. Generic به زبان فارسی میشود عمومی. System Image هم به زبان خودمانی تر، به پکیج کدهای نرم افزاری گفته میشود. یعنی شما برای نصب کردن یک سیستم عامل (اندروید یا ویندوز یا هر مورد دیگه) در حقیقت System Image را دانلود کرده و نصب میکنید. پس معنی Generic System Image اندروید، یعنی همان ورژن عمومی سیستم عامل اندروید.

به زبان ساده تر، Generic System Image یا GSI یک ورژن خالص سیستم اندروید است که فقط از پروژه متن باز اندروید که به آن AOSP (Android Open Source Project) گفته میشود، درون آن استفاده شده است. پس یعنی این پروژه میتواند روی انواع مختلفی از دستگاه های اندرویدی اجرا بشود.

بعد از اندروید ورژن 9 (API 28) Generic System Image ها در همه مرحله های انتشار سیستم عامل، برای توسعه دهنده ها و برنامه نویس ها قابل دسترس هستند. پس شما به عنوان یک توسعه دهنده میتوانید ورژن های مختلف GSI اندروید را دانلود کرده و روی دستگاه های مختلف نصب کنید. این نسخه ها میتوانند در مرحله های مختلف انتشار، مثل Preview و Beta باشند. بعد از انجام دادن این کارها میتوانید اپلیکیشن های خودتان را تست کنید.

Generic System Image روی دستگاه های مختلف

یعنی اگر در حال توسعه یک اپلیکیشن باشید، میتوانید بسیار سریعتر از گذشته و زودتر از دیگر کاربران نسخه های جدید اندروید را دریافت کنید تا ویژگی های جدید سیستم عامل و سازگاری نرم افزار خودتان با این ویژگی ها را محک بزنید. از این طریق اپلیکیشن های شما تست های بهتر و جامع تری را پشت سر میگذارند.  چندتا از مزیت های این روش را ببینیم:

  • زمان بیشتر برای برطرف کردن مشکلات احتمالی اپلیکیشن با نسخه های جدید سیستم عامل
  • زمان بیشتر برای گزارش مشکلات سیستم عامل جدید توسط توسعه دهنده ها

دقت داشته باشید که اگر میخواهید از Generic System Image استفاده کنید، باید ورژن بالاتری از نسخه فعلی سیستم عامل خودتان را نصب کنید.

میتوان گفت هدف گوگل از راه اندازی پروژه GSI تقویت اکوسیستم اندروید بود. یعنی با این راه حل، قبل از انتشار نسخه کامل سیستم عامل جدید توسعه دهنده ها همه مشکلات سیستم عامل و همچنین مشکلات اپلیکیشن های خودشان را بررسی و برطرف میکنند. پس هر دو طرف اکوسیستم (اپ ها و خود اندروید) بیشتر از گذشته تقویت و بهبود پیدا میکنند. در ضمن، این پروژه متن باز هم هست.

حالا ببینیم که این پروژه چه چیزهایی داخل خودش دارد. Generic System Image شامل کارکردها و عملکرد های اصلی سیستم در همه دستگاه هایی که از اندروید 9 به بالا را اجرا میکنند میشود. به عبارت دیگر GSI شامل شخصی سازی ها و تغییراتی که شرکت های سازنده گوشی روی سیستم عامل انجام میدهند، نمیشود. به همین دلیل شاید در حوزه های زیر یک مقدار تفاوت رفتار مشاهده کنید:

  • تعامل هایی که با رابط کاربری در ارتباط هستند
  • جریان های کاری (WorkFlow) که نیازمند امکانات جدید سخت افزاری هستند

بررسی سازگار بودن با دستگاه

سازگار بودن GSI اندروید با گوشی

پروژه Generic System Image یکی از پروژه های تقریبا جدید سیستم عامل اندروید است. برای همین روی همه دستگاه های اندروید (بیشتر قدیمی ها) اجرا نمیشود. GSI روی دستگاه هایی با مشخصات زیر اجرا میشود:

  • بوت لودر (Bootloader) آنلاک شده
  • سازگاری کامل با Treble
  • منتشر شده با اندروید 9 (API 28) یا بالاتر. دستگاه هایی که از ورژن های قدیمی تر اندروید به نسخه 9 آپدیت شده باشند، ممکن است GSI را پشتیبانی نکنند.

هشدار: اگر سعی کنید Generic System Image را روی دستگاه هایی که با این پروژه سازگار نیستند اجرا کنید، ممکن است باعث خرابی دستگاه و بالا نیامدن دستگاه بشوید. همیشه قبل از پیاده سازی GSI، از سازگاری دستگاه مطمئن شده باشید. همچنین حتما دستورالعمل هایی که شرکت سازنده گجت شما برای نصب GSI منتشر کرده را دنبال کنید. دقت داشته باشید نصب GSI قابل برگشت نیست. پس شما باید همیشه یک روش برای بازیابی سیستم و فایل ROM اصلی گوشی را برای خودتان نگهداری کنید. اگر این کارها را هنوز بلد نیستید، حتما جستجو کنید و قبل از امتحان GSI آن ها را یاد بگیرید.

خب، از کجا باید تشخیص بدهیم که دستگاه ما میتواند از GSI استفاده کند و اینکه از کدام ورژن GSI باید استفاده کنیم، کارهای زیر را دنبال کنید:

قدم اول – اتصال گوشی با ADB

ابتدا گوشی را با استفاده از کابل USB به کامپیوتر متصل میکنیم تا بتوانیم دستورات را با استفاده از ADB برای گوشی بفرستیم. اگر این کار را بلد نیستید، روش کامل این کار را در یک مقاله جداگانه نوشتیم. پیشنهاد میکنم این مقاله را مطالعه کنید: آموزش نصب و راه اندازی سریع ADB گوشی اندروید

قدم دوم – باز کردن Command Prompt

حالا روی کامپیوتر پنجره Command Pormpt را باز میکنیم. برای این کار میتوانید کلید های ویندوز بعلاوه R را فشار میدهیم. در پنجره کوچکی که باز میشود عبارت cmd را مینویسیم و اینتر را میزنیم. با این کار پنجره Command Prompt باز خواهد شد.

قدم سوم – تست پشتیبانی از Treble

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

adb shell getprop ro.treble.enabled

اگر پاسخ دریافت شده false بود، دستگاه با Generic System Image سازگار نیست و شما نباید مرحله های بعدی را ادامه بدهید. اگر پاسخ دریافت شده true بود، میتوانید مرحله های بعدی را ادامه بدهید.

در این مرحله باید ورژن هایی که توسط گجت ما پشتیبانی میشود را بررسی کنیم. از دستور زیر استفاده میکنیم:

adb shell cat /system/etc/ld.config.version_identifier.txt \
| grep -A 20 "\[vendor\]"

نکته: با توجه به پلتفرم شما، فایل Configuration در دستور بالا ممکن است version identifier را درون خود داشته باشد، یا نداشته باشد.

در خروجی، درون قسمت [vendor]، دنبال namespace.default.isolated بگردید. اگر مقدار این ویژگی برابر با true بود، دستگاه کاملا از Vendor Native Development Kit (یا VNDK) پشتیبانی میکند و میتواند از همه سیستم عامل های GSI که از نسخه فعلی سیستم عامل دستگاه نسخه بالاتری داشته باشد، استفاده کند.

اگر مقدار آن ویژگی برابر با false بود، به این معنی است که دستگاه کاملا از VNDK پشتیبانی نمیکند. در این حالت دستگاه میتواند تنها از نسخه هایی از GSI استفاده کند که دقیقا با نسخه فعلی سیستم عامل یکسان باشد. برای مثال، یک دستگاه که اندروید نسخه 9 دارد و کاملا با VNDK سازگار نیست، تنها میتواند از نسخه 9 GSI اندروید استفاده کند.

نکته مهمی که باید به آن توجه داشته باشید، این است که معماری CPU در Generic System Image باید با معماری CPU دستگاه کاملا یکسان باشد. برای اینکه معماری درست را برای پردازشگر انتخاب کنید، باید از دستور زیر استفاده کنید:

adb shell getprop ro.product.cpu.abi

از خروجی این دستور میتوانید برای تشخیص اینکه کدام نسخه های Generic System Image برای دستگاه شما مناسب است استفاده کنید. برای مثال، روی یک گوشی Pixel 3، خروجی این دستور به ما میگوید که معماری پردازشگر arm64-v8a است. پس باید یک Generic System Image از نوع arm64 را استفاده کنید.


دانلود ورژن های مختلف GSI

ورژن های مختلف GSI

قبل از هر چیز باید به شما بگویم که Generic System Image هایی که در این قسمت معرفی میشوند مناسب OEM ها نیست که تست های انطباق را به وسیله آنها انجام بدهند. OEM ها باید برای این کار باید به کانال های ارتباطی خودشان رجوع کنند.

OEM مخفف Original Equipment Manufacturer هست که اینجا منظور شرکت هایی هستند که گجت های هوشمند تولید کرده و سیستم عامل اندروید را به عنوان نرم افزار برای آنها انتخاب میکنند.

بر اساس نیاز هایی که به عنوان یک توسعه دهنده دارید، برای دانلود GSI چند راه مختلف وجود دارد:

  • برای دانلود GSI های اندروید 10 و 11 که همراه با GSM هستند، میتوانید از طریق این صفحه دانلود را انجام بدهید.
  • برای GSI های پیش ساخته که اپلیکیشن های GSM را ندارند، میتوانید از طریق صفحه پروژه متن باز گوگل دانلود کنید.
  • برای اینکه GSI مربوط به اندروید 10 و 11 خودتان را بدون GSM بسازید، سورس کد را از صفحه پروژه متن باز گوگل دانلود کنید و طبق سلیقه خودتان Generic System Image بسازید.

نصب Generic System Image

نصب Generic System Image اندروید

نکته: اگر دستگاه شما دارای Android Verified Boot (AVB) است، بسته نرم افزاری زیر را دانلود و نصب کنید تا قبل از شروع نصب، AVB برای شما غیر فعال شود: {لینک فایل}

نصب کردن Generic System Image به دستگاه بستگی دارد. یعنی شما باید برای دستورالعمل های دقیق و پیدا کردن ابزار مناسب اینکار، به وبسایت شرکت سازنده گوشی خود مراجعه کنید. برای نمونه چندتا از دستورالعمل های سازنده های معروف تلفن همراه را میتوانید در ادامه ببینید (همه این لینک ها، به وبسایت رسمی شرکت های گفته شده مربوط نمیشوند):


جمع بندی

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

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

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

درباره نویسنده

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

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

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