ใช้การกำหนดค่าที่ลงชื่อ

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