ใช้การกำหนดค่าที่เซ็นชื่อ

คุณลักษณะ 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 ทั้งคู่มีข้อมูลที่เข้ารหัส base-64 ค่าสำหรับคีย์ 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
...