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