Найти в Дзене

Пишем свой Android эмулятор или как я разрабатывал свой Andryemu (Часть 1)

Дисклеймер: данная статья создана исключительно в целях обучения и повышения уровня образованности. Автор не хотел никого обидеть. Также не забывайте что Android является собственностью Google LLC !!! Всем привет! С вами Kolyadual и сегодня я хотел бы рассказать как РЕАЛЬНО СДЕЛАТЬ СВОЙ Android ЭМУЛЯТОР под Linux (У меня ПК с Lubuntu 24.04 поэтому все должно быть хорошо). Поехали! Для начала обозначим фронт работ. Для начальной работы на Ubuntu 24.04 надо установить необходимые пакеты командами: sudo dpkg --add-architecture i386 sudo apt update sudo apt install ninja-build pkg-config libglib2.0-dev libpixman-1-dev libgtk-3-dev libsdl2-dev libslirp-dev libfuse3-dev libnfs-dev libiscsi-dev libusb-1.0-0-dev libvdeplug-dev libspice-server-dev libssh-dev libusbredirparser-dev libjpeg-dev libpng-dev libvorbis-dev liblzo2-dev libsnappy-dev nettle-dev nettle-dev:i386 libgnutls28-dev meson build-essential git flex libdrm-dev python3-pip python3 libgbm-dev libzstd-dev libvdeplug-dev libusb-1.

Дисклеймер: данная статья создана исключительно в целях обучения и повышения уровня образованности. Автор не хотел никого обидеть. Также не забывайте что Android является собственностью Google LLC !!!

Всем привет! С вами Kolyadual и сегодня я хотел бы рассказать как РЕАЛЬНО СДЕЛАТЬ СВОЙ Android ЭМУЛЯТОР под Linux (У меня ПК с Lubuntu 24.04 поэтому все должно быть хорошо). Поехали!

Andryemu запуск...
Andryemu запуск...

Для начала обозначим фронт работ. Для начальной работы на Ubuntu 24.04 надо установить необходимые пакеты командами:

sudo dpkg --add-architecture i386

sudo apt update

sudo apt install ninja-build pkg-config libglib2.0-dev libpixman-1-dev libgtk-3-dev libsdl2-dev libslirp-dev libfuse3-dev libnfs-dev libiscsi-dev libusb-1.0-0-dev libvdeplug-dev libspice-server-dev libssh-dev libusbredirparser-dev libjpeg-dev libpng-dev libvorbis-dev liblzo2-dev libsnappy-dev nettle-dev nettle-dev:i386 libgnutls28-dev meson build-essential git flex libdrm-dev python3-pip python3 libgbm-dev libzstd-dev libvdeplug-dev libusb-1.0-0-dev libspice-server-dev libgtk-3-dev libpixman-1-dev libglib2.0-dev libcap-ng-dev libvirglrenderer-dev libvirglrenderer1 libegl1-mesa-dev libgles2-mesa-dev librados2 librbd-dev librados-dev libglusterfs-dev glusterfs-client libpam0g-dev libnuma-dev

А также:

sudo apt install -y libcap-ng-dev libglib2.0-dev libpixman-1-dev libgtk-3-dev libsdl2-dev libspice-server-dev libusb-1.0-0-dev libusbredirparser-dev libssh-dev libvdeplug-dev libsnappy-dev liblzo2-dev liblz4-dev libzstd-dev libseccomp-dev libattr1-dev libaio-dev libnfs-dev libiscsi-dev libcurl4-gnutls-dev libjpeg-dev libpng-dev libgbm-dev libepoxy-dev libdrm-dev flex bison

Тем самым мы установили необходимые пакеты для работы с Git и С++ библиотеками. Далее выгружаем исходный код Qemu/KVM из репозитория GitHub:

git clone https://git.qemu.org/git/qemu.git

cd qemu

git submodule init

git submodule update --recursive

Все должно получаться примерно так
Все должно получаться примерно так

После завершения всех действий над файлами уже можем изменять код. Открываем свой файловый менеджер и заходим в папку qemu. Далее изменяем что хотим, я расскажу как делал я. Первое - Qemu при загрузки андроид в параметрах устройства выдает некое устройство "Standard PC (i440FX + PIIX, 1996)" или что то в этом роде. Мы хотим чтобы он назывался по-нашему. Тем самым изменяем все что имеет примерно такой текст в файле по каталогу hw/i386/pc_piix.c (Я написал каталог вмести с файлом и расширением). Потом ищем редактируем даную строку заменяя вот это название на свое (на картинке я подсветил желтым начиная со Standard):

Потом ищем и редактируем данную строку... (Подсвечено желтым)
Потом ищем и редактируем данную строку... (Подсвечено желтым)

Меняем со Standard PC (i440FX + PIIX, 1996) на свой. Например я использовал название Andryemu by Kolyadual (Old Android)... Поменяли? Тогда продолжаем!

Конечно же нам надо изменить название приложения. Мы же не хотим чтобы везде высвечивался Qemu? Изменяем (конечно же из начального каталога qemu): ui/gtk.c . Ну, вот здесь вы можете полноценно с нуля переписать весь gtk.c если вы хотите чтобы ваш эмулятор отличался красотой. Я же изменил его по своему и мне захотелось сделать так, чтобы в терминале высвечивался типо красивый "List Info" об Andryemu и разработчике (Нет, ну, а почему бы и нет :D). В общем находим строку с QEMU. Конечно же все сохраняем.

Для начала это все. Подписывайтесь, ставьте лайки, пишите комментарии, делитесь этой статьёй с другими кто создает свой эмулятор и конечно же заходите на Dual Gaming Centre!

До скорых встреч! Ждите часть 2!