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

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