Matter cihaz testi sertifikaları oluşturma

OTA testi gibi belirli geliştirme senaryolarında, Üretim Konusu olmayan sertifikalar.

Google ekosisteminin Cihaz OTA Yazılımı gibi bazı özellikleri Güncellemeler, Test VID/PID kullanılarak gerçekleştirilemez.

Bu kılavuzda, Üretim dışı ürün veya hizmetlerin nasıl oluşturulacağı ve doğrulanacağı açıklanmaktadır. Testte kullanılacak Matter sertifika. Oluşturulan şunlardır:

  1. Sertifika Beyanı (CD)
  2. Ürün Onayı Ara Sertifikası (PAI)
  3. Cihaz Onay Sertifikası (DAC)

Çalıştırma işlemi sırasında bir Matter sertifikalı cihazın kendisini onaylaması gerekir; diğer bir deyişle, Matter sertifikalı orijinal bir üründür. Kimlik bilgileri onay için Matter cihaz tarafından kullanılıyor şunlardan oluşur:

  1. Onay anahtar çifti
  2. Sertifika zinciri

Cihaz Onay Sertifikası (DAC), sertifikanın ilk bağlantısıdır ve Ürün Onayı Ara Sertifikası ile doğrulanır. (PAI) adlı tüzel kişiliği temsil eder. (PAA).

Sertifikalar, onay anahtar çiftiyle aynı anda imzalanır. ve Sertifika Yetkilisi 1'in özel anahtarı kullanılarak imzalanır. güven zinciri oluşturarak işe yarar. Yani, DAC sertifikası bir PAI anahtarıyla, PAI sertifikası da bir PAA anahtarıyla değiştirin. Zincirin en üstünde yer alan PAA sertifikaları kendinden imzalıdır. Bu güven zinciri, birleşik bir PAA yapısı oluşturur. Bu yapı, Search Ads 360'ta Dağıtılmış Uyumluluk Ledger'ı (DCL).

Onay süreci ve Sertifika Beyanları (CD) hakkında daha fazla bilgi şurada bulunabilir: Ek Onay Belgeleri ve Mesajlar ve Matter Spesifikasyonu'nda da gösterilebilir.

Matter SDK'sını yükleyin

Bu talimatlarda, Matter SDK'sı. Lütfen GitHub veya Konu'yu kullanmaya başlama başlıklı makaleyi inceleyin daha fazla bilgi edinin.

Cihazınızda yoksa xxd hexdump yardımcı programını yükleyin. Bu araç, aşağıdaki adımları izleyin:

sudo apt-get install xxd

