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-раздела конкретной модели.