Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
ConfigStore
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Unter Android werden Systemeigenschaften in der ConfigStore-Klasse gespeichert. ConfigStore verwendet Build-Flags, um Konfigurationswerte in der Anbieterpartition zu speichern. Ein Dienst in der Systempartition greift über HIDL auf diese Werte zu.
Systemeigenschaften werden mit
PRODUCT_DEFAULT_PROPERTY_OVERRIDES
in
default.prop
in der Anbieterpartition gespeichert und der Dienst verwendet
sysprop
, um diese Eigenschaften zu lesen.
Die ConfigStore HAL bleibt in AOSP, um ältere Anbieterpartitionen zu unterstützen. Auf Geräten mit Android 10 liest surfaceflinger
zuerst Systemeigenschaften. Wenn für ein Konfigurationselement in SurfaceFlingerProperties.sysprop
keine Systemeigenschaft definiert ist, wechselt surfaceflinger
zur ConfigStore HAL.
Build-Flags und Systemeigenschaften
Jedes Build-Flag in ConfigStore hat eine entsprechende Systemeigenschaft, wie in der folgenden Tabelle dargestellt.
Build-Flags |
Systemeigenschaften |
TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS
|
ro.surface_flinger.force_hwc_copy_for_virtual_displays
|
TARGET_HAS_HDR_DISPLAY
|
ro.surface_flinger.has_HDR_display
|
TARGET_HAS_WIDE_COLOR_DISPLAY
|
ro.surface_flinger.has_wide_color_display
|
NUM_FRAMEBUFFER_SURFACE_BUFFERS
|
ro.surface_flinger.max_frame_buffer_acquired_buffers
|
MAX_VIRTUAL_DISPLAY_DIMENSION
|
ro.surface_flinger.max_virtual_display_dimension
|
PRIMARY_DISPLAY_ORIENTATION
|
ro.surface_flinger.primary_display_orientation
|
PRESENT_TIME_OFFSET_FROM_VSYNC_NS
|
ro.surface_flinger.present_time_offset_from_vsync_ns
|
TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK
|
ro.surface_flinger.running_without_sync_framework
|
SF_START_GRAPHICS_ALLOCATOR_SERVICE
|
ro.surface_flinger.start_graphics_allocator_service
|
TARGET_USE_CONTEXT_PRIORITY
|
ro.surface_flinger.use_context_priority
|
USE_VR_FLINGER
|
ro.surface_flinger.use_vr_flinger
|
VSYNC_EVENT_PHASE_OFFSET_NS
|
ro.surface_flinger.vsync_event_phase_offset_ns
|
SF_VSYNC_EVENT_PHASE_OFFSET_NS
|
ro.surface_flinger.vsync_sf_event_phase_offset_ns
|
Neue Systemeigenschaften
Android 10 enthält die folgenden neuen Systemeigenschaften:
ro.surface_flinger.default_composition_dataspace
ro.surface_flinger.default_composition_pixel_format
ro.surface_flinger.use_color_management
ro.surface_flinger.wcg_composition_dataspace
ro.surface_flinger.wcg_composition_pixel_format
ro.surface_flinger.display_primary_red
ro.surface_flinger.display_primary_green
ro.surface_flinger.display_primary_blue
ro.surface_flinger.display_primary_white
ro.surface_flinger.protected_contents
ro.surface_flinger.set_idle_timer_ms
ro.surface_flinger.set_touch_timer_ms
ro.surface_flinger.use_smart_90_for_video
ro.surface_flinger.protected_contents
ro.surface_flinger.support_kernel_idle_timer
Weitere Informationen zu diesen Properties finden Sie unter frameworks/native/services/surfaceflinger/sysprop/SurfaceFlingerProperties.sysprop
.
SurfaceFlingerProperties verwenden
In den folgenden Beispielen für die SurfaceFlingerProperties-Bibliothek lautet der Funktionsname api_name
in SurfaceFlingerProperties.sysprop
.
cc_binary {
name: "cc_client",
srcs: ["baz.cpp"],
shared_libs: ["SurfaceFlingerProperties"],
}
java_library {
name: "JavaClient",
srcs: ["foo/bar.java"],
libs: ["SurfaceFlingerProperties"],
}
import android.sysprop.SurfaceFlingerProperties;
...
static void foo() {
...
boolean temp = SurfaceFlingerProperties.vsync_event_phase_offset_ns().orElse(true);
...
}
...
#include <SurfaceFlingerProperties.sysprop.h>
using namespace android::sysprop;
...
void bar() {
...
bool temp = SurfaceFlingerProperties::vsync_event_phase_offset_ns(true);
...
}
...
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-26 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-26 (UTC)."],[],[],null,["# ConfigStore\n\nIn Android, system properties are stored in the ConfigStore class. ConfigStore uses build flags\nto store config values in the vendor partition, and a service in the system partition accesses\nthose values using HIDL.\nSystem properties use `PRODUCT_DEFAULT_PROPERTY_OVERRIDES` to store system properties in `default.prop` in the vendor partition, and the service uses `sysprop` to read those properties.\n\n\u003cbr /\u003e\n\n\nThe ConfigStore HAL remains in AOSP to support legacy vendor partitions. On\ndevices running Android 10,\n`surfaceflinger` reads system properties first; if no system\nproperty is defined for a config item in\n`SurfaceFlingerProperties.sysprop`, `surfaceflinger`\nfalls back to the ConfigStore HAL.\n\nBuild flags and system properties\n---------------------------------\n\n\nEach build flag in ConfigStore has a matching system property, as shown in the\nfollowing table.\n\n| Build flags | System properties |\n|-----------------------------------------|----------------------------------------------------------|\n| `TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS` | `ro.surface_flinger.force_hwc_copy_for_virtual_displays` |\n| `TARGET_HAS_HDR_DISPLAY` | `ro.surface_flinger.has_HDR_display` |\n| `TARGET_HAS_WIDE_COLOR_DISPLAY` | `ro.surface_flinger.has_wide_color_display` |\n| `NUM_FRAMEBUFFER_SURFACE_BUFFERS` | `ro.surface_flinger.max_frame_buffer_acquired_buffers` |\n| `MAX_VIRTUAL_DISPLAY_DIMENSION` | `ro.surface_flinger.max_virtual_display_dimension` |\n| `PRIMARY_DISPLAY_ORIENTATION` | `ro.surface_flinger.primary_display_orientation` |\n| `PRESENT_TIME_OFFSET_FROM_VSYNC_NS` | `ro.surface_flinger.present_time_offset_from_vsync_ns` |\n| `TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK` | `ro.surface_flinger.running_without_sync_framework` |\n| `SF_START_GRAPHICS_ALLOCATOR_SERVICE` | `ro.surface_flinger.start_graphics_allocator_service` |\n| `TARGET_USE_CONTEXT_PRIORITY` | `ro.surface_flinger.use_context_priority` |\n| `USE_VR_FLINGER` | `ro.surface_flinger.use_vr_flinger` |\n| `VSYNC_EVENT_PHASE_OFFSET_NS` | `ro.surface_flinger.vsync_event_phase_offset_ns` |\n| `SF_VSYNC_EVENT_PHASE_OFFSET_NS` | `ro.surface_flinger.vsync_sf_event_phase_offset_ns` |\n\nNew system properties\n---------------------\n\n\nAndroid 10 includes the following new system\nproperties:\n\n- `ro.surface_flinger.default_composition_dataspace`\n- `ro.surface_flinger.default_composition_pixel_format`\n- `ro.surface_flinger.use_color_management`\n- `ro.surface_flinger.wcg_composition_dataspace`\n- `ro.surface_flinger.wcg_composition_pixel_format`\n- `ro.surface_flinger.display_primary_red`\n- `ro.surface_flinger.display_primary_green`\n- `ro.surface_flinger.display_primary_blue`\n- `ro.surface_flinger.display_primary_white`\n- `ro.surface_flinger.protected_contents`\n- `ro.surface_flinger.set_idle_timer_ms`\n- `ro.surface_flinger.set_touch_timer_ms`\n- `ro.surface_flinger.use_smart_90_for_video`\n- `ro.surface_flinger.protected_contents`\n- `ro.surface_flinger.support_kernel_idle_timer`\n\n\nFor details on these properties, refer to\n`frameworks/native/services/surfaceflinger/sysprop/SurfaceFlingerProperties.sysprop`.\n\nUse SurfaceFlingerProperties\n----------------------------\n\n\nIn the following examples for the SurfaceFlingerProperties library, the\nfunction name is `api_name` in\n`SurfaceFlingerProperties.sysprop`. \n\n```carbon\ncc_binary {\n name: \"cc_client\",\n srcs: [\"baz.cpp\"],\n shared_libs: [\"SurfaceFlingerProperties\"],\n}\njava_library {\n name: \"JavaClient\",\n srcs: [\"foo/bar.java\"],\n libs: [\"SurfaceFlingerProperties\"],\n}\n``` \n\n```python\nimport android.sysprop.SurfaceFlingerProperties;\n...\n\nstatic void foo() {\n ...\n boolean temp = SurfaceFlingerProperties.vsync_event_phase_offset_ns().orElse(true);\n ...\n}\n...\n``` \n\n```arduino\n#include \u003cSurfaceFlingerProperties.sysprop.h\u003e\nusing namespace android::sysprop;\n\n...\n\nvoid bar() {\n ...\n bool temp = SurfaceFlingerProperties::vsync_event_phase_offset_ns(true);\n ...\n}\n...\n```"]]