# `property-vault` 속성 구성

속성(`property-vault`)은 시스템 전체에서 문자열로 저장된 키-값 쌍을 저장하고 공유하는 기능을 제공합니다. 모든 소프트웨어 구성 요소는 특정 키에 대한 값을 공유할 수 있으며 다른 프로세스에서는 동일한 키를 사용하여 값에 접근할 수 있습니다. `property-vault` 를 통해 재부팅 시에도 유지되는 영구 속성을 정의할 수 있습니다. 구성 요소는 `property-vault` 를 사용하여 특정 정보를 공유할 수 있으며, 이 정보는 기기의 다른 모듈과 관련이 있을 수 있습니다. 명령줄 인터페이스(CLI)를 사용하여 이러한 키-값 쌍에 접근할 수 있습니다.

참고

`property-vault` 는 `custom` 변형에서만 지원됩니다.

## Qualcomm 기기에서 CLI를 사용하여 속성 구성

- Qualcomm 기기에서 CLI를 사용하여 속성을 설정하려면 다음 명령어를 사용하세요.

setprop "my-key" "my-value"
        Copy to clipboard
- CLI를 사용하여 속성에 접근하려면 다음 명령어를 사용하세요.

getprop "my-key"
        Copy to clipboard

    이전 명령어의 출력:

my-value
        Copy to clipboard
- 기기에서 CLI를 사용하여 속성을 설정하고 재부팅 시에도 유지하려면 다음 명령어를 사용하세요.

setprop "persist.my-key" "my-value"
        Copy to clipboard

참고

속성이 재부팅 시에도 유지되려면 속성 키가 `persist` 로 시작해야 합니다.

## Qualcomm Linux의 C/C++ 소스 파일에서 속성 사용

C/C++ 소스 코드 모듈에서 속성을 사용하려면 다음을 수행하세요.

1. `example-recipe.bb` 와 같은 프로그램에서 속성을 사용하려면 `property-vault` 에 종속성을 추가합니다.

DEPENDS += "glib-2.0 property-vault"
        RDEPENDS:${PN} += "property-vault"
        Copy to clipboard
2. 빌드 구성 파일을 변경합니다.

    1. `autotools` 를 사용 중인 경우:

        `configure.ac`

...
            
            PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.16, dummy=yes, AC_MSG_ERROR(GLib >= 2.16 is required))
            GLIB_CFLAGS="$GLIB_CFLAGS"
            GLIB_LIBS="$GLIB_LIBS"
            AC_SUBST(GLIB_CFLAGS)
            AC_SUBST(GLIB_LIBS)
            
            AC_CONFIG_FILES([Makefile])
            ...
            Copy to clipboard

        `Makefile.am`

root_sbindir       = "/sbin"
            root_sbin_PROGRAMS = property-test
            
            property_test_SOURCES  = source.c
            property_test_CFLAGS = @GLIB_CFLAGS@
            property_test_LDFLAGS = @GLIB_LIBS@ -lpropertyvault
            Copy to clipboard
    2. `cmake` 를 사용 중인 경우:

        `CMakeList.txt`

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -lpthread -lrt -lm -lglib-2.0 -ldl -latomic")
            target_link_libraries (your-lib-name propertyvault)
            Copy to clipboard
3. 소스 코드 파일을 `get` 및 `set` 속성으로 수정합니다.

    `source.c`

#include "properties.h"
        
        int main() {
              // set a property
              property_set("my-key", "my-value");
        
              // get a property
              char paramstr[PROP_VALUE_MAX];
              // value gets stored in paramstr
              property_get("my-key", paramstr, "default-val");

              // set a property which has to persist across reboots
              property_set("persist.my-key", "my-value");
        
              // get a persisted property
              property_get("my-key", paramstr, "default-val");
        
              return 0;
        }
        Copy to clipboard

참고

`properties.h` 의 `PROP_NAME_MAX` 및 `PROP_VALUE_MAX` 에 정의된 대로 속성 키 이름은 최대 64자까지, 속성 값은 최대 92자까지 사용할 수 있습니다.
4. 호스트 컴퓨터에서 레시피를 빌드하고 기기에서 플래시할 이미지의 일부로 포함합니다.

Last Published: Dec 23, 2025

[Previous Topic
Qualcomm Linux에서 Kubernetes 설정](https://docs.qualcomm.com/bundle/publicresource/80-70020-27KO/topics/setup_kubernetes_with_qualcomm_linux.md) [Next Topic
영구 파티션](https://docs.qualcomm.com/bundle/publicresource/80-70020-27KO/topics/persist_partition.md)