# `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-27JA/topics/setup_kubernetes_with_qualcomm_linux.md) [Next Topic
Persistパーティション](https://docs.qualcomm.com/bundle/publicresource/80-70020-27JA/topics/persist_partition.md)