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

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

การรองรับการกำหนดค่าที่ลงชื่ออย่างเหมาะสมจะช่วยให้แน่ใจว่าไลบรารี 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
...