ฟีเจอร์ Signed Config ช่วยให้ฝังการกำหนดค่าข้อจำกัดของอินเทอร์เฟซที่ไม่ได้อยู่ใน SDK ไว้ใน APK ได้ ซึ่งจะช่วยให้คุณนำอินเทอร์เฟซที่ไม่ได้อยู่ใน SDK ที่เฉพาะเจาะจงออกจากบัญชีดำได้ เพื่อให้ AndroidX ใช้งานได้อย่างปลอดภัย และยังช่วยให้ทีม AndroidX เพิ่มการรองรับฟีเจอร์ใหม่ๆ ใน Android เวอร์ชันที่เผยแพร่ไปแล้วได้ด้วย โดยฟีเจอร์นี้รองรับใน Android 10 ขึ้นไป
การรองรับ Signed Config อย่างเหมาะสมจะช่วยให้มั่นใจได้ว่าไลบรารี AndroidX จะทำงานได้อย่างถูกต้องในอุปกรณ์ต่างๆ ในอนาคต
คุณไม่สามารถปรับแต่งฟีเจอร์นี้ได้ โดยฟีเจอร์นี้ได้รับการรองรับอย่างเต็มที่ใน AOSP และ OEM ไม่จำเป็นต้องดำเนินการใดๆ เพื่อรองรับฟีเจอร์นี้
ตัวอย่างและแหล่งที่มา
การใช้งานฟีเจอร์นี้อยู่ในเซิร์ฟเวอร์ระบบที่ frameworks/base/services/core/java/com/android/server/signedconfig การทดสอบ CTS CtsSignedConfigHostTestCases มีตัวอย่างการใช้งานและการกำหนดค่าตัวอย่างใน cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml
การใช้งาน
คุณไม่จำเป็นต้องดำเนินการใดๆ เพื่อรองรับฟีเจอร์นี้ และไม่มีข้อกำหนดด้านฮาร์ดแวร์ที่เฉพาะเจาะจง
ฟีเจอร์นี้ใช้คีย์ข้อมูลเมตาของแอปพลิเคชัน 2 รายการเพื่อฝังการกำหนดค่าและลายเซ็นไว้ใน APK โดยคีย์ดังกล่าวคือ android.settings.global และ
android.settings.global.signature หากหรือเมื่อใดก็ตามที่ไลบรารี AndroidX ต้องนำอินเทอร์เฟซที่ไม่ได้อยู่ใน SDK ออกจากบัญชีดำในอนาคต ทีม Android จะเผยแพร่ค่าสำหรับคีย์เหล่านี้ และ/หรือเผยแพร่ค่าดังกล่าวเป็นส่วนหนึ่งของ AndroidX
คีย์ข้อมูลเมตาของ APK android.settings.global และ
android.settings.global.signature มีข้อมูลที่เข้ารหัส Base64 ค่าสำหรับคีย์ android.settings.global คือค่าการกำหนดค่าที่เข้ารหัส JSON เพื่อนำไปใช้กับการตั้งค่าส่วนกลางใน SettingsProvider ส่วนค่าสำหรับ android.settings.global.signature คือลายเซ็น ECDSA-p256 ของข้อมูล JSON
โดยใช้ลายเซ็นเพื่อยืนยันแหล่งที่มาของข้อมูลการกำหนดค่า
ฟีเจอร์นี้ไม่แสดงต่อผู้ใช้
การปรับแต่ง
ฟีเจอร์นี้ไม่ได้มีไว้สำหรับการปรับแต่ง เราไม่แนะนำให้ OEM แก้ไขฟีเจอร์นี้ รวมถึงการแทนที่คีย์ เนื่องจากการเปลี่ยนแปลงใดๆ กับฟีเจอร์นี้อาจทำให้ AndroidX ทำงานไม่ถูกต้องในอุปกรณ์ที่ได้รับผลกระทบในอนาคต
การตรวจสอบ
การทดสอบ CTS CtsSignedConfigHostTestCases จะตรวจสอบการใช้งานฟีเจอร์นี้
นอกจากนี้ คุณยังทดสอบฟีเจอร์นี้ด้วยตนเองได้โดยติดตั้ง APK ที่เหมาะสมและตรวจสอบเอาต์พุต adb logcat ดังนี้
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...