Derleme: chip-cert

  1. SDK'nın yeni bir sürümü üzerinde çalıştığınızdan emin olun. Bu prosedürler GitHub SHA 0b17bce8 üzerinde v1.0-branch dalında test edildi:

    $ cd connectedhomeip
    $ git checkout v1.0-branch
    $ git pull
    
  2. Çeşitli işlemler için kullanılan chip-cert aracını geliştirerek Matter cihaz için kimlik bilgileri:

    1. Derlemeyi yapılandırın:

      $ cd src/credentials
      $ source ../../scripts/activate.sh
      $ gn gen out
      

      Örnek gn çıkışı:

      Done. Made 5774 targets from 289 files in 658ms
      
    2. Derlemeyi çalıştırın:

      $ ninja -C out
      

      Örnek ninja çıkışı:

      ninja: Entering directory `out'
      [2000/2000] stamp obj/default.stamp
      

Sertifikalarınızı bastırın

Özel VID/PID'nizi ortam değişkeni olarak dışa aktararak komut bağımsız değişkenlerinizi düzenlerken büküm hatası oluştu:

$ cd ../..
$ export VID=hexVendorId
$ export PID=hexProductId

CD Oluştur

  1. chip-cert kullanarak CD'yi oluşturun. Yetkili kişi şu anda yalnızca ve VID'nin, cihaz tarafından başka bir yerde açığa çıkan verilerle eşleştiğini doğrulayın: Temel Bilgi Kümesi, DAC ve DAC kaynağı (varsa). Ayrılabilirsiniz diğer alanlarda değişiklik yapılmadı:

    $ src/credentials/out/chip-cert gen-cd \
      --key credentials/test/certification-declaration/Chip-Test-CD-Signing-Key.pem \
      --cert credentials/test/certification-declaration/Chip-Test-CD-Signing-Cert.pem \
      --out credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.der \
      --format-version "1" \
      --vendor-id "${VID}" \
      --product-id "${PID}" \
      --device-type-id "0x1234" \
      --certificate-id "ZIG20141ZB330001-24" \
      --security-level "0" \
      --security-info "0" \
      --version-number "9876" \
      --certification-type "0"
    
  2. CD'yi doğrulayın. VID/PID bilginizi (ondalık biçimde) içerdiğinden emin olun:

    $ src/credentials/out/chip-cert print-cd credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.der
    

    Örnek çıkış:

    SignerKeyId value: hex:62FA823359ACFAA9963E1CFA140ADDF504F37160
    0x01, tag[Anonymous]: 0xffffffff, type: Structure (0x15), container:
    0x04,     tag[Context Specific]: 0x0, type: Unsigned Fixed Point (0x04), value: 1
    0x08,     tag[Context Specific]: 0x1, type: Unsigned Fixed Point (0x04), value: XXXXX // <- VID
    0x0A,     tag[Context Specific]: 0x2, type: Array (0x16), container:
    0x0D,         tag[Anonymous]: 0xffffffff, type: Unsigned Fixed Point (0x04), value: XXXXX // <- PID
    0x12,     tag[Context Specific]: 0x3, type: Unsigned Fixed Point (0x04), value: 4660
    0x15,     tag[Context Specific]: 0x4, type: UTF-8 String (0x0c), length: 19, value: "ZIG20141ZB330001-24"
    0x2B,     tag[Context Specific]: 0x5, type: Unsigned Fixed Point (0x04), value: 0
    0x2E,     tag[Context Specific]: 0x6,type: Unsigned Fixed Point (0x04), value: 0
    0x32,     tag[Context Specific]: 0x7, type: Unsigned Fixed Point (0x04), value: 39030
    0x35,     tag[Context Specific]: 0x8, type: Unsigned Fixed Point (0x04), value: 0
    

PAI ve DAC oluşturma

Bu örnekte Matter adlı ürünün kendi test Ürününü kullanacağız. Onay Yetkilisi (PAA) sertifikası ve imzalama anahtarı Chip-Test-PAA-NoVID kök sertifikamız olacak. Bunu, kendi PAI'mizi oluşturmak için kök CA olarak kullanacağız ve DAC.

  1. PAA'yı kullanarak PAI oluşturma İsteğe bağlı olarak PID'yi ekleyebilirsiniz. farklı bilgiler sağlar ancak bunu atlanması daha fazla esneklik sağlar teşvik etmek anlamına gelir. Ek PID'ler için DAC'lere ihtiyacınız varsa yalnızca DAC oluşturma adımı:

    $ src/credentials/out/chip-cert gen-att-cert --type i \
      --subject-cn "Matter Test PAI" \
      --subject-vid "${VID}" \
      --valid-from "2021-06-28 14:23:43" \
      --lifetime "4294967295" \
      --ca-key credentials/test/attestation/Chip-Test-PAA-NoVID-Key.pem \
      --ca-cert credentials/test/attestation/Chip-Test-PAA-NoVID-Cert.pem \
      --out-key credentials/test/attestation/"test-PAI-${VID}-key".pem \
      --out credentials/test/attestation/"test-PAI-${VID}-cert".pem
    
  2. PAI kullanarak DAC oluşturma:

    $ src/credentials/out/chip-cert gen-att-cert --type d \
      --subject-cn "Matter Test DAC 0" \
      --subject-vid "${VID}" \
      --subject-pid "${PID}" \
      --valid-from "2021-06-28 14:23:43" \
      --lifetime "4294967295" \
      --ca-key credentials/test/attestation/"test-PAI-${VID}-key".pem \
      --ca-cert credentials/test/attestation/"test-PAI-${VID}-cert".pem \
      --out-key credentials/test/attestation/"test-DAC-${VID}-${PID}-key".pem \
      --out credentials/test/attestation/"test-DAC-${VID}-${PID}-cert".pem
    
  3. DAC, PAI ve PAA zincirini doğrulayın. Çıkışta hata yoksa sertifika onay zincirinin başarıyla doğrulandığı anlamına gelir:

    $ src/credentials/out/chip-cert validate-att-cert \
    --dac credentials/test/attestation/"test-DAC-${VID}-${PID}-cert".pem \
    --pai credentials/test/attestation/"test-PAI-${VID}-cert".pem \
    --paa credentials/test/attestation/Chip-Test-PAA-NoVID-Cert.pem
    
  4. openssl kullanarak anahtarlarınızı inceleyebilirsiniz:

    $ openssl ec -noout -text -in \
      credentials/test/attestation/test-DAC-${VID}-${PID}-key.pem
    

    Örnek çıkış:

    read EC key
    Private-Key: (256 bit)
    priv:
        c9:f2:b3:04:b2:db:0d:6f:cd:c6:be:f3:7b:76:8d:
        8c:01:4e:0b:9e:ce:3e:72:49:3c:0e:35:63:7c:6c:
        6c:d6
    pub:
        04:4f:93:ba:3b:bf:63:90:73:98:76:1e:af:87:79:
        11:e6:77:e8:e2:df:a7:49:f1:7c:ac:a8:a6:91:76:
        08:5b:39:ce:6c:72:db:6d:9a:92:b3:ba:05:b0:e8:
        31:a0:bf:36:50:2b:5c:72:55:7f:11:c8:01:ff:3a:
        46:b9:19:60:28
    ASN1 OID: prime256v1
    NIST CURVE: P-256
    
  5. Oluşturulan sertifikalarınızı incelemek için openssl kullanabilirsiniz:

    $ openssl x509 -noout -text -in \
      credentials/test/attestation/test-DAC-${VID}-${PID}-cert.pem
    

    Örnek çıkış:

    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 2875998130766646679 (0x27e9990fef088d97)
            Signature Algorithm: ecdsa-with-SHA256
            Issuer: CN = Matter Test PAI, 1.3.6.1.4.1.37244.2.1 = hexVendorId
            Validity
                Not Before: Jun 28 14:23:43 2021 GMT
                Not After : Dec 31 23:59:59 9999 GMT
            Subject: CN = Matter Test DAC 0, 1.3.6.1.4.1.37244.2.1 = hexVendorId, 1.3.6.1.4.1.37244.2.2 = hexProductId
            Subject Public Key Info:
                Public Key Algorithm: id-ecPublicKey
                    Public-Key: (256 bit)
                    pub:
                        04:4f:93:ba:3b:bf:63:90:73:98:76:1e:af:87:79:
                        11:e6:77:e8:e2:df:a7:49:f1:7c:ac:a8:a6:91:76:
                        08:5b:39:ce:6c:72:db:6d:9a:92:b3:ba:05:b0:e8:
                        31:a0:bf:36:50:2b:5c:72:55:7f:11:c8:01:ff:3a:
                        46:b9:19:60:28
                    ASN1 OID: prime256v1
                    NIST CURVE: P-256
            X509v3 extensions:
                X509v3 Basic Constraints: critical
                    CA:FALSE
                X509v3 Key Usage: critical
                    Digital Signature
                X509v3 Subject Key Identifier:
                    21:0A:CA:B1:B6:5F:17:65:D8:61:19:73:84:1A:9D:52:81:19:C5:39
                X509v3 Authority Key Identifier:
                    37:7F:24:9A:73:41:4B:16:6E:6A:42:6E:F5:E8:89:FB:75:F8:77:BB
        Signature Algorithm: ecdsa-with-SHA256
        Signature Value:
            30:45:02:20:38:8f:c5:0d:3e:90:95:dd:7d:7c:e9:5a:05:19:
            1f:2d:14:08:a3:d7:0e:b5:15:6d:d3:b0:0b:f7:b8:28:4d:bf:
            02:21:00:d4:05:30:43:a6:05:00:0e:b9:99:0d:34:3d:75:fe:
            d3:c1:4e:73:ff:e7:05:64:7a:62:8d:2d:38:8f:fd:4d:ad
    

PAA

Kendinden imzalı bir PAA oluşturmak için benzer bir süreç kullanılabilir ancak gerekmez.

Bunun yerine, kendinden imzalı mevcut bir geliştirme PAA'sı kullanarak bu adımları izleyin.

CD oluşturma konusunda daha fazla örnek için credentials/test/gen-test-cds.sh PAA, PAI ve DAC oluşturma hakkında daha fazla örnek için bkz. credentials/test/gen-test-attestation-certs.sh

Sertifikaları değiştir

PAA ve PAI'yı değiştirme

  1. Aşağıdaki yardımcı komut dosyasını çalıştırın: CHIP Sertifika Aracı (chip-cert) sertifikalarınızın C stilindekilerini oluşturun.

Yerleştirilebilir Sertifikalar Yardımcı komut dosyasını indirme

#!/bin/bash

#
# generate-embeddable-certs.sh script
# —----------------------------------
#
# This script generates self-minted DAC and PAI.
# The output may easily be included in your C++ source code.
#

# Edit this information with your paths and certificates
folder="credentials/test/attestation"
chip_cert_tool="src/credentials/out/chip-cert"
cert_file_der="${folder}/test-PAI-${VID}-cert.der"
cert_file_pem="${folder}/test-PAI-${VID}-cert.pem"
key_file_pem="${folder}/test-PAI-${VID}-key.pem"

type="Pai"

printf "namespace chip {\n"
printf "namespace DevelopmentCerts {\n\n"
printf "#if CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID == ${PID}\n\n"

printcert() {
  # convert cert to DER
  if [ -f "${cert_file_der}" ]; then
      rm "${cert_file_der}"
  fi
  "${chip_cert_tool}" convert-cert "${cert_file_pem}" "${cert_file_der}" --x509-der

  printf "// ------------------------------------------------------------ \n"
  printf "// ${type} CERTIFICATE ${cert_file_der} \n\n"

  printf "constexpr uint8_t ${type}_Cert_Array[] = {\n"
  less -f "${cert_file_der}" | od -t x1 -An | sed 's/\/,/g' | sed 's/^/   /g'
  printf "};\n\n"
  printf "ByteSpan k${type}Cert = ByteSpan(${type}_Cert_Array);\n\n"

  printf "// ${type} PUBLIC KEY FROM ${key_file_pem} \n\n"

  printf "constexpr uint8_t ${type}_PublicKey_Array[] = {\n"
  openssl ec -text -noout -in "${key_file_pem}" 2>/dev/null | sed '/ASN1 OID/d' | sed '/NIST CURVE/d' | sed -n '/pub:/,$p' | sed '/pub:/d' | sed 's/\([0-9a-fA-F][0-9a-fA-F]\)/0x\1/g' | sed 's/:/, /g'
  printf "};\n\n"
  printf "ByteSpan k${type}PublicKey = ByteSpan(${type}_PublicKey_Array);\n\n"

  printf "// ${type} PRIVATE KEY FROM ${key_file_pem} \n\n"

  printf "constexpr uint8_t ${type}_PrivateKey_Array[] = {\n"
  openssl ec -text -noout -in "${key_file_pem}" 2>/dev/null | sed '/read EC key/d' | sed '/Private-Key/d' | sed '/priv:/d' | sed '/pub:/,$d' | sed 's/\([0-9a-fA-F][0-9a-fA-F]\)/0x\1/g' | sed 's/:/, /g'
  printf "};\n\n"
  printf "ByteSpan k${type}PrivateKey = ByteSpan(${type}_PrivateKey_Array);\n\n"
}

# generates PAI
printcert

type="Dac"
cert_file_der="${folder}/test-DAC-${VID}-${PID}-cert.der"
cert_file_pem="${folder}/test-DAC-${VID}-${PID}-cert.pem"
key_file_pem="${folder}/test-DAC-${VID}-${PID}-key.pem"

# generates DAC
printcert

printf "#endif // CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID\n"
printf "} // namespace DevelopmentCerts\n"
printf "} // namespace chip\n"


  1. PAI ve DAC çıkışının içeriğini DeviceAttestationCredentialsProvider::GetProductAttestationIntermediateCert

    Üretim cihazlarında PAI ve DAC Fabrika Verileri, CD, donanım yazılımının içine gömülü olarak gelir.

    1. Henüz Fabrika Verileri kullanmıyorsanız PAI src/credentials/examples/ExampleDACs.cpp içinde. Bu durumda, ExampleDACs.cpp dosyanız için oluşturulan kod:

      ByteSpan kDacCert       = ByteSpan(kDevelopmentDAC_Cert_FFF1_801F);
      ByteSpan kDacPrivateKey = ByteSpan(kDevelopmentDAC_PrivateKey_FFF1_801F);
      ByteSpan kDacPublicKey  = ByteSpan(kDevelopmentDAC_PublicKey_FFF1_801F);
      #endif
      } // namespace DevelopmentCerts
      } // namespace chip
      
      /* ------------------------------------------ */
      /* current end-of-file                        */
      /* ------------------------------------------ */
      
      /* ------------------------------------------ */
      /* output of creds-codelab.sh script          */
      /* ------------------------------------------ */
      
      namespace chip {
      namespace DevelopmentCerts {
      
      #if CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID == hexProductId
      
      ...
      
      ByteSpan kDacPrivateKey = ByteSpan(Dac_PrivateKey_Array);
      
      #endif // CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID
      } // namespace DevelopmentCerts
      } // namespace chip
      
    2. Fabrika Verileri veya özel bir Kimlik Bilgisi Sağlayıcısı kullanıyorsanız simgesini tıklayın. Birlikte çalıştığınız Platformunuzun ayrıntıları hakkında SoC sağlayıcınızla görüşün.

CD'yi Değiştir

  1. xxd kullanarak CD dosyanızın içeriğinin metin gösterimini çıkarın:

      $ xxd -i credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.der
    

    Örnek çıkış:

      unsigned char credentials_test_certification_declaration_Chip_Test_CD_hexVendorId_hexProductId_der[] = {
        0x30, 0x81, 0xe9, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
        0x07, 0x02, 0xa0, 0x81, 0xdb, 0x30, 0x81, 0xd8, 0x02, 0x01, 0x03, 0x31,
        0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04,
        0x02, 0x01, 0x30, 0x45, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
        0x01, 0x07, 0x01, 0xa0, 0x38, 0x04, 0x36, 0x15, 0x24, 0x00, 0x01, 0x25,
        0x01, 0xfe, 0xca, 0x36, 0x02, 0x05, 0xce, 0xfa, 0x18, 0x25, 0x03, 0x34,
        0x12, 0x2c, 0x04, 0x13, 0x5a, 0x49, 0x47, 0x32, 0x30, 0x31, 0x34, 0x31,
        0x5a, 0x42, 0x33, 0x33, 0x30, 0x30, 0x30, 0x31, 0x2d, 0x32, 0x34, 0x24,
        0x05, 0x00, 0x24, 0x06, 0x00, 0x25, 0x07, 0x76, 0x98, 0x24, 0x08, 0x00,
        0x18, 0x31, 0x7d, 0x30, 0x7b, 0x02, 0x01, 0x03, 0x80, 0x14, 0x62, 0xfa,
        0x82, 0x33, 0x59, 0xac, 0xfa, 0xa9, 0x96, 0x3e, 0x1c, 0xfa, 0x14, 0x0a,
        0xdd, 0xf5, 0x04, 0xf3, 0x71, 0x60, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86,
        0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, 0x0a, 0x06, 0x08, 0x2a,
        0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x04, 0x47, 0x30, 0x45, 0x02,
        0x20, 0x53, 0x25, 0x03, 0x2c, 0x96, 0x50, 0xb6, 0x64, 0xf4, 0x18, 0xbf,
        0x99, 0x47, 0xf8, 0x9d, 0xe6, 0xeb, 0x43, 0x94, 0xf1, 0xce, 0xb2, 0x61,
        0x00, 0xe0, 0xf9, 0x89, 0xa8, 0x71, 0x82, 0x02, 0x0a, 0x02, 0x21, 0x00,
        0xea, 0x0a, 0x40, 0xab, 0x87, 0xad, 0x7e, 0x25, 0xe1, 0xa1, 0x6c, 0xb1,
        0x12, 0xfa, 0x86, 0xfe, 0xea, 0x8a, 0xaf, 0x4b, 0xc1, 0xf3, 0x6f, 0x09,
        0x85, 0x46, 0x50, 0xb6, 0xd0, 0x55, 0x40, 0xe2
      };
      unsigned int credentials_test_certification_declaration_Chip_Test_CD_hexVendorId_hexProductId_der_len = 236;
      ```
    
  2. Önceki adımda çıkardığınız metni, tanımlamak için kullandığınız dosyaya kopyalayın derlemenize ekleyin. PAI ve DAC'de olduğu gibi bunu geliştirdiğiniz platforma göre değişir.

