Ich erstelle einen benutzerdefinierten Android-Kernel, der auf dem Kernel-Quellcode des Cyanogenmod-ROM basiert. Ich möchte Ordner und Dateien zum Stammordner des Betriebssystems ( /
) hinzufügen . Nachdem ich beispielsweise meinen Kernel kompiliert habe, möchte ich, dass ein zusätzlicher Ordner mit dem Namen toto
(absoluter Pfad = /toto
) erstellt wird.
Ich habe wirklich keine Ahnung, welche Dateien bearbeitet werden müssen und wie die Arbeit gemacht werden soll.
Hinweis: Wenn Sie ein Android - Benutzer (kein ROM - Entwickler) sind , die Dateien auf Ihren hinzufügen möchte rootfs
, sehen Sie bitte den entsprechenden Android.SE Frage statt.
userspace,
aber von anderen Linuxesin-kernel
beträgt der Unterschied nur eine Handvoll Patches. Tatsächlich ist die Popularität von Android seit einigen Jahren eine wichtige Triebkraft für die Kernel-Entwicklung. Schauen Sie sich die Änderungsprotokolle von kernel.org an und entscheiden Sie selbst, wie relevant viele für mobile Systeme sind - insbesondere für Android.boot.img
ich für die ROM-Portierung? : Antworten dort erklären, wie dieboot.img
Datei abgerufen und bearbeitet wird, sodass der Inhalt des Stammverzeichnisses des Geräts dauerhaft geändert werden kann.Antworten:
Auf Android, wie auf vielen Linux-basierten Systemen, steigt der Kernel zunächst eine initramfs auf
/
. Das initramfs wird im RAM gespeichert; Es wird aus einem CPIO-Archiv geladen, das zusammen mit dem Kernel selbst gespeichert wird (oder an einem anderen Ort, an dem der Bootloader es finden kann).Die meisten Desktop-Linux-Systeme verfügen über ein kleines initramfs, das gerade genug Programme und Konfigurationsdateien enthält, um das echte Root-Dateisystem bereitzustellen, auf dem dann
/
das initramfs ersetzt wird. Android hält, wie einige eingebettete Linux-Systeme, die initramfs für immer bereit. Android initramfs enthält nur/init
,adbd
und einige Konfigurationsdateien.Für Cyanogenmod finden Sie Bauanweisungen in der Portierungsanleitung . Sie möchten weitere Dateien auf die Ramdisk kopieren (das initramfs-Image in der Android-Terminologie), daher müssen Sie sie der
PRODUCT_COPY_FILES
Liste imdevice_*.mk
Makefile für Ihr Gerät hinzufügen .quelle
initramfs
Image- Datei diese Konfigurationsdateien. Dasinitramfs
Dateisystem wird in jeden Kernel kompiliert.In den Kerneldokumenten wird erklärt, wie ein Bild in den Kernel selbst gepackt wird. Von kernel.org :
quelle