Auf dieser Seite wird das Verzeichnislayout für Geräte mit Android 8.0 und VNDK-Regeln und zugehörige sepolicy.
Verzeichnislayout
Das Layout "DeGenerated Directory" besteht aus Folgendem: Verzeichnisse enthalten:
/system/lib[64]
enthält alle gemeinsam genutzten Framework-Bibliotheken. einschließlich LL-NDK-, VNDK- und Nur-Framework-Bibliotheken (einschließlich LL-NDK-Private und einige Bibliotheken mit demselben Namen wie die in VNDK-SP./system/lib[64]/vndk-sp
enthält VNDK-SP-Bibliotheken für HALs für denselben Prozess./vendor/lib[64]
enthält die vom Anbieter erweiterten VNDK-Bibliotheken (entweder DXUA- oder DXUX VNDK-Bibliotheken), HAL-Implementierungen im selben Prozess und andere Anbieter gemeinsam genutzten Bibliotheken./vendor/lib[64]/vndk-sp
enthält möglicherweise die VNDK-SP-Bibliotheken, die durch das Zulieferunternehmen.
Anbietermodule laden die VNDK-Bibliotheken aus /system/lib[64]
.
VNDK-Regeln
Dieser Abschnitt enthält eine umfassende Liste der VNDK-Regeln:
- Framework-Prozesse dürfen keine gemeinsam genutzten Nicht-SP-HAL-Bibliotheken vom Anbieter laden Partitionen (ab Android 8.1 streng erzwungen).
- Anbieterprozesse dürfen keine Nicht-LL-NDK- und Nicht-VNDK-SP- und Nicht-VNDK-Bibliotheken von der Systempartition zu importieren. (nicht streng in Android erzwungen) O, wird aber in einer zukünftigen Version verfügbar sein.
- Installierte VNDK-Bibliotheken müssen Teil des von Google definierten zulässigen VNDK sein Bibliotheken.
- Die äußeren Abhängigkeiten von SP-HAL und SP-HAL-Dep müssen auf
LL-NDK oder von Google definierte VNDK-SP-Bibliotheken.
- Die Abhängigkeiten einer gemeinsam genutzten SP-HAL-Bibliothek müssen auf LL-NDK beschränkt sein Bibliotheken, von Google definierte VNDK-SP-Bibliotheken, andere SP-HAL-Bibliotheken und/oder von anderen Anbietern gemeinsam genutzte Bibliotheken, die als SP-HAL-Dep gekennzeichnet werden können Bibliotheken.
- Eine vom Anbieter gemeinsam genutzte Bibliothek kann nur dann als SP-HAL-Dep-Bibliothek gekennzeichnet werden, wenn sie keine AOSP-Bibliothek ist und ihre Abhängigkeiten auf LL-NDK-Bibliotheken beschränkt sind, Von Google definierte VNDK-SP-Bibliotheken, SP-HAL-Bibliotheken und/oder andere SP-HAL-Dep Bibliotheken.
- VNDK-SP muss eigenständig sein.
libRS_internal.so
zu Besonderem in Android 8.0 behandelt, wird aber in einer zukünftigen Version überarbeitet. - Keine Kommunikation zwischen Framework-Anbietern über Nicht-HIDL-Schnittstellen, einschließlich (aber nicht beschränkt auf) Binder, Sockets, gemeinsame Erinnerungen, Dateien usw.
- Die Systempartition muss groß genug sein, um zwei Kopien aufzunehmen aller zulässigen VNDK-Bibliotheken und eine Kopie des unzulässigen Frameworks freigegeben Bibliotheken.
Sepolicy
Die in diesem Abschnitt beschriebenen Framework-Prozesse
coredomain
in sepolicies, während die Anbieterprozesse den
non-coredomain
. /dev/binder
kann z. B. sein
Der Zugriff ist nur in coredomain
und /dev/vndbinder
möglich.
Zugriff nur außerhalb von coredomain
.
Ähnliche Richtlinien schränken den Zugriff auf die gemeinsam genutzten Bibliotheken auf System- und Anbieterpartitionen. In der folgenden Tabelle sind die Zugriffsrechte für freigegebene verschiedenen Kategorien:
Kategorie | Partition | Zugriff über coredomain |
Zugänglich über eine Domain, die keine Kerndomain ist |
---|---|---|---|
LL-NDK | System | J | J |
LL-NDK-Privat | System | J | J |
VNDK-SP/VNDK-SP-Privat | System | J | J |
VNDK-SP-Ext | Vendor | J | J |
VNDK (VNDK) | System | J | J |
VNDK-Ext. | Vendor | N | J |
NUR FÜR FWK | System | J | N |
FWK-ONLY-RS | System | J | N |
SP-HAL | Vendor | J | J |
SP-HAL-Dep | Vendor | J | J |
NUR VND | Vendor | N | J |
LL-NDK-Private und VNDK-SP-Private müssen
Zugriff von beiden Domains aus, da Nutzer, die nicht zu coredomain
gehören,
und indirekt darauf zugreifen. Ebenso muss SP-HAL-Dep über
coredomain
, da SP-HAL darauf angewiesen ist.
Label für Same_process_hal_file
Die folgenden Bibliotheken sind in der Anbieterpartition vorhanden. Zugriff auf diese Bibliotheken über
coredomain
und keine coredomain
.
- VNDK-SP-Ext in
/vendor/lib[64]/vndk-sp
- SP-HAL in
/vendor/lib[64]
oder/vendor/lib[64]/hw
- SP-HAL-Dep in
/vendor/lib[64]
oder/vendor/lib[64]/hw
Versehen Sie diese Dateien mit dem Label same_process_hal_file
,
in der Partition vendor
ist standardmäßig nicht für coredomain
zugänglich. Fügen Sie Zeilen wie diese hinzu:
Folgendes in die anbieterspezifische file_contexts
-Datei einfügen:
/vendor/lib(64)?/hw/libMySpHal\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/vndk-sp/libBase\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libBaseInternal\.so u:object_r:same_process_hal_file:s0