ฟีเจอร์การกําหนดค่าที่ลงชื่อช่วยให้คุณฝังการกําหนดค่าข้อจํากัดของอินเทอร์เฟซที่ไม่ใช่ 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
...