Android 10 ประกอบด้วยโมดูลเครือข่ายต่อไปนี้:
- โมดูลส่วนประกอบเครือข่ายให้บริการ IP ทั่วไป การตรวจสอบการเชื่อมต่อเครือข่าย และการตรวจจับพอร์ทัลการเข้าสู่ระบบแบบ Captive
- โมดูล Network Stack Permission Config กำหนดสิทธิ์ที่ช่วยให้โมดูลสามารถทำงานที่เกี่ยวข้องกับเครือข่ายได้
โมดูลส่วนประกอบเครือข่าย
โมดูลส่วนประกอบเครือข่ายช่วยให้มั่นใจว่า Android สามารถปรับให้เข้ากับมาตรฐานเครือข่ายที่เปลี่ยนแปลงไปและช่วยให้สามารถทำงานร่วมกันได้กับการใช้งานใหม่ ตัวอย่างเช่น การอัปเดตการตรวจหาแคปทีฟพอร์ทัลและรหัสการเข้าสู่ระบบช่วยให้ Android อัปเดตด้วยการเปลี่ยนโมเดลพอร์ทัลแคปทีฟที่เปลี่ยนไป และการอัปเดตเป็นไฟร์วอลล์นโยบายขั้นสูง (APF) ทำให้ Android ประหยัดพลังงานบน Wi-Fi เนื่องจากแพ็กเก็ตประเภทใหม่กลายเป็นเรื่องปกติ
การเปลี่ยนแปลงใน Android 10
โมดูลส่วนประกอบเครือข่ายประกอบด้วยส่วนประกอบต่อไปนี้
- บริการไอพี คอมโพเนนต์ IpClient (เดิมคือ IpManager) จัดการการจัดเตรียมและบำรุงรักษาเลเยอร์ IP ใน Android 9 มีการใช้ข้ามกระบวนการโดยส่วนประกอบต่างๆ เช่น บลูทูธ และในระหว่างดำเนินการโดยใช้ส่วนประกอบต่างๆ เช่น Wi-Fi คอมโพเนนต์ DhcpClient รับที่อยู่ IP จากเซิร์ฟเวอร์ DHCP เพื่อให้สามารถกำหนดให้กับอินเทอร์เฟซได้
- จอภาพเครือข่าย คอมโพเนนต์ NetworkMonitor จะทดสอบความสามารถในการเข้าถึงอินเทอร์เน็ตเมื่อเชื่อมต่อกับเครือข่ายใหม่หรือเมื่อเครือข่ายขัดข้อง เมื่อตรวจพบแคปทีฟพอร์ทัล และเมื่อตรวจสอบความถูกต้องของเครือข่าย
- แอปเข้าสู่ระบบพอร์ทัลเชลย แอปเข้าสู่ระบบพอร์ทัล Captive เป็นแอปที่ติดตั้งไว้ล่วงหน้าซึ่งมีหน้าที่จัดการการเข้าสู่ระบบบนพอร์ทัลแบบ Captive นี่เป็นแอพที่แยกจากกันตั้งแต่ Android 5.0 แต่มีการโต้ตอบกับ NetworkMonitor เพื่อส่งต่อตัวเลือกผู้ใช้บางตัวไปยังระบบ
บนอุปกรณ์ที่ใช้โมดูล Networking Components บริการข้างต้นจะถูกปรับโครงสร้างเป็นกระบวนการอื่น และเข้าถึงได้โดยใช้ อินเทอร์เฟซ AIDL ที่เสถียร เส้นทาง refactor แสดงอยู่ในตารางต่อไปนี้
เส้นทาง refactor ของ IP Services
Android 9 และต่ำกว่า | ใน frameworks/base/services/net/java/android/net/ :
|
---|---|
Android 10 ขึ้นไป | packages/modules/NetworkStack |
เส้นทาง refactor ล็อกอินของ Captive Portal
Android 9 และต่ำกว่า | ใน frameworks/base/ :
|
---|---|
Android 10 ขึ้นไป | packages/modules/CaptivePortalLogin (และตำแหน่งที่ใช้ร่วมกันอื่นๆ) |
รูปแบบและการพึ่งพา
โมดูล Networking Components จัดส่งเป็น APK สามรายการ: หนึ่งรายการสำหรับบริการ IP หนึ่งรายการสำหรับการเข้าสู่ระบบพอร์ทัลแบบ Captive และอีกรายการสำหรับ Network Stack Permission Config
โมดูลส่วนประกอบเครือข่ายขึ้นอยู่กับสิ่งต่อไปนี้:
-
@hide
ที่มีสิทธิ์ในเซิร์ฟเวอร์ระบบ (เช่น ในIConnectivityManager.aidl
) API เหล่านี้ได้รับการใส่คำอธิบายประกอบด้วย@SystemApi
และได้รับการป้องกันอย่างเหมาะสมเพื่อให้เข้าถึงได้ในโมดูล แต่ไม่ใช่แอปที่มีสิทธิ์อื่นๆ (เช่น การใช้การอนุญาตลายเซ็นใหม่) - Binder IPCs ไปยัง
netd
ที่กำหนดไว้ในINetd.aidl
อินเทอร์เฟซนี้ได้รับการแปลงเป็น AIDL ที่เสถียรและอยู่ภายใต้การทดสอบความสอดคล้อง
โมดูลการกำหนดค่าการอนุญาตสแต็กเครือข่าย
โมดูล Network Stack Permission Config ไม่มีรหัส แต่กำหนดสิทธิ์สำหรับใช้โดยโมดูล Network Stack และ Captive Portal Login ระบบอนุญาตให้โมดูลที่ได้รับอนุญาตนี้ทำงานการกำหนดค่าเครือข่ายที่เกี่ยวข้องบนอุปกรณ์