GSI (Generic System Image) — это универсальный образ операционной системы Android, который может запускаться на разных устройствах без адаптации под конкретную модель. Такой образ стал возможен благодаря архитектуре Project Treble, появившейся в Android 8.0 Oreo: Google отделила код системы от низкоуровневых компонентов производителя (драйверов и прошивки чипсета), и теперь «чистый» системный раздел работает поверх стандартизированного интерфейса vendor interface.

Проще говоря, раньше каждая прошивка собиралась строго под конкретный смартфон: система и драйверы были тесно связаны. С GSI один и тот же образ системы теоретически загружается на любых устройствах, поддерживающих Treble, — независимо от того, построен аппарат на Qualcomm Snapdragon, MediaTek или Exynos. Это принципиально меняет подход к тестированию и установке альтернативных прошивок.

Как устроена архитектура Project Treble

До появления Treble обновление Android требовало от производителя переработки всей цепочки: драйверы, HAL (Hardware Abstraction Layer), системные компоненты. Это было одной из причин медленных обновлений. Treble разделил систему на два слоя: system partition (сама ОС) и vendor partition (код производителя чипа и устройства).

Между слоями работает стабильный интерфейс Vendor Interface (VINTF). Пока производитель обеспечивает совместимость vendor-раздела с этим интерфейсом, системный раздел можно заменить на другой — например, на GSI. Именно поэтому GSI-образ не содержит драйверов: они остаются на месте, в vendor-разделе устройства.

💡

GSI заменяет только системный раздел — драйверы и низкоуровневое ПО остаются от заводской прошивки, поэтому работоспособность железа зависит от vendor-раздела конкретной модели.