به گزارش مدیاتی:در ماههای اخیر، تغییرات عجیب و غیرمنتظره در پروژهٔ متنباز اندروید (AOSP) باعث برانگیختن جنجالهایی در جامعهٔ توسعهدهندگان شده است. به نظر میرسد گوگل در حال اعمال محدودیتهایی است که مستقیماً بر ROMهای سفارشی مانند LineageOS، GrapheneOS و دیگر فورکهای اندروید تأثیر میگذارد. اما آیا این تغییرات، بخشی از یک جنگ خاموش علیه توسعهدهندگان مستقل است
آیا گوگل به طور مخفیانه به جنگ ROMهای سفارشی میرود؟ تغییرات جدید AOSP، توسعهدهندگان پیکسل را شوکه کرد
برخی گمانهزنیها حاکی از آن است که گوگل قصد دارد پشتیبانی از پروژه متنباز اندروید (AOSP) را متوقف کند، اما این شرکت این ادعاها را تکذیب میکند.
گوگل با حذف درختهای دستگاه (Device Trees) و فایلهای باینری درایورهای گوشیهای پیکسل از آخرین نسخه AOSP، ساخت رامهای سفارشی اندروید برای این گوشیها را دشوارتر کرده است. به گفته گوگل، دلیل این تغییر، انتقال هدف مرجع AOSP از سختافزار پیکسل به یک دستگاه مجازی به نام “Cuttlefish” برای بیطرفی بیشتر است. در حالی که گوگل اصرار دارد AOSP از بین نخواهد رفت، توسعهدهندگان اکنون باید تغییرات را مهندسی معکوس کنند، که این امر فرآیند پشتیبانی از دستگاههای پیکسل را دشوارتر میکند.
اوایل سال جاری، گوگل اعلام کرد که سیستم عامل اندروید را به طور کامل به صورت خصوصی توسعه خواهد داد تا فرآیند توسعه خود را سادهتر کند. با تمرکز بر روی یک شاخه داخلی، گوگل قصد داشت کاری را که قبلاً تقسیم شده بود، سادهسازی کند. این خبر در ابتدا برخی از اعضای جامعه توسعهدهندگان اندروید را نگران کرد، اما این جنجال به سرعت فروکش کرد. تأثیر آن حداقل بود، زیرا گوگل قبلاً بیشتر اندروید را پشت درهای بسته توسعه میداد و وعده داده بود که انتشار کدهای منبع ادامه خواهد یافت. با این حال، یک حذف اخیر از سوی گوگل، ترسها را از این بابت که این شرکت ممکن است به اشتراکگذاری کد منبع نسخههای جدید اندروید را متوقف کند، دوباره شعلهور کرده است. گوگل اظهار داشته است که این نگرانیها بیاساس هستند، اما تغییرات جدید دیگری نیز وجود دارد که فعالیت جامعه رامهای سفارشی را در دستگاههای پیکسل دشوارتر میکند.
آیا AOSP در حال حذف شدن است؟ گوگل میگوید نه
همانطور که وعده داده شده بود، گوگل این هفته کد منبع اندروید ۱۶ را منتشر کرد و به توسعهدهندگان مستقل اجازه داد تا نسخههای خود را از سیستم عامل جدید کامپایل کنند. این کد منبع طبق معمول، تحت مجوز Apache 2.0 در پروژه متنباز اندروید (AOSP) بارگذاری شد.
با این حال، چندین توسعهدهنده به سرعت متوجه یک حذف آشکار از انتشار کد منبع اندروید ۱۶ شدند: “درختهای دستگاه” (Device Trees) برای دستگاههای پیکسل از دست رفته بودند. گوگل همچنین نتوانست فایلهای باینری درایورهای جدید را برای هر دستگاه پیکسل آپلود کند و کد منبع هسته (Kernel) را با تاریخچه commit فشرده شده منتشر کرد. از آنجا که گوگل سالهاست درختهای دستگاه، فایلهای باینری درایورها و تاریخچه کامل commit کد منبع هسته را به اشتراک میگذارد، حذف آنها در نسخه این هفته نگرانکننده بود.
این حذفیات منجر به گمانهزنیهایی شد که گوگل در حال برداشتن اولین قدم در برنامهای برای توقف AOSP است. در پاسخ، سیانگ چاو، معاون و مدیر کل پلتفرم اندروید گوگل، این ادعاها را رد کرد. او در پستی در X به این گمانهزنیها پاسخ داد و اظهار داشت که “AOSP از بین نمیرود.”
او همچنین تأیید کرد که حذف درختهای دستگاه پیکسل عمدی است و اظهار داشت که “AOSP به یک هدف مرجع نیاز دارد که انعطافپذیر، قابل تنظیم و مقرون به صرفه باشد – مستقل از هر سختافزار خاصی، از جمله سختافزارهای گوگل.” به جای پشتیبانی از ساختهای AOSP در دستگاههای پیکسل، گوگل از دستگاه مجازی اندروید “Cuttlefish” به عنوان هدف مرجع خود پشتیبانی خواهد کرد. Cuttlefish بر روی رایانههای شخصی اجرا میشود و به گوگل و توسعهدهندگان پلتفرم اجازه میدهد تا ویژگیهای سختافزاری جدید را آزمایش کنند. گوگل همچنین به پشتیبانی از اهداف GSI ادامه خواهد داد، که تصاویر سیستم عمومی هستند که میتوانند تقریباً بر روی هر دستگاه اندرویدی نصب شوند.
از یک سو، این منطق صحیح است. گوگل میخواهد از استفاده از پیکسلها به عنوان دستگاه مرجع AOSP فاصله بگیرد و در حال ایجاد تغییرات برای این منظور است. همانطور که سیانگ چاو اشاره میکند، “AOSP بر اساس یک پلتفرم باز برای پیادهسازی دستگاهها، فروشندگان SoC و معماریهای مجموعه دستورالعملها ساخته شده است.” از این نظر، Cuttlefish یک هدف مرجع مناسبتر است زیرا یک سختافزار مصرفکننده با سفارشیسازی سنگین مانند گوشی پیکسل نیست. با این حال، از آنجا که Cuttlefish یک دستگاه مجازی است، تنها میتواند نحوه عملکرد ویژگیهای سختافزاری را شبیهسازی کند و از برخی جهات یک مرجع ناقص است.
این تغییرات چگونه بر توسعه رامهای سفارشی تأثیر میگذارد
با این حال، مسئله مهمتر، تأثیر این تصمیم بر توسعهدهندگانی است که رامهای سفارشی (اصطلاح جامعه برای نسخههای فرعی AOSP که توسط علاقهمندان ساخته میشوند) را میسازند. نولن جانسون، یکی از مشارکتکنندگان و بازبینان قدیمی پروژه LineageOS، میگوید فرآیند ساخت این رامها برای گوشیهای پیکسل از این پس “دردناک” خواهد شد.
پیش از این، گوگل ساخت AOSP را برای دستگاههای پیکسل ساده کرده بود، اما این پشتیبانی اکنون از بین رفته است. توسعهدهندگان به سادگی میتوانستند “تنظیمات ایجاد شده توسط گوگل را دریافت کرده”، سفارشیسازیهای خود را اضافه کرده و سپس اقدام به ساخت (Build) کنند. اما اکنون، آنها باید از “درختهای دستگاه” قدیمی که گوگل برای اندروید ۱۵ منتشر کرده بود استفاده کنند و “به طور کورکورانه حدس بزنند و از فایلهای باینری پیشساخته، تغییرات مورد نیاز هر ماه را مهندسی معکوس کنند.”
این به این دلیل است که ساخت کامل یک رام اندروید برای یک دستگاه – نه فقط یک GSI – به یک “درخت دستگاه” نیاز دارد. این “مجموعهای از فایلهای پیکربندی است که طرح سختافزاری، تجهیزات جانبی، لیست فایلهای اختصاصی و سایر جزئیات را برای یک دستگاه خاص تعریف میکند و به سیستم Build اجازه میدهد تا یک تصویر مناسب برای آن دستگاه بسازد.” در حالی که گوگل قبلاً این کار را انجام میداد، توسعهدهندگان اکنون باید “درختهای دستگاه” خود را بدون دسترسی به کد منبع اختصاصی لازم ایجاد کنند.
علاوه بر این، تصمیم گوگل برای فشردهسازی تاریخچه commit کد منبع هسته (Kernel) نیز مانع توسعه سفارشی میشود. کد منبع هسته پیکسل اغلب به عنوان “نقطه مرجعی برای سایر دستگاهها برای دریافت ویژگیها، رفع اشکالها و پچهای امنیتی” استفاده میشد، اما اکنون که تاریخچه به یک commit واحد کاهش یافته است، این امر دیگر امکانپذیر نیست.
در حالی که گوگل هیچ الزامی به انتشار “درختهای دستگاه”، ارائه فایلهای باینری درایورها یا به اشتراکگذاری تاریخچه کامل commit هسته (در واقع، این یکی از معدود سازندگان دستگاه است که این کارها را انجام میدهد) ندارد، اما سالهاست این کار را کرده است. دلیل این شرکت برای انجام این کار این بود که پیکسل به عنوان یک پلتفرم مرجع برای AOSP در نظر گرفته میشد، بنابراین توسعهدهندگان نیاز به راهی آسان برای ساخت آن داشتند.
تصمیم گوگل برای توقف استفاده از پیکسل به عنوان دستگاه مرجع AOSP، ناخوشایند است، زیرا به نوعی زیر پای توسعهدهندگانی مانند تیمهای LineageOS و GrapheneOS که اندروید را برای دستگاههای پیکسل میسازند، خالی شده است. این توسعهدهندگان همچنان قادر به ساخت AOSP برای دستگاههای پیکسل خواهند بود، اما اکنون انجام این کار دشوارتر و دردناکتر از گذشته خواهد بود، زیرا آنها باید “درختهای دستگاه” خود را از ابتدا بسازند. این همچنین پیکسلها را به همان سطح سایر دستگاههای اندروید میآورد، زیرا توسعهدهندگان مدتهاست مجبور بودهاند “درختهای دستگاه” خود را بسازند، فایلهای باینری را دریافت کنند و با تاریخچه commit فشرده شده کد منبع هسته در سایر دستگاهها سروکار داشته باشند.
نکته مثبت این است که باز کردن بوتلودر و دریافت تصاویر کارخانه (Factory Images) برای پیکسلها همچنان بسیار آسان است، اما این قطعاً میزان کاری را که توسعهدهندگان برای تجربه یک رام سفارشی پایدار باید انجام دهند، افزایش خواهد داد.




