Розробник запустив Googlebook OS на Mac з Apple Silicon у віртуальній машині

Розробник запустив Googlebook OS на Mac з Apple Silicon у віртуальній машині

Розробник запустив Googlebook OS на Mac з Apple Silicon через віртуальну машину з GPU-прискоренням, але проєкт має суттєві обмеження.

Розробник Скайлер Тейлор-Баррік запустив Googlebook OS на комп’ютерах Mac з процесорами Apple Silicon за допомогою віртуальної машини gbos-vm. Проєкт дає змогу завантажити Android-орієнтовану операційну систему для ноутбуків Googlebook, використовуючи графічне прискорення GPU та браузер Chrome, однак для щоденної роботи він поки не придатний.

Як повідомляє TechSpot, ключовою частиною розробки стала сумісність графічних API Vulkan, що використовується Googlebook OS, та Metal у macOS. Віртуальна машина задіює графічний процесор Mac замість програмного рендерингу інтерфейсу на центральному процесорі.

 

Як працює графіка

 

Для обміну графічними буферами Android зазвичай використовує механізм Linux, якого немає в macOS. У gbos-vm його замінили на спільну пам’ять POSIX, після чого буфери імпортуються в Metal і MoltenVK — шар, який транслює виклики Vulkan для графічної системи Apple.

Проєкт також враховує різницю у форматі текстур: Metal вимагає вирівнювати рядки текстур до межі у 16 байтів, тоді як Android цього не робить. Необхідне доповнення додається на стороні Mac, а гостьова система продовжує працювати зі звичним для себе форматом.

 

Обмеження та вимоги

 

Попри апаратне прискорення, повної сумісності немає. Частина контенту WebGL відтворюється некоректно, оскільки Chrome очікує розширення Vulkan, якого не підтримує MoltenVK. Частота оновлення екрана також обмежена 60 кадрами за секунду через конфігурацію збірки QEMU.

Інсталяція починається з образу відновлення Dell Googlebook, який скрипт завантажує із серверів Google, змінює прив’язані до обладнання компоненти та запускає через QEMU. Для роботи потрібен Mac з Apple Silicon, щонайменше 16 ГБ оперативної пам’яті, близько 60 ГБ вільного місця, Xcode Command Line Tools, Homebrew, Java Development Kit і Android SDK з NDK та інструментами збірки для API 34 або новішого.

Через заміну розділу vendor компонентами проєкту Cuttlefish у віртуальній машині немає частини захистів фізичного Googlebook. Зокрема, відсутній апаратний захищений елемент, а ключі шифрування не мають такого самого апаратного захисту. Підтримка Bluetooth обмежена імітованим радіомодулем, звук працює нестабільно, а передавання даних із гостьової системи, правий клік і тривалі сеанси ще недостатньо протестовані.