Nika
Исходники ядра предоставляет не каждый производитель. С другой стороны, если иметь чёткое понимание, как происходит запуск системы от момента загрузки ядра, до появления рабочего стола, можно не компилировать ядро заново, а взять из прошивки уже готовое скомпилированное ядро, initramfs и модули ядра.
Т.е. условно и упрощенно: загрузчик грузит родное ядро из прошивки, и родные модули драйверов, ядро запускает init или что там вместо него используется в Андроиде, а затем, с помощью скриптов init.d, управление перехватывается и передается в итоге на X-сервер.
То есть, я предлагаю, условно говоря, переписать файлы из родной файловой системы Андроида в файловую систему Убунты. Самое сложное в этом случае - грамотно подправить скрипты, чтобы перехватить управление.
А уже в среде Убунты можно попробовать запускать приложения Андроида в каком-нибудь эмуляторе, либо вообще параллельно запускать Dalvik и Х-сервер, чтобы не терять телефонную функциональность, если система работает на телефоне.