Что необходимо для запуска бинарных файлов ELF, скомпилированных из android APK? (понимание android внутренностей) - PullRequest
1 голос
/ 05 февраля 2020

Я пытаюсь понять, как Android работает внутри. До ART он использовал Dalvik для запуска java кода. Я предполагаю, что он создал процесс Dalkiv в ядре 'Linux', который был просто виртуальной машиной, которая выполняла байт-код dex.

Для ART байт-код dex скомпилирован в инструкции в архитектуре процессора (происходит во время установки обработать). Этот скомпилированный байт-код dex сохраняется в двоичном формате ELF. Так что это что-то, что ядро ​​'Linux' может понять.

Итак, предположим, что я хотел запустить этот двоичный файл ELF на Linux. Что мне нужно, кроме модулей ядра ashmem и binder? Какие библиотеки требуют этот бинарный файл ELF? Этот двоичный файл ELF просто запускается как linux процесс?

Я попытался прочитать исходный код anbox.io, но не мог понять, как он запускает двоичный файл ELF из APK. Возможно, понимание того, что требуется для его запуска, поможет мне лучше понять исходный код anbox.io.

Я также нашел https://android.googlesource.com/platform/art/+/refs/heads/master/runtime/, но не знаю, с чего начать. Что такое / время выполнения? Это программа, библиотека? Является ли Android Runtime чем-то связанным с двоичным файлом ELF, сгенерированным из байт-кода dex?

...