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

ฟีเจอร์การกำหนดค่าที่ลงชื่ออนุญาตให้ฝังการกำหนดค่าข้อจำกัดอินเทอร์เฟซที่ไม่ใช่ SDK ได้ ใน APK วิธีนี้ช่วยให้นำอินเทอร์เฟซที่ไม่ใช่ SDK บางรายการออกจากบัญชีดำได้ ช่วยให้ AndroidX ใช้อุปกรณ์ได้อย่างปลอดภัย วิธีนี้จะช่วยให้ทีม AndroidX สามารถเพิ่มการสนับสนุน สำหรับฟีเจอร์ใหม่ๆ ใน Android เวอร์ชันต่างๆ ที่เปิดตัวไปแล้ว ซึ่งรองรับใน Android 10 ขึ้นไป

การรองรับ Signed Config อย่างเหมาะสมจะช่วยให้มั่นใจได้ว่าไลบรารี AndroidX จะทํางานได้อย่างถูกต้องในอุปกรณ์ในอนาคต

ไม่สามารถกำหนดค่าฟีเจอร์นี้ได้ ซึ่ง AOSP รองรับอย่างเต็มรูปแบบและ OEM ไม่จำเป็นต้องดำเนินการใดๆ เพื่อรองรับ

ตัวอย่างและแหล่งที่มา

การใช้งานฟีเจอร์จะอยู่ในเซิร์ฟเวอร์ของระบบที่ frameworks/base/services/core/java/com/android/server/signedconfig ซีทีเอส ทดสอบ 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
...