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

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