در اندروید، ویژگی های سیستم در کلاس ConfigStore ذخیره می شود. ConfigStore از پرچمهای ساخت برای ذخیره مقادیر پیکربندی در پارتیشن فروشنده استفاده میکند و یک سرویس در پارتیشن سیستم با استفاده از HIDL به آن مقادیر دسترسی پیدا میکند.
ویژگی های سیستم ازPRODUCT_DEFAULT_PROPERTY_OVERRIDES برای ذخیره ویژگی های سیستم در default.prop در پارتیشن فروشنده استفاده می کند و این سرویس از sysprop برای خواندن این ویژگی ها استفاده می کند. ConfigStore HAL برای پشتیبانی از پارتیشن های فروشنده قدیمی در AOSP باقی می ماند. در دستگاههای دارای Android 10، surfaceflinger ابتدا ویژگیهای سیستم را میخواند. اگر هیچ ویژگی سیستمی برای یک آیتم پیکربندی در SurfaceFlingerProperties.sysprop تعریف نشده باشد، surfaceflinger به ConfigStore HAL برمی گردد.
پرچم ها و ویژگی های سیستم را بسازید
همانطور که در جدول زیر نشان داده شده است، هر پرچم ساخت در ConfigStore دارای یک ویژگی سیستم منطبق است.
| پرچم بسازید | ویژگی های سیستم | 
|---|---|
 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 | 
ویژگی های سیستم جدید
اندروید 10 شامل ویژگی های جدید سیستم زیر است:
-  
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 
 برای جزئیات بیشتر در مورد این ویژگی ها، به frameworks/native/services/surfaceflinger/sysprop/SurfaceFlingerProperties.sysprop مراجعه کنید.
از SurfaceFlingerProperties استفاده کنید
 در مثالهای زیر برای کتابخانه SurfaceFlingerProperties، نام تابع api_name در 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); ... } ...