# 配置 `property-vault` 属性

属性 (`property-vault`) 提供在系统中以字符串形式存储和共享键值对的功能。任何软件组件都可以共享特定键的任何值，并且任何其他进程都可以使用相同的键访问该值。`property-vault` 允许您定义重启后的持久属性。组件可以使用 `property-vault` 共享特定信息，这些信息可能与设备上的任何其他模块相关。您可以使用命令行界面 (CLI) 访问这些键值对。

Note

仅 `custom` 变体支持 `property-vault`。

## 在 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

Note

为了使属性在重新启动后仍然存在，属性键必须以 `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. 根据您使用的是 `autotools` 还是 `cmake`，更改编译配置文件。

    - 如果你正在使用 `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
    - 如果你正在使用 `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

Note

属性键名最长可达 64 个字符，属性值最长可达 92 个字符，如 `properties.h` 中 `PROP_NAME_MAX` 和 `PROP_VALUE_MAX` 所定义。
4. 在主机上编译配方，并将其包含在将刷写到设备的镜像中。

Last Published: Nov 04, 2025

[Previous Topic
使用 Qualcomm Linux 设置 Kubernetes](https://docs.qualcomm.com/bundle/publicresource/80-70022-27SC/topics/setup_kubernetes_with_qualcomm_linux.md) [Next Topic
创建二级虚拟机](https://docs.qualcomm.com/bundle/publicresource/80-70022-27SC/topics/create_secondary_virtual_machine.md)