Schnittstellenanforderungen

Diese Seite beschreibt eine Teilmenge der Linux-Kernel-Schnittstellen, auf die Android angewiesen ist, um ordnungsgemäß zu funktionieren. Das Vorhandensein und die Korrektheit dieser Schnittstellen werden im Rahmen der Vendor Test Suite (VTS) getestet. Diese Teilmenge wird mit der Zeit wachsen und einen größeren Teil der Android-Kernel-Schnittstellen enthalten.

Systemaufrufe

Von allen Systemaufrufen wird erwartet, dass sie dieselben Signaturen und Semantiken wie im Upstream-Linux-Kernel derselben Version bereitstellen.

Prctl

Zusätzlich zu den Upstream- prctl Operationen für unterstützte Kernel-Versionen verlässt sich Android auf zusätzliche prctl Operationen, deren Implementierung im Android-Common-Kernel zu finden ist.

PR_SET_TIMERSLACK_PID
PR_SET_VMA

Dateisysteme

Der Linux-Kernel exportiert Schnittstellen über mehrere Dateisysteme. Android erwartet von diesen Schnittstellen, dass sie dieselben Informationen im selben Format kommunizieren und dieselbe Semantik bereitstellen wie im Upstream-Linux-Kernel. Für Schnittstellen, die im Upstream nicht vorhanden sind, wird das entsprechende Verhalten durch den entsprechenden Zweig des gemeinsamen Android-Kernels vorgegeben.

procfs

