Estoy construyendo un kernel de Android personalizado basado en el código fuente del kernel de Cyanogenmod ROM. Me gustaría agregar carpetas y archivos en la carpeta raíz del sistema operativo ( /
). Por ejemplo, después de haber compilado mi kernel, me gustaría crear una carpeta adicional llamada toto
(ruta absoluta = /toto
).
Realmente no tengo idea de qué archivos tienen que editarse y cómo hacer el trabajo.
Nota: Si usted es un usuario de Android (no es un desarrollador ROM) que quiere agregar archivos a su rootfs
, por favor vea la pregunta Android.SE relevante en su lugar.
linux-kernel
compiling
android
deadeert
fuente
fuente
userspace,
pero de otros Linux, lain-kernel
diferencia es solo un puñado de parches. De hecho, la popularidad de Android es una importante fuerza impulsora detrás del desarrollo del kernel, y lo ha sido durante un par de años. Eche un vistazo a los registros de cambios de kernel.org y decida usted mismo cuán relevantes son para los sistemas móviles, especialmente Android.boot.img
para portar ROM? : las respuestas allí explican cómo buscar y editar elboot.img
archivo, lo que permite cambiar de manera persistente el contenido del directorio raíz del dispositivo.Respuestas:
En Android, al igual que en muchos sistemas basados en Linux, el kernel monta por primera vez un initramfs en
/
. El initramfs se almacena en la RAM; se carga desde un archivo CPIO que se almacena junto con el núcleo mismo (o en algún otro lugar donde el gestor de arranque pueda encontrarlo).La mayoría de los sistemas Linux de escritorio tienen un pequeño initramfs que contiene suficientes programas y archivos de configuración para montar el sistema de archivos raíz real, que luego se monta
/
, reemplazando los initramfs. Android, como algunos sistemas Linux integrados, mantiene los initramfs montados para siempre. Initramfs de Android incluye solamente/init
,adbd
y algunos archivos de configuración.Para Cyanogenmod, puede encontrar instrucciones de compilación en la guía de portabilidad . Desea copiar más archivos en el disco RAM (la imagen initramfs, en la terminología de Android), por lo que debe agregarlos a la
PRODUCT_COPY_FILES
lista en eldevice_*.mk
archivo MAKE para su dispositivo.fuente
initramfs
imagen es el que contiene esos archivos de configuración, elinitramfs
sistema de archivos se compila en cada núcleo.Los documentos del núcleo explican cómo empaquetar una imagen en el núcleo mismo. Desde kernel.org :
fuente