Вы, вероятно, можете построить существующий код на C, используя NDK.
«Надлежащим» способом было бы построить его как библиотеку и вызывать из него процесс приложения dalvik (т.е. то, что вы кодируете в java). Это также упрощает использование компонентов Java-интерфейса для механизма оповещения (в противном случае на хосте может быть приложение Java или даже что-то удаленное, которое отслеживает процесс honeypot для оповещений)
Несмотря на то, что многие из них не поддерживаются, им также удалось создать автономные исполняемые файлы командной строки с использованием цепочки инструментов ndk и запустить их. Поскольку вы имеете дело с настроенным андроидом, а не с устройством, у вас не должно быть слишком много проблем с этим - вы можете установить значения OOM killer в своем автономном процессе, и если вы хотите, вам даже не нужно запускать андроид framekwork вообще - вы можете просто запустить Linux, который лежит в основе. Хотя кто-то может спросить, в чем же тогда смысл упражнения.
По сути, если вы находитесь на настроенном «устройстве» (в данном случае виртуальном) и вам действительно не нужен какой-либо пользовательский интерфейс, то единственная вещь, которая действительно уникальна для Android, - это создание кода на C вместо бионического libc, а не более нормальный встроенный Linux; и даже в этом случае вы можете использовать другой libc, если статически создаете ссылку.
Если вы попытаетесь использовать Java-код для этого, вы, скорее всего, столкнетесь с ограничением, заключающимся в том, что нет хорошего способа предоставить root-доступ к Java-коду, поэтому вам придется либо изменить платформу, чтобы легче запускать пользовательский Java-код. кодируйте как root или измените базовый linux, чтобы позволить непривилегированному коду открывать привилегированные порты.
Честно говоря, я не думаю, что это очень хорошая идея проекта, поскольку вы говорите о том, что подвергаете конкретную платформу угрозе, которая, вероятно, не сфокусирована на ней.