Tradefed में keystore का कॉन्सेप्ट शामिल है. इसमें सीक्रेट को keystore सेवा में सेव किया जा सकता है. साथ ही, टेस्ट रन के दौरान टेस्ट में इस्तेमाल करने के लिए इनका अनुरोध किया जा सकता है.
कीस्टोर का इस्तेमाल करना
कीस्टोर का इस्तेमाल करने के लिए, आपको सबसे पहले अपने ग्लोबल कॉन्फ़िगरेशन में कीस्टोर के सोर्स को तय करना होगा.
सेव करने के बाद, सेव किए गए पासकोड का इस्तेमाल इन तरीकों से किया जा सकता है: USE_KEYSTORE@{key}
JSONFileKeyStore
Tradefed कोर में सैंपल के तौर पर लागू किए गए JSON कीस्टोर में, JSONFileKeyStoreClient
का इस्तेमाल किया जाता है. इस कीस्टोर का इस्तेमाल करने के लिए, आपको एक JSON कुंजी वाली फ़ाइल तय करनी होगी. इसमें कुंजी से वैल्यू मैपिंग होती है.
उदाहरण के लिए, /path/to/keystore.json
फ़ाइल को इस तरह से तय किया जा सकता है
{
"test_account": "foo@gmail.com",
"test_account_pwd": "helloworld",
"wifi_lab_ssid": "Google_private_AP",
"wifi_lab_pwd": "secret123",
}
इसके बाद, TF की ग्लोबल कॉन्फ़िगरेशन फ़ाइल में ये लाइनें जोड़ें:
<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
</key_store>
अब संबंधित टेस्ट को लागू करते समय, USE_KEYSTORE@test_account
के तौर पर वैल्यू पास की जा सकती हैं. इसके बाद, TF कीस्टोर से क्वेरी करेगा और टेस्ट के हिस्से के तौर पर इसकी वैल्यू का इस्तेमाल करेगा.
होस्ट पर आधारित कीस्टोर फ़ाइल
होस्ट के आधार पर की-वैल्यू पेयर तय करने के लिए, /path/to/keystore_ssid.json
फ़ाइल को इस तरह से तय किया जा सकता है
{
"host_a.*\\.corp\\.com": {
"wifi_lab_ssid": "ssid_a",
"wifi_lab_pwd": "secret_a"
},
"host_b.*\\.corp\\.com": {
"wifi_lab_ssid": "ssid_b",
"wifi_lab_pwd": "secret_b"
}
}
फ़ाइल में मौजूद किसी एंट्री की कुंजी, होस्टनेम के लिए रेगुलर एक्सप्रेशन (regex) पैटर्न होती है. साथ ही, वैल्यू, होस्टनेम से मेल खाने वाले किसी भी होस्ट के लिए, कुंजी-वैल्यू पेयर का सेट होती है.
इसके बाद, होस्ट-आधारित कीस्टोर फ़ाइल को शामिल करने के लिए, अपनी TF ग्लोबल कॉन्फ़िगरेशन फ़ाइल को अपडेट करें:
<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
<option name="host-based-key-store-file" value="/path/to/keystore-ssid.json" />
</key_store>
होस्ट-आधारित कीस्टोर फ़ाइल में तय की गई किसी कुंजी की वैल्यू, json-key-store-file
में बताई गई कीस्टोर फ़ाइल में तय की गई वैल्यू को बदल देती है.
जब कीस्टोर में होस्ट-आधारित कई कीस्टोर फ़ाइलें मौजूद हों, तो क्रम मायने रखता है. अगर किसी कुंजी की वैल्यू कई फ़ाइलों में तय की गई है, तो ऐसी आखिरी फ़ाइल में मौजूद वैल्यू, बाकी वैल्यू को बदल देती है.