Power Struggle превращает зарядку смартфонов по USB-C в игру

Разработчик Google Кен Кавамото представил Power Struggle — мобильную игру, в которой два смартфона соединяются кабелем USB-C и начинают буквально перетягивать заряд друг у друга. Игроки должны как можно быстрее нажимать на экраны: тот, кто действует успешнее, получает возможность заряжать своё устройство от смартфона соперника.
В основе проекта лежит функция USB Power Delivery, позволяющая устройствам менять роли во время зарядки. Каждый смартфон может выступать как источником энергии, так и её потребителем. Power Struggle использует эту возможность в игровом сценарии и принудительно переключает направление передачи энергии в зависимости от текущего результата состязания.
Как устроена передача данных
Для выполнения системных команд через ADB без получения root-доступа разработчик применил Shizuku. Настроить этот компонент достаточно только на одном из смартфонов. Игровые данные передаются через тот же USB-кабель с помощью Android Open Accessory.
Такой подход разделяет линии питания и передачи данных. Поэтому соединение между устройствами не прерывается, когда направление подачи энергии меняется с одного смартфона на другой. В результате кабель одновременно используется для обмена данными и управления зарядкой.
Зарядка в игре оказывается неэффективной
Практическая польза у такого способа зарядки невелика. В тесте с Pixel 9 Pro XL и Pixel 4 XL отдающий смартфон потерял около 1500 мА, тогда как второе устройство получило примерно 400 мА. Остальная энергия теряется при передаче, а также расходуется на работу экранов и самой игры.
Исходный код Power Struggle опубликован на GitHub под лицензией MIT. Для запуска требуется устройство на Android 13 или новее, установленный Shizuku и USB-C-кабель с поддержкой передачи данных. В качестве второго участника можно подключить даже iPhone или другое устройство на iOS, однако сама игра запускается только на Android-смартфоне в режиме для двух игроков. Переключение направления зарядки при этом сохраняется.


