ฟีเจอร์การกําหนดค่าที่ลงชื่อช่วยให้ฝังการกําหนดค่าข้อจํากัดของอินเทอร์เฟซที่ไม่ใช่ 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
การใช้งาน
คุณไม่จำเป็นต้องดำเนินการใดๆ เพื่อรองรับฟีเจอร์นี้ และไม่มีข้อกำหนดด้านฮาร์ดแวร์ที่เจาะจง
ฟีเจอร์นี้ใช้คีย์ข้อมูลเมตาของแอปพลิเคชัน 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
...