Schnittstelle Beschreibung
/proc/asound/ Schreibgeschützte Datei mit der Liste der aktuell konfigurierten ALSA-Treiber.
/proc/cmdline Schreibgeschützte Datei mit Befehlszeilenargumenten, die an den Kernel übergeben werden.
/proc/config.gz Schreibgeschützte Datei mit der Kernel-Build-Konfiguration.
/proc/cpuinfo Schreibgeschützte Datei mit architekturspezifischen CPU-Details.
/proc/diskstats Schreibgeschützte Datei mit E/A-Statistiken von Blockgeräten.
/proc/filesystems Schreibgeschützte Datei, die die Dateisysteme auflistet, die derzeit vom Kernel unterstützt werden.
/proc/kmsg Schreibgeschützte Datei, die Kernel-Meldungen in Echtzeit anzeigt.
/proc/loadavg Schreibgeschützte Datei, die die durchschnittliche CPU- und E/A-Auslastung im Zeitverlauf anzeigt.
/proc/meminfo Schreibgeschützte Datei mit Details zum Speichersubsystem.
/proc/misc Schreibgeschützte Datei, die verschiedene Treiber auflistet, die auf dem verschiedenen Hauptgerät registriert sind.
/proc/modules Schreibgeschützte Datei mit Informationen zu geladenen Kernelmodulen.
/proc/mounts Symlink zu /proc/self/mounts , einer schreibgeschützten Datei, die Informationen über die gemounteten Dateisysteme auflistet.
/proc/net Verzeichnis, das verschiedene Netzwerk-Stack-Parameter enthält.
/proc/net/xt_qtaguid/ Datei mit Lese-/Schreibzugriff, die Informationen zu getaggten Sockets bereitstellt.
/proc/pagetypeinfo Schreibgeschützte Datei mit Seitenzuordnungsinformationen.
/proc/stat Schreibgeschützte Datei mit verschiedenen Kernel- und Systemstatistiken.
/proc/swaps Schreibgeschützte Datei, die die Auslagerungsspeichernutzung zeigt. Diese Datei ist optional; Ihr Inhalt und ihre Berechtigungen werden in VTS nur dann überprüft, wenn die Datei vorhanden ist .
/proc/sys/abi/swp Lese-/Schreibdatei, die das Verhalten des veralteten ARM-Befehls SWP bestimmt.
/proc/sys/fs/pipe-max-size Datei mit Lese-/Schreibzugriff, die die maximale Größe eines einzelnen Pipe-Puffers in Bytes meldet.
/proc/sys/fs/protected_hardlinks Lese-/Schreibdatei, die das Verhalten bei der Erstellung von Hardlinks steuert.
/proc/sys/fs/protected_symlinks Lese-/Schreibdatei, die das Verhalten bei der Erstellung symbolischer Links steuert.
/proc/sys/fs/suid_dumpable Lese-/Schreibdatei, die den Core-Dump-Modus für setuid oder anderweitig geschützte/verdorbene Binärdateien steuert.
/proc/sys/kernel/core_pattern Datei mit Lese-/Schreibzugriff, die das Muster für den Dateinamen des Core-Dumps angibt.
/proc/sys/kernel/core_pipe_limit Datei mit Lese-/Schreibzugriff, die definiert, wie viele gleichzeitig abstürzende Prozesse parallel an Benutzeranwendungen weitergeleitet werden dürfen.
/proc/sys/kernel/dmesg_restrict Lese-/Schreibdatei, die steuert, ob unprivilegierte Benutzer auf dmesg zugreifen dürfen.
/proc/sys/kernel/domainname Lese-/Schreibdatei, die den YP/NIS-Domänennamen des Systems enthält.
/proc/sys/kernel/hostname Lese-/Schreibdatei, die den Hostnamen des Systems bestimmt.
/proc/sys/kernel/hung_task_timeout_secs Datei mit Lese-/Schreibzugriff, die das Zeitlimit steuert, das verwendet wird, um festzustellen, wann eine Aufgabe nicht mehr reagiert und als hängengeblieben betrachtet werden sollte. Diese Datei ist optional; Ihr Inhalt und ihre Berechtigungen werden in VTS nur dann überprüft, wenn die Datei vorhanden ist .
/proc/sys/kernel/kptr_restrict Lese-/Schreibdatei, die bestimmt, ob Kernelzeiger in proc Dateien und anderen Schnittstellen gedruckt werden.
/proc/sys/kernel/modules_disabled Lese-/Schreibdatei, die steuert, ob Kernelmodule geladen werden dürfen.
/proc/sys/kernel/panic_on_oops Lese-/Schreibdatei, die das Verhalten des Kernels bei Hoppla steuert.
/proc/sys/kernel/perf_event_max_sample_rate Lese-/Schreibdatei, die die maximale Abtastrate von Leistungsereignissen steuert.
/proc/sys/kernel/perf_event_paranoid Lese-/Schreibdatei, die die Nutzung des Leistungsereignissystems durch nicht privilegierte Benutzer steuert.
/proc/sys/kernel/pid_max Datei mit Lese-/Schreibzugriff, die den Wrap-Wert der PID-Zuordnung enthält.
/proc/sys/kernel/random/boot_id Schreibgeschützte Datei, die bei jedem Start eine neue Zufalls-ID enthält.
/proc/sys/kernel/randomize_va_space Lese-/Schreibdatei, die die Randomisierungsrichtlinie für das Adresslayout für das System bestimmt.
/proc/sys/kernel/sched_child_runs_first Datei mit Lese-/Schreibzugriff, die steuert, ob neu gegabelte Aufgaben bei der Planung gegenüber ihren übergeordneten Aufgaben bevorzugt werden.
/proc/sys/kernel/sched_latency_ns Lese-/Schreibdatei, die die maximale Latenz (in Nanosekunden) enthält, die eine Aufgabe vor der Planung aufweisen kann.
/proc/sys/kernel/sched_rt_period_us Lese-/Schreibdatei, die die vom systemweiten RT-Ausführungslimit verwendete Periodenlänge in Mikrosekunden enthält.
/proc/sys/kernel/sched_rt_runtime_us Lese-/Schreibdatei, die relativ zu sched_rt_period_us die Zeitspanne enthält, die das System RT-Aufgaben ausführen darf.
/proc/sys/kernel/sched_tunable_scaling Lese-/Schreibdatei, die steuert, ob sched_latency_ns automatisch vom Scheduler basierend auf der Anzahl der CPUs angepasst werden soll.
/proc/sys/kernel/sched_wakeup_granularity_ns Datei mit Lese-/Schreibzugriff, die angibt, wie viel mehr virtuelle Laufzeit Aufgabe A als Aufgabe B in Nanosekunden haben muss, damit Aufgabe B ihr zuvorkommt.
/proc/sys/kernel/sysrq Lese-/Schreibdatei, die die Funktionen steuert, die über die sysrq-Taste aufgerufen werden dürfen.
/proc/sys/net/* Verzeichnis, das verschiedene Netzwerk-Stack-Parameter enthält.
/proc/sysrq-trigger Schreibgeschützte Datei, die zum Initiieren von Sysrq-Funktionen verwendet werden kann.
/proc/sys/vm/dirty_background_ratio Datei mit Lese-/Schreibzugriff, die als Prozentsatz des gesamten verfügbaren Speichers (freie Seiten und zurückgewinnbare Seiten) die Anzahl der Seiten enthält, bei denen die Hintergrund-Kernel-Flusher-Threads mit dem Ausschreiben fehlerhafter Daten beginnen.
/proc/sys/vm/dirty_expire_centisecs Lese-/Schreibdatei, die definiert, wann fehlerhafte Daten alt genug sind, um von den Kernel-Flusher-Threads ausgeschrieben zu werden.
/proc/sys/vm/drop_caches Datei mit Lese-/Schreibzugriff, die verwendet werden kann, um den Kernel zu zwingen, saubere Caches zu löschen.
/proc/sys/vm/extra_free_kbytes Lese-/Schreibdatei, die verwendet werden kann, um zusätzlichen freien Speicher zwischen dem Schwellenwert, bei dem die Hintergrundrückgewinnung (kswapd) einsetzt, und dem Schwellenwert, bei dem die direkte Rückgewinnung (durch Zuweisung von Prozessen) einsetzt, zu halten. Diese Datei ist optional; Ihr Inhalt und ihre Berechtigungen werden in VTS nur dann überprüft, wenn die Datei vorhanden ist .
/proc/sys/vm/max_map_count Datei mit Lese-/Schreibzugriff, die die maximale Anzahl an Speicherzuordnungsbereichen enthält, die ein Prozess haben darf.
/proc/sys/vm/mmap_min_addr Lese-/Schreibdatei, die die Mindestadresse bestimmt, die mmap 'd werden kann.
/proc/sys/vm/mmap_rnd_bits Lese-/Schreibdatei, die den Grad der Zufälligkeit in mmap -Adressen angibt.
/proc/sys/vm/mmap_rnd_compat_bits Lese-/Schreibdatei, die den Grad der Zufälligkeit in mmap -Adressen angibt.
/proc/sys/vm/overcommit_memory Lese-/Schreibdatei, die den Abrechnungsmodus für den virtuellen Kernelspeicher bestimmt.
/proc/sys/vm/page-cluster Lese-/Schreibdatei, die die Anzahl der Seiten steuert, bis zu der aufeinanderfolgende Seiten in einem einzigen Versuch aus dem Swap eingelesen werden.
/proc/uid_cputime/remove_uid_range Schreibgeschützte Datei, die beim Schreiben die Anzeige von UIDs in /proc/uid_cputime/show_uid_stat entfernt.
/proc/uid_cputime/show_uid_stat Schreibgeschützte Datei, die die Zeit enthält, die die Prozesse einer UID im Benutzer- und Kernelbereich verbracht haben.
/proc/uid_io/stats Schreibgeschützte Datei mit einer Liste von E/A-Statistiken für jede UID im System
/proc/uid_procstat/set Schreibgeschützte Datei, die zum Konfigurieren einer UID als Vordergrund oder Hintergrund verwendet wird.
/proc/uid_time_in_state Schreibgeschützte Datei, die die Zeit enthält, die die Prozesse jeder UID mit der Ausführung bei jeder verfügbaren Häufigkeit verbringen. Diese Datei ist optional; Ihr Inhalt und ihre Berechtigungen werden in VTS nur dann überprüft, wenn die Datei vorhanden ist .
/proc/uptime Schreibgeschützte Datei, die anzeigt, wie lange das System bereits läuft.
/proc/version Schreibgeschützte Datei, die eine Zeichenfolge enthält, die die Kernel-Version beschreibt.
/proc/vmallocinfo Schreibgeschützte Datei mit vmalloc -Bereichen.
/proc/vmstat Schreibgeschützte Datei mit Statistiken zum virtuellen Speicher vom Kernel.
/proc/zoneinfo Schreibgeschützte Datei mit Informationen zu Speicherzonen.

Entwickler

Schnittstelle Beschreibung
/dev/ashmem Anonyme Gerätedatei mit gemeinsam genutztem Speicher.
/dev/binder Binder-Gerätedatei.
/dev/hwbinder Hardware-Binder-Gerätedatei.
/dev/tun Universelle TUN/TAP-Gerätedatei.
/dev/xt_qtaguid QTAGUID Netfilter-Gerätedatei.

sysfs

Schnittstelle Beschreibung
/sys/class/net/*/mtu Lese-/Schreibdatei, die die maximale Übertragungseinheit für jede Schnittstelle enthält.
/sys/class/rtc/*/hctosys Schreibgeschützte Datei, die zeigt, ob ein bestimmter RTC die Systemzeit beim Booten und Fortsetzen bereitstellt.
/sys/devices/system/cpu/ Verzeichnis mit Informationen zur CPU-Konfiguration und -Frequenz.
/sys/kernel/wakeup_reasons Verzeichnis schreibgeschützter Dateien, die den letzten Unterbrechungszeitpunkt und den Grund für die Wiederaufnahme enthalten.
/sys/power/state Lese-/Schreibdatei, die die Ruhezustände des Systems steuert.
/sys/power/wake_lock Datei mit Lese-/Schreibzugriff, die die aktiven Wakelocks enthält.
/sys/power/wake_unlock Lese-/Schreibdatei, die nicht aktive Wakelocks enthält.
/sys/power/wakeup_count Datei mit Lese-/Schreibzugriff, die verwendet werden kann, um das System in einen Ruhezustand zu versetzen und dabei das gleichzeitige Eintreffen von Weckereignissen zu berücksichtigen.

selinuxfs

Das Framework mountet selinuxfs unter /sys/fs/selinux .

Weg Beschreibung
/sys/fs/selinux/checkreqprot Lese-/Schreibdatei mit einem Binärflag, das bestimmt, wie Selinux-Schutzmaßnahmen bei mmap und mprotect -Aufrufen überprüft werden.
/sys/fs/selinux/null Nullgerät mit Lese-/Schreibzugriff für die Verwendung durch Selinux.
/sys/fs/selinux/policy Schreibgeschützte Datei, die die Selinux-Richtlinie in Binärform enthält.