Mac.apk запускає застосунки Android на Apple Silicon без емулятора
Утиліта транслює байт-код і напряму виконує код ARM64 у macOS. Хоча Minecraft уже працює, альфа-версія поки ламає авторизацію в низці сервісів, а ядро проєкту залишається закритим.
Розробник Kaleb Simpson випустив публічну альфа-версію Mac.apk — інструмента, що дозволяє запускати застосунки для Android на комп'ютерах Mac із чипами Apple Silicon без емуляторів, віртуальних машин чи ядра Linux.
Замість повної віртуалізації мобільної ОС утиліта створює для кожного APK звичайний пакет .app, який розміщується в системній папці програм і відкривається в окремому вікні. Кліки миші замінюють дотики, орієнтація екрана змінюється комбінацією ⌘+R, а також підтримуються клавіатура та геймпади.
Технічно Mac.apk працює як шар сумісності. Код на Java та Kotlin у форматі DEX перетворюється на стандартний байт-код Java і виконується вбудованим середовищем на базі OpenJDK. Нативні 64-бітні бібліотеки ARM виконуються процесором напряму без трансляції інструкцій, а застарілий 32-бітний код ARM попередньо рекомпільовується в 64-бітний і кешується. Графічні виклики транслюються в Metal: OpenGL ES обробляється через ANGLE, а Vulkan — через MoltenVK.
Згідно з таблицею сумісності, без збоїв уже працюють Telegram, Signal, Organic Maps, VLC, Wikipedia, Minecraft та Among Us.
Водночас обмежень вистачає: у грі Rocket League Sideswipe виникають артефакти рендерингу, а в Duolingo не вдається увійти в акаунт через брак сервісів Google. Автор опублікував на GitHub код конвертера байт-коду dex2jvm, проте основна частина рушія Mac.apk наразі залишається закритою.
Джерело: habr
Коментарі
Допоможи покращити наступну версію: Додавай контекст або пропонуй виправлення. Після AI-перевірки коментарі можуть отримати бали для переписування. Перевірка й оновлення потребують часу; повна шкала не гарантує нової версії.