Старые игры на Android больше не запускаются. Я сделал приложение, которое это исправляет
Старые игры на Android больше не запускаются. Я сделал приложение, которое это исправляет
Сейчас на новом Android-телефоне нельзя поставить многие игры, которые вышли лет десять назад. Система отвечает "Приложение не установлено" или "несовместимо с устройством", и это происходит не потому, что игры сломались. Причина в том, как устроены современные телефоны.
Раньше приложения под Android собирались под 32-битные процессоры. Потом телефоны перешли на 64 бита, и какое-то время обе разновидности работали рядом: аппарат запускал и новые программы, и старые. Постепенно производители убрали поддержку 32 бит из новых устройств, чтобы упростить систему и сэкономить место. В результате на многих телефонах, выпущенных за последние пару лет, 32-битных приложений нет вообще: APK с 32-битным кодом просто не устанавливается. Под это попала большая часть мобильных игр начала десятых, которые никто не переиздавал, а их серверы и официальные ссылки давно закрыты. Человек, у которого остался такой APK, оказывается в тупике: игра есть, телефон есть, а запустить нельзя.
Обычно предлагают два выхода. Первый - держать старый телефон и играть на нем, но аккумулятор у лежалого аппарата умирает, а старый Android не обновляется и в сеть его выпускать не очень хочется. Второй - поставить эмулятор с виртуальным Android, но это фактически вторая система внутри телефона: нужно качать образ, выделять десятки гигабайт, ждать загрузки, а потом мириться с низкой производительностью и расходом батареи. Оба варианта работают, но ради одной старой игры возиться с ними неудобно.
Поэтому я сделал приложение Armbat. Оно ставится как обычное приложение, без root и без разблокировки загрузчика, и работает как библиотека: вы импортируете APK, он появляется в списке, запускается по нажатию. Второй операционной системы внутри нет. Java-часть игры исполняется системным рантаймом Android, а старый 32-битный код переводится в команды, понятные современному процессору, прямо во время работы. Для пользователя это выглядит как обычный запуск приложения, просто на несколько секунд дольше.
Что уже проверено: Minecraft работает идеально. Кроме него запускаются N.O.V.A. 3, The Sims 3, Subway Surfers, Angry Birds, FIFA 14. Это не полный список, совместимость проверяется по мере сил, но именно на этих играх видно, что подход рабочий.
Для запуска нужен Android 12 или новее и процессор arm64. Сами игры должны быть собраны под 32-битную архитектуру armeabi-v7a, потому что приложение предназначено именно для них; чисто 64-битные APK оно не запускает. Еще нужен доступ ко всем файлам: импортированные игры, их данные, кэш и OBB-файлы хранятся в общей папке на карте памяти, в /sdcard/armbat, и без этого разрешения приложение не увидит свою библиотеку. Разрешения, которые требует сама игра, запрашиваются одним окном при первом запуске, и отказ от необязательного разрешения обычно не мешает игре работать.
Ограничения тоже есть, и о них честнее сказать сразу. Сервисов Google Play нет и не планируется, приложение рассчитано на офлайн-игры, поэтому вход в аккаунт, лицензионные проверки и онлайн через GMS чаще всего не работают. Античит и агрессивные защиты могут ругаться на непривычное окружение. И совместимость не стопроцентная: часть игр запускается сразу, часть после настройки, а часть пока не работает совсем.
Проект будет развиваться. Это первая публичная сборка, и главная задача на ближайшее время - чтобы запускалось больше игр и чтобы они работали стабильнее. Совместимость будет расширяться, найденные ошибки исправляться, что-то наверняка придется переделать после тестов на разных устройствах. Приложение бесплатное, исходный код открыт под лицензией Apache 2.0 и лежит на GitHub: https://github.com/dima-xd/armbat
Если у вас есть старый APK, который современный телефон отказывается ставить, попробуйте запустить его через Armbat и напишите в комментариях, что получилось. По названиям и версиям игр, которые не заработали, проще всего понять, что чинить в первую очередь.
Скачать можно на GitHub: https://github.com/dima-xd/armbat
Либо на 4pda: https://4pda.to/forum/index.php?showtopic=1128561




