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