گروهی از توسعهدهندگان و علاقهمندان موفق شدهاند iOS را روی تعدادی از گوشیهای اندرویدی اجرا کنند. این پروژه که با نام Hackios شناخته میشود، با جایگزین کردن کرنل لینوکس اندروید با XNU اپل و شبیهسازی سختافزار آیفون X، حتی امکان ورود به صفحه اصلی iOS و اجرای برخی قابلیتهای آن را فراهم کرده است؛ هرچند هنوز بخش بزرگی از سختافزار گوشیها کار نمیکند.
🔷 پروژه Hackios با جایگزینی کرنل لینوکس اندروید با XNU اپل، اجرای iOS روی برخی گوشیهای اندرویدی را ممکن کرده است.
🔷 این پروژه سختافزار آیفون X را شبیهسازی میکند و نسخه iOS 16.7.16 را روی دستگاه اندرویدی بالا میآورد.
🔷 صفحه اصلی، لمس، ژستهای حرکتی، دکمههای فیزیکی، Settings و Control Center در برخی پورتها کار میکنند.
🔷 وایفای، بلوتوث، اینترنت موبایل، دوربینها و بسیاری از حسگرها در نسخه اصلی هنوز قابل استفاده نیستند.
🔷 پروژه ابتدا روی Redmi Note 10 Pro اجرا شد و اکنون تلاشهایی برای پورت آن به تعداد بیشتری از گوشیهای اندرویدی در جریان است.
ایده Hackios از پروژه معروف Hackintosh الهام گرفته شده است؛ پروژهای که امکان اجرای macOS را روی سختافزارهای غیر اپلی فراهم میکرد.
پایه Hackios پروژهای با نام ios-sweet است که یک توسعهدهنده آن را در GitHub منتشر کرده است. این پروژه کرنل استاندارد لینوکس مورد استفاده اندروید را با XNU، کرنل اختصاصی اپل برای آیفون و آیپد جایگزین میکند.
کرنل هسته اصلی سیستمعامل است و نحوه ارتباط نرمافزار با اجزای سختافزاری دستگاه را مدیریت میکند. اگرچه بخش بزرگی از iOS متنباز نیست، اپل کد منبع کرنل XNU مورد استفاده در macOS را منتشر میکند و این پروژه با استفاده از آن، شرایط لازم برای اجرای iOS را فراهم کرده است.
هنگام روشن شدن یک گوشی اندرویدی، اطلاعاتی تحت عنوان Device Tree در اختیار کرنل قرار میگیرد. این اطلاعات اجزای سختافزاری گوشی را توصیف میکنند تا کرنل لینوکس بتواند آنها را شناسایی و مدیریت کند.
پروژه ios-sweet بهجای استفاده از Device Tree معمول اندروید، نمونه جدیدی را براساس آیفون X ایجاد میکند. هدف این روش آن است که XNU تصور کند روی یک آیفون در حال بوت شدن است، نه یک دستگاه اندرویدی.
انتخاب آیفون X نیز دلیل فنی مشخصی دارد. این گوشی آخرین نسل آیفون است که از قابلیت امنیتی Pointer Authentication یا PAC استفاده نمیکند.
تراشههای کوالکام، از جمله Snapdragon 732 مورد استفاده در Redmi Note 10 Pro، از PAC استفاده نمیکنند؛ درحالیکه آیفون XS و مدلهای جدیدتر برای فعالیت به این قابلیت نیاز دارند. به همین دلیل، آیفون X بهعنوان پایه شبیهسازی انتخاب شده است.
فرایند بوت با استفاده از یک Shim Image انجام میشود که روی بوتلودر گوشی بارگذاری شده و انتقال به کرنل XNU را امکانپذیر میکند.
پس از اینکه XNU تصور کند دستگاه یک آیفون است، پارتیشنی با فرمت شبیهسازیشده حافظه آیفون، نسخه iOS 16.7.16 را اجرا میکند. این نسخه آخرین نسخه iOS تحت پشتیبانی آیفون X محسوب میشود.
در نهایت دستگاه میتواند صفحه قفل iOS را نمایش دهد و پس از باز کردن آن، دسترسی به بخشهایی از سیستمعامل امکانپذیر میشود.
با وجود ماهیت آزمایشی پروژه، تعدادی از قابلیتهای اصلی رابط کاربری قابل استفاده هستند. صفحه اصلی iOS همراه برنامههای داخلی بارگذاری میشود و نمایشگر لمسی نیز کار میکند.
ژستهای حرکتی برای بازگشت به صفحه اصلی و انجام چندوظیفگی فعال هستند. دکمههای فیزیکی مانند پاور و تنظیم صدا نیز ظاهراً قابل استفادهاند.
برخی برنامهها و قسمتهای سیستمی مانند Settings و Control Center نیز باز میشوند.
فهرست بخشهای غیرفعال در شرایط فعلی بسیار طولانیتر است. ارتباطات بیسیم شامل بلوتوث، وایفای و اینترنت موبایل در نسخه اصلی پروژه کار نمیکنند.
بلندگوها، دوربینها و حسگرهایی مانند اثرانگشت و تشخیص چهره نیز قابل استفاده نیستند. تعدادی از برنامههای سیستمی از جمله Messages، Phone و Photos نیز هنگام اجرا تنها صفحهای سیاه نمایش میدهند.
توسعهدهنده همچنین هشدار داده است که سیستمهای رمزنگاری اپل در این پروژه کار نمیکنند. در نتیجه، ذخیره اطلاعات شخصی روی دستگاه مجهز به این نسخه توصیه نمیشود.
اجرای iOS در ابتدا روی Redmi Note 10 Pro انجام شد، اما پس از آن تلاش برای پورت کردن پروژه به دستگاههای بیشتری آغاز شده است.
دستورالعمل اصلی برای تراشههای Snapdragon نوشته شده و فورکهای مختلف پروژه نیز عمدتاً روی گوشیهای مجهز به تراشههای کوالکام تمرکز دارند.
| دستگاه | وضعیت گزارششده |
|---|---|
| Redmi Note 10 Pro | دستگاه اولیه پروژه و اجرای iOS |
| Redmi Note 12 Pro | فورک رسمی پروژه |
| LG V60 | فورک رسمی پروژه |
| OnePlus 7T | در فهرست دستگاههای در حال پشتیبانی |
| Redmi 5 Plus | در فهرست دستگاههای در حال پشتیبانی |
| Galaxy S23 Ultra | در فهرست دستگاههای در حال پشتیبانی |
| Pixel 6 با تراشه Tensor | تلاش برای بوت؛ هنوز به نمونه عملی آیفون X تبدیل نشده است |
| Galaxy S7 با Exynos 8890 | تلاش برای بوت؛ هنوز به نمونه عملی آیفون X تبدیل نشده است |
طبق گزارش، کد مربوط به برخی دستگاههای موجود در فهرست پشتیبانی هنوز بسته باقی مانده است.
توسعهدهنده فورک مربوط به Redmi Note 12 اعلام کرده است که موفق به راهاندازی صدا، وایفای و تصویر پسزمینه شده است. بااینحال، سیستم همچنان بسیار ناپایدار گزارش شده است.
نرخ بهروزرسانی تصویر نیز بسیار پایین است و رابط کاربری به شکل محسوسی با لرزش و ناپایداری نمایش داده میشود. بنابراین این پروژه هنوز فاصله زیادی با یک سیستمعامل مناسب برای استفاده روزمره دارد.
نکته جالب دیگر به فایل NOTES.md موجود در مخزن اصلی پروژه مربوط میشود. در این فایل دستورالعملهایی برای عاملهای هوش مصنوعی از جمله Claude Code، ChatGPT Codex و Gemini دیده میشود.
این موضوع نشان میدهد که بخش قابل توجهی از فرایند توسعه پورتهای مختلف میتواند با کمک ابزارهای هوش مصنوعی انجام شود. در نتیجه، احتمال دارد در مدت کوتاهی شاهد تلاش برای اجرای Hackios روی گوشیهای بیشتری باشیم.
پروژه Hackios نشان داده است که میتوان با جایگزینی کرنل لینوکس، شبیهسازی سختافزار آیفون X و استفاده از XNU، نسخه iOS 16.7.16 را روی برخی گوشیهای اندرویدی بوت کرد. بااینحال، نبود ارتباطات بیسیم، دوربین، حسگرها و بسیاری از قابلیتهای اساسی نشان میدهد که این پروژه فعلاً بیشتر یک آزمایش فنی است تا جایگزینی قابل استفاده برای اندروید.
به نظر شما پروژه Hackios میتواند در آینده به مرحلهای برسد که iOS روی یک گوشی اندرویدی واقعاً قابل استفاده باشد؟