Kimlik bilgisi örneklerini kullanıyorsanız büyük olasılıkla şuradaki kCdForAllExamples içeriği: ExampleDACProvider::GetCertificationDeclaration, inç src/credentials/examples/DeviceAttestationCredsExample.cpp:

    const uint8_t kCdForAllExamples[] = {
            0x30, 0x81, 0xe9, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
            0x07, 0x02, 0xa0, 0x81, 0xdb, 0x30, 0x81, 0xd8, 0x02, 0x01, 0x03, 0x31,
            0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04,
            0x02, 0x01, 0x30, 0x45, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
            0x01, 0x07, 0x01, 0xa0, 0x38, 0x04, 0x36, 0x15, 0x24, 0x00, 0x01, 0x25,
            0x01, 0xfe, 0xca, 0x36, 0x02, 0x05, 0xce, 0xfa, 0x18, 0x25, 0x03, 0x34,
            0x12, 0x2c, 0x04, 0x13, 0x5a, 0x49, 0x47, 0x32, 0x30, 0x31, 0x34, 0x31,
            0x5a, 0x42, 0x33, 0x33, 0x30, 0x30, 0x30, 0x31, 0x2d, 0x32, 0x34, 0x24,
            0x05, 0x00, 0x24, 0x06, 0x00, 0x25, 0x07, 0x76, 0x98, 0x24, 0x08, 0x00,
            0x18, 0x31, 0x7d, 0x30, 0x7b, 0x02, 0x01, 0x03, 0x80, 0x14, 0x62, 0xfa,
            0x82, 0x33, 0x59, 0xac, 0xfa, 0xa9, 0x96, 0x3e, 0x1c, 0xfa, 0x14, 0x0a,
            0xdd, 0xf5, 0x04, 0xf3, 0x71, 0x60, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86,
            0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, 0x0a, 0x06, 0x08, 0x2a,
            0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x04, 0x47, 0x30, 0x45, 0x02,
            0x20, 0x53, 0x25, 0x03, 0x2c, 0x96, 0x50, 0xb6, 0x64, 0xf4, 0x18, 0xbf,
            0x99, 0x47, 0xf8, 0x9d, 0xe6, 0xeb, 0x43, 0x94, 0xf1, 0xce, 0xb2, 0x61,
            0x00, 0xe0, 0xf9, 0x89, 0xa8, 0x71, 0x82, 0x02, 0x0a, 0x02, 0x21, 0x00,
            0xea, 0x0a, 0x40, 0xab, 0x87, 0xad, 0x7e, 0x25, 0xe1, 0xa1, 0x6c, 0xb1,
            0x12, 0xfa, 0x86, 0xfe, 0xea, 0x8a, 0xaf, 0x4b, 0xc1, 0xf3, 0x6f, 0x09,
            0x85, 0x46, 0x50, 0xb6, 0xd0, 0x55, 0x40, 0xe2
        };

