A página do Cyanogenmod oferece um guia para fazer uma build para cada um dos aparelhos suportados:

Acrescentando aplicativos

Para acrescentar aplicativos devemos baixar o código fonte dele em packages/app O aplicativo deve possuir um arquivo chamado Android.mk contendo instruções de compilação. Para simplificar o trabalho podemos indicar neste arquivo como precompilar o aplicativo separadamente e depois incluí-lo junto dos demais. Cada aplicativo possui uma lógica diferente de compilação, mas em geral a seguinte receita funciona (os dados entre « e » devem ser substituídos):

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := «Nome»

LOCAL_MODULE_TAGS := optional

LOCAL_PACKAGE_NAME := «Nome»

root := $(LOCAL_PATH)

dir := app

out := $(OUT_DIR)/target/common/obj/APPS/$(LOCAL_MODULE)_intermediates

build := $(root)/$(dir)/build

apk := build/outputs/apk/«NOME do APK»

$(root)/$(dir)/$(apk):

rm -Rf $(build)

mkdir -p $(out)

ln -s $(out) $(build)

cd $(root)/$(dir) && gradle assembleRelease

LOCAL_CERTIFICATE := platform

LOCAL_SRC_FILES := $(dir)/$(apk)

LOCAL_MODULE_CLASS := APPS

LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

include $(BUILD_PREBUILT)