Network Stack เป็นโมดูล Mainline ที่อัปเดตได้ ซึ่งช่วยให้มั่นใจว่า Android สามารถปรับให้เข้ากับมาตรฐานเครือข่ายที่กำลังพัฒนา และช่วยให้สามารถทำงานร่วมกับการใช้งานใหม่ๆ ได้ ตัวอย่างเช่น การอัปเดตการตรวจจับพอร์ทัลแบบ Captive และรหัสการเข้าสู่ระบบช่วยให้ Android อัปเดตอยู่เสมอด้วยการเปลี่ยนแปลงโมเดลพอร์ทัลแบบ Captive และการอัปเดต APF ช่วยให้ Android ประหยัดพลังงานบน Wi-Fi เนื่องจากแพ็กเก็ตประเภทใหม่กลายเป็นเรื่องปกติ
ส่วนประกอบที่รวมอยู่
โมดูล Network Stack ประกอบด้วยส่วนประกอบต่อไปนี้ บนอุปกรณ์ที่ใช้โมดูล บริการเหล่านี้ถูกย้ายไปยังกระบวนการอื่นและเข้าถึงได้ผ่านอินเทอร์เฟซ AIDL ที่เสถียร
บริการด้านไอพี
IpClient
(เดิมเรียกว่าIpManager
) เป็นส่วนประกอบที่รับผิดชอบในการจัดเตรียมและบำรุงรักษาเลเยอร์ IP ใน Android 9 มีการใช้งานข้ามกระบวนการโดยส่วนประกอบต่างๆ เช่น บลูทูธ และอยู่ในกระบวนการโดยส่วนประกอบต่างๆ เช่น Wi-FiDhcpClient
รับที่อยู่ IP จากเซิร์ฟเวอร์ DHCP เพื่อให้สามารถกำหนดให้กับอินเทอร์เฟซได้การตรวจสอบเครือข่าย ส่วนประกอบ
NetworkMonitor
จะทดสอบความสามารถในการเข้าถึงอินเทอร์เน็ตเมื่อเชื่อมต่อกับเครือข่ายใหม่หรือเมื่อเครือข่ายล้มเหลว เมื่อตรวจพบพอร์ทัลแบบ Captive และเมื่อตรวจสอบเครือข่ายแอปเข้าสู่ระบบพอร์ทัลแบบ Captive แอปที่ติดตั้งไว้ล่วงหน้าซึ่งรับผิดชอบในการจัดการการเข้าสู่ระบบบนพอร์ทัลแบบเชลย นี่เป็นแอปแยกต่างหากตั้งแต่ Android 5.0 แต่จะโต้ตอบกับ
NetworkMonitor
เพื่อส่งต่อตัวเลือกของผู้ใช้ไปยังระบบ
เส้นทางที่ได้รับผลกระทบ
เส้นทางที่ย้ายไปยังโมดูล Network Stack โดยตัวสร้างใหม่จะแสดงรายการด้านล่าง
บริการด้านไอพี ใน
frameworks/base/services/net/java/android/net/
:-
apf
-
dhcp
-
ip
-
netlink
-
util
(บางส่วน)
-
การตรวจจับพอร์ทัลและการเข้าสู่ระบบแบบ Captive ใน
frameworks/base/
:-
core/java/android/net/captiveportal/
-
services/core/java/com/android/server/connectivity/NetworkMonitor.java
-
packages/CaptivePortalLogin/*
-
ตำแหน่งใหม่ของโค้ดที่ถูกย้ายอยู่ใน packages/modules/NetworkStack
, packages/modules/CaptivePortalLogin
และตำแหน่งที่ใช้ร่วมกันอื่นๆ เส้นทางข้างต้นอ้างอิงถึงตำแหน่งของไฟล์ก่อนที่จะถูกย้ายไปที่นั่นสำหรับ Mainline ไฟล์ใน packages/modules/NetworkStack
และ packages/modules/CaptivePortalLogin
เป็นส่วนหนึ่งของโมดูล Mainline และไม่สามารถแก้ไขได้
รูปแบบแพ็คเกจ
โมดูล Network Stack มีส่วนประกอบต่อไปนี้ในรูปแบบ APK:
- บริการด้านไอพี
- การเข้าสู่ระบบพอร์ทัลแบบ Captive (
com.google.android.captiveportallogin
)
โมดูลนี้มาพร้อมกับโมดูล Network Stack Permission Config ซึ่งเป็นไฟล์ APK ที่ติดตั้งไว้ล่วงหน้าซึ่งกำหนดสิทธิ์ที่จำเป็นสำหรับส่วนประกอบ Network Stack
การพึ่งพาอาศัยกัน
โมดูล Network Stack ขึ้นอยู่กับสิ่งต่อไปนี้:
วิธีการ @hide ที่ได้รับสิทธิพิเศษในเซิร์ฟเวอร์ระบบ (เช่น ใน
IConnectivityManager.aidl
) API เหล่านี้ถูกสร้างขึ้น@SystemApi
และได้รับการป้องกันอย่างเหมาะสมเพื่อให้สามารถเข้าถึงได้โดยโมดูล Mainline แต่ไม่ใช่แอปที่ได้รับสิทธิพิเศษอื่น ๆ (เช่น การใช้การอนุญาตลายเซ็นใหม่)Binder IPC ไปยัง
netd
ที่กำหนดไว้ในINetd.aidl
อินเทอร์เฟซนี้ได้รับการแปลงเป็น AIDL ที่เสถียรและอยู่ภายใต้การทดสอบความสอดคล้อง