Android 提交補丁程序
最近因緣際會下, 提交了一個補丁到 AOSP - Android Open Source Project
首先先透過 issue tracker 報告錯誤
回報了一個 bug:
https://issuetracker.google.com/issues/122429718
這是一個 wifi STA/ AP concurrent 同時跑的處理問題.
接著 Google 的人很快地回應了, 說當初設計只考慮 single wiphy, 沒有考慮 multiple wiphy,
建議我把相關修正的 source code 上到 Gerrit patch.
接下來和很多人可能遇到的一樣,開始遇到問題了.
Android 有提供一份提交補丁的程序
https://source.android.google.cn/setup/contribute/submit-patches
1. 搭建編譯環境
主要是裝 JDK, 我是 ubuntu 環境, 所以還算方便
2. 下載源代碼
(1) 安裝 Repo : 這邊按照官網方式也很順利
要安装 Repo,请执行以下操作:
确保主目录下有一个
bin/
目录,并且该目录包含在路径中:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
3. 建立工作目錄
4. git 帳戶設定
這邊可以登錄 https://android-review.googlesource.com/ 看自己實際名稱git config --global user.name "Your Name"
git config --global user.email "you@example.com"
5. 我是用創建服務器認證密碼
可以用 browser 進入 https://android.googlesource.com/new-password
把執行程式 copy出來到相對應 平台上執行
6. 設定專案庫
repo init -u https://android.googlesource.com/platform/manifest
7. 下載程式
一般會寫 repo sync , 但這會花很長的時間
如果是針對某專案上 patch , 修改不大的話, 直接後面帶專案名稱
repo sync platform/system/connectivity/wificond
所有有的專案名稱, 可以在工作目錄下的 .repo/manifext.xml 看到
<project path="....." name="...." groups="..." />
name 那邊描述的即是專案名稱
8.repo start
sync 完後, 相關程式就在工作目錄下.
還先不要急著修改, 先做
repo start NAME .
這點其實專案, 後來發現應該是在工作目錄下, 打
repo start aosp platform/system/connectivity/wificond
9. 修改檔案
10. git
git add -A
git commit -s
這邊做法和一般 git 做法相同
不過有一點要注意是, 現在 commit 的敘述需要有一個 Test: xxxx
描述這程式有做過哪些驗證. ( built, atest .. )
11. repo upload
沒意外的話, 就可以在 android-review.googlesource.com
看到自己的 patch 了
https://android-review.googlesource.com/c/platform/system/connectivity/wificond/+/874555
--
1. repo upload 出現 no branches
這問題卡了很久, 最後是用第七步 repo start 的方式搭配工作目錄來完成
如果查看 system/connectivity/wificond/.git/config
[core]
repositoryformatversion = 0
filemode = true
[filter "lfs"]
smudge = git-lfs smudge --skip -- %f
[remote "aosp"]
url = https://android.googlesource.com/platform/system/connectivity/wificond
review = https://android-review.googlesource.com/
projectname = platform/system/connectivity/wificond
fetch = +refs/heads/*:refs/remotes/aosp/*
[branch "aosp"]
remote = aosp
merge = refs/heads/master
--
https://android-googlesource.com/new-password
留言
張貼留言