กำลังดำเนินการ Config ที่ลงนามแล้ว

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

การรองรับ Signed Config อย่างเหมาะสมช่วยให้แน่ใจว่าไลบรารี AndroidX จะทำงานอย่างถูกต้องบนอุปกรณ์ในอนาคต

ไม่สามารถปรับแต่งคุณสมบัตินี้ได้ ได้รับการสนับสนุนอย่างเต็มที่ใน AOSP และไม่ต้องใช้ความพยายามของ OEM ในการสนับสนุน

ตัวอย่างและที่มา

การดำเนินการตามคุณลักษณะที่อยู่ในเซิร์ฟเวอร์ระบบที่ frameworks/base/services/core/java/com/android/server/signedconfig การทดสอบ CTS CtsSignedConfigHostTestCases รวมถึงการใช้งานตัวอย่างและตัวอย่างการตั้งค่าใน cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml

การดำเนินการ

ไม่จำเป็นต้องใช้ความพยายามใดๆ ในการสนับสนุนคุณลักษณะนี้ และไม่มีข้อกำหนดฮาร์ดแวร์เฉพาะ

คุณลักษณะนี้ใช้คีย์ข้อมูลเมตาของแอปพลิเคชันสองคีย์เพื่อฝังการกำหนดค่าและลายเซ็นภายใน APK ปุ่มเหล่านี้จะ android.settings.global และ android.settings.global.signature หากหรือเมื่อไลบรารี AndroidX กำหนดให้ลบอินเทอร์เฟซที่ไม่ใช่ SDK ออกจากบัญชีดำในอนาคต ทีมงาน Android และ/หรือเป็นส่วนหนึ่งของ AndroidX จะเผยแพร่ค่าสำหรับคีย์เหล่านี้

APK ที่เมตาดาต้าคีย์ android.settings.global และ android.settings.global.signature ทั้งสองมีฐานข้อมูลที่เข้ารหัส-64 คุ้มค่าสำหรับคีย์ android.settings.global เป็น JSON เข้ารหัสค่าการตั้งค่าที่จะนำไปใช้กับการตั้งค่าระดับโลกใน SettingsProvider ค่าสำหรับ android.settings.global.signature เป็นลายเซ็น ECDSA-P256 ของ JSON ข้อมูล ลายเซ็นจะใช้เพื่อตรวจสอบที่มาของข้อมูลการกำหนดค่า

คุณลักษณะนี้ไม่ปรากฏให้ผู้ใช้เห็น

การปรับแต่ง

คุณลักษณะนี้ไม่ได้มีไว้สำหรับการปรับแต่ง OEM ไม่แนะนำให้แก้ไขคุณลักษณะนี้ รวมถึงการเปลี่ยนคีย์ การเปลี่ยนแปลงใดๆ ที่เกิดขึ้นอาจทำให้ AndroidX ทำงานไม่ถูกต้องบนอุปกรณ์ที่ได้รับผลกระทบในอนาคต

การตรวจสอบความถูกต้อง

การทดสอบ CTS CtsSignedConfigHostTestCases ตรวจสอบการดำเนินงานคุณลักษณะ

นอกจากนี้คุณยังสามารถทดสอบคุณลักษณะด้วยตนเองโดยการติดตั้งเอพีเคที่เหมาะสมและตรวจสอบ adb logcat เอาท์พุท:

$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...