Hedefi oluşturma

Yeni hazırlanan kimlik bilgilerinizi kullanarak hedefinizi oluşturun ve güncelleyin. Bu bölümü platforma bağlıdır. SoC belgelerinize bakın veya Desteklenen cihazlar konulu videomuzu izleyin.

Cihazı devreye sokma

Şimdi Konu Eşleme bölümünde daha önce ele alınan adımları uygulayabilirsiniz. cihazın Matter cihazınızı şurada devreye alın: Google Home platform.

chip-tool kullanarak hata ayıkla

chip-tool, cihazınızın doğru bilgiyi gönderip göndermediğini kontrol etmek için değerli bir araç olabilir ekleyebilirsiniz. Oluşturmak için:

$ cd examples/chip-tool
$ gn gen out/debug
Done. Made 114 targets from 112 files in 157ms
$ ninja -C out/debug
ninja: Entering directory `out/debug'
$ cd ../..

Ek günlükleri etkinleştirmek için chip-tool çalıştırdığınızda --trace_decode 1 işareti. Ayrıca, belgenin yolundan ilerlemek --paa-trust-store-path işaretli PAA dosyası.

Bu nedenle, BDE kullanarak bir Thread cihazı yaptırmak için şunları çalıştırabilirsiniz:

```
$ examples/chip-tool/out/debug/chip-tool pairing ble-thread 1 \
  hex:Thread_credentials \
  pairing_code \
  discriminator \
  --paa-trust-store-path <path to PAA folder> \
  --trace_decode 1
```

Test cihazlarında <PAIRING CODE> değeri 20202021 ve <DISCRIMINATOR> 3840.

Thread kimlik bilgilerinizi Google Nest Hub (2nd gen) hesabınızdan almak için: çalıştır:

$ adb connect border_router_ip_address
$ adb -e shell ot-ctl dataset active -x
$ adb disconnect

Ayrıca bir kablosuz cihazı sipariş etmek için ble-wifi seçeneğini kullanabilirsiniz:

$ examples/chip-tool/out/debug/chip-tool pairing ble-wifi 1 "SSID" SSID_password pairing_code discriminator