自 Android 5.0 起,Linux 上的 Android 網路堆疊可正常運作 核心需要一些近期上游的修訂版本 或是尚未上游您可以輕鬆手動驗證 需要核心功能,或追蹤缺少的修訂版本,因此 Android 團隊 是分享所使用的測試,確保核心運作符合預期。
執行測試的原因
這些測試針對三大 原因:
- 裝置上搭載的 Linux kernel 確切版本為 通常專屬於特定裝置,而您將難以判斷 無需執行測試,即可正常運作。
- 向前移植與 將核心修補程式向後移植到不同核心版本或不同版本 裝置樹狀結構可能會引起一些細微問題,而 並進行測試
- 使用新的網路功能可能需要新的核心功能或核心錯誤 找出程式碼中的安全漏洞和錯誤 並提供修正建議
如果測試未通過,代表裝置的網路堆疊 運作異常,造成使用者可見的連線錯誤 (例如應用程式停止運作) Wi-Fi 網路)。該裝置也可能無法通過 Android 相容性測試 套件 (CTS) 測試。
使用測試
測試會使用 User-Mode Linux 來啟動 做為 Linux 主體機器上的程序詳情請見 建立建構環境: 適用的作業系統版本單元測試架構 使用適當的磁碟映像檔啟動核心,然後從 主機檔案系統測試是以 Python 編寫,並透過 TAP 介面執行 運動核心行為和通訊端 API
編譯 ARCH=um 的核心
若要執行測試
核心必須針對 ARCH=um SUBARCH=x86_64
進行編譯。這是
支援上游和常見 Android 核心樹狀結構的架構
(例如 android-4.4
)。但有時也會是裝置
在這個模式下,系統不會編譯核心,因為裝置樹狀結構含有
將裝置專屬程式碼或硬體專屬程式碼納入常見檔案中 (例如
sys/exit.c
)。
在許多情況下,這足以確保
硬體專屬程式碼位於 #ifdef
後方。這通常應該
是設定選項的 #ifdef
,用於控制
程式碼相關功能如果沒有這類設定選項,請將
位於 #ifndef CONFIG_UML
區塊內的硬體專屬程式碼
於
一般而言,修正此問題應該由核心樹提供者負責
例如晶片組或 SoC 供應商我們正與原始設備製造商 (OEM) 及供應商合作,
目前和未來的核心為 ARCH=um
SUBARCH=x86_64
編譯,且無須進行任何變更。
執行測試
測試位於 kernel/tests/net/test
。
建議您透過 Android 開放原始碼計畫主平台執行測試,因為這類測試
都是最新版本;在某些情況下,核心功能必須
在特定 Android 版本中可執行的作業尚未有完整的測試涵蓋範圍
特定版本的相關資訊如要瞭解如何執行測試,請參閱核心說明
網路測試 README 檔案。從核心樹狀結構頂端,執行:
ANDROID_TREE/kernel/tests/net/test/run_net_test.sh all_tests.sh
通過測試
核心網路測試 Python
來源檔案包含的註解指定了已知核心修訂版本
才能通過測試這些測試應透過常見的核心樹狀結構傳遞。
共同核心分支 android-4.4
以上版本 -
kernel/common
專案。因此,在核心上傳遞測試
持續從對應的常見核心分支版本合併。
貢獻
回報問題
回報 Android 中核心網路測試的相關問題 Issue Tracker 搭配 Component-Networking 標籤。
文件修訂版本及新增測試
按照上述方式回報問題,如果可以上傳變更來修正問題, 如果:
- 這些測試無法通過常見的核心樹狀結構
- 個人中心 尋找來源註解中未提及的必要修訂版本。
- 要讓測試通過上游核心,必須進行重大變更
- 您認為測試過度指定,或未來測試失敗 核心
- 您想在現有廣告活動 測試。