ฟีเจอร์การกำหนดค่าที่ลงนามช่วยให้ฝังการกำหนดค่าข้อจำกัดของอินเทอร์เฟซที่ไม่ใช่ SDK ใน APK ได้ ซึ่งจะช่วยให้สามารถนำอินเทอร์เฟซที่ไม่ได้อยู่ใน SDK บางรายการออกจากบัญชีดำ เพื่อ อนุญาตให้ AndroidX ใช้ได้อย่างปลอดภัย ซึ่งจะช่วยให้ทีม AndroidX เพิ่มการรองรับ ฟีเจอร์ใหม่ๆ ใน Android เวอร์ชันที่เผยแพร่ไปแล้วได้ โดย รองรับใน Android 10 ขึ้นไป
การรองรับการกำหนดค่าที่ลงนามอย่างเหมาะสมจะช่วยให้มั่นใจได้ว่าไลบรารี AndroidX จะ ทำงานได้อย่างถูกต้องในอุปกรณ์ในอนาคต
คุณปรับแต่งฟีเจอร์นี้ไม่ได้ AOSP รองรับฟีเจอร์นี้อย่างเต็มรูปแบบและ ไม่ต้องใช้ความพยายามจาก OEM ในการรองรับ
ตัวอย่างและแหล่งที่มา
การติดตั้งใช้งานฟีเจอร์นี้อยู่ในเซิร์ฟเวอร์ระบบที่
frameworks/base/services/core/java/com/android/server/signedconfig
การทดสอบ CTS
test 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
...