當前位置:首頁 » 編程軟體 » reposync腳本

reposync腳本

發布時間: 2022-09-04 06:41:35

Ⅰ 如何編譯android sdk

如果沒有真正開發板,又想深入到android framework里,或kernel里的話,就只能用android 的emulator了。 但是我們下載的android SDK沒有源代碼,我們沒辦法跟蹤修改framework和kernel里的東西。
所以有了想嘗試自己從頭生成SDK的想法。

1. 首先下載編譯android所有source code.
具體步驟這里不再贅述,參考ht tp:/ /source.and roid.c om/download
cd mydroid
repo init -u git://android.git.kernel.org/platform/manifest.git
repo sync
一點小提示: 有時候google的android伺服器老是斷,總不能讓我們守在電腦旁邊一直手工重新repo sync吧,這可是需要N個小時才能下載完的啊。

我們就寫個小腳本讓電腦自動repo sync,直到下載成功為止:
#!/bin/sh
count=0
ret=1
while [ $ret -ne 0 ]
do
repo sync
ret=$?
count=$(( $count + 1))
echo "try $count, ret: $ret"
done
echo "try $count, ret: $ret"
把上面的內容復制到一個文件里tryrepo.sh
然後修改tryrepo.sh的屬性,開始自動工作吧。第二點早上應該就大功告成了
chmod a+x tryrepo.sh
./tryrepo.sh

2. 編譯android, 生成SDK
make sdk

漫長的等待之後,SDK生成了,在目錄:mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\
在linux下面可以直接運行mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\tools\android 就可以看到熟悉的android emulator啟動界面。

如果想在windows XP下使用這個SDK和emulator, 最簡單的方法是:
(1)自己下載一個最新的windows版本的android 2.0 SDK。
(2)把mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\下的東西復制到windows版SDK的platforms下。
(3) 然後把platforms下android-2.0下tools目錄下的幾個.exe文件復制到自己編譯的SDK目錄下的tools目錄下。

Ⅱ repo網路意思是

網路意思是:報告。

repo這個詞語就是report的意思,中文含義就是報告,前面可以寫上某位明星的名字、節目的名字等等,就是關於某位藝人或者是節目的報告。主要指代的就是參與了某檔節目的現場錄制、觀看了某場演唱會、觀看了某場舞台劇音樂劇之後對於節目的介紹。

(2)reposync腳本擴展閱讀:

一般來說會做repo報告的人都是粉絲,通過這樣的信息介紹自己的偶像,也會起到對於偶像的一個推廣宣傳的作用。相當於對於節目還是比較的詳細的介紹,比如說節目的流程、觀看之後的心得體會、節目中出現的狀況和人物等等,有時候還會通過透露一些圖片幫助講述repo的內容,讓更多的粉絲們更快了解到偶像的動態。

Ⅲ 為什麼repo sync下來的代碼處於no branch的狀態

不了解你之前做過什麼操作,本地是否有未提交到伺服器的代碼。因此,下面的說法僅供參考。 感覺你們組長說反了。 git fetch是指更新本地的遠程分支 如果遠程分支確實有更新,且本地有未提交到伺服器的提交,再執行git rebase ,這樣本地的提交就會更新到新的base上,再提交到伺服器時不會因為base不同而報錯。 repo sync實際是執行了兩個操作,先git fetch,再基於最新base checkout出代碼,也就更新了本地分支。 一般情況下,我們是建議研發直接repo sync 。不過,實際研發會碰到什麼問題,比如因為woring tree不幹凈導致同步失敗一類的,就不是特別清楚了。還是要具體情況具體分析。

Ⅳ 自己可以編譯安卓源碼

用最新的Ubuntu 16.04,請首先確保自己已經安裝了Git.沒安裝的同學可以通過以下命令進行安裝:

sudo apt-get install git git config –global user.email 「[email protected]」 git config –global user.name 「test」

其中[email protected]為你自己的郵箱.

簡要說明

android源碼編譯的四個流程:1.源碼下載;2.構建編譯環境;3.編譯源碼;4運行.下文也將按照該流程講述.

源碼下載

由於某牆的原因,這里我們採用國內的鏡像源進行下載.
目前,可用的鏡像源一般是科大和清華的,具體使用差不多,這里我選擇清華大學鏡像進行說明.(參考:科大源,清華源)

repo工具下載及安裝

通過執行以下命令實現repo工具的下載和安裝

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

補充說明
這里,我來簡單的介紹下repo工具,我們知道AOSP項目由不同的子項目組成,為了方便進行管理,Google採用Git對AOSP項目進行多倉庫管理.在聊repo工具之前,我先帶你來聊聊多倉庫項目:

我們有個非常龐大的項目Pre,該項目由很多個子項目R1,R2,...Rn等組成,為了方便管理和協同開發,我們為每個子項目創立自己的倉庫,整個項目的結構如下:


這里寫圖片描述

執行完該命令後,再使用make命令繼續編譯.某些情況下,當你執行jack-admin kill-server時可能提示你命令不存在,此時去你去out/host/linux-x86/bin/目錄下會發現不存在jack-admin文件.如果我是你,我就會重新repo sync下,然後從頭來過.

錯誤三:使用emulator時,虛擬機停在黑屏界面,點擊無任何響應.此時,可能是kerner內核問題,解決方法如下:
執行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通過使用kernel-qemu-armv7內核 解決模擬器等待黑屏問題.而-partition-size 1024 則是解決警告: system partion siez adjusted to match image file (163 MB >66 MB)

    如果你一開始編譯的版本是aosp_arm-eng,使用上述命令仍然不能解決等待黑屏問題時,不妨編譯aosp_arm64-eng試試.

    結束吧

    到現在為止,你已經了解了整個android編譯的流程.除此之外,我也簡單的說明android源碼的多倉庫管理機制.下面,不妨自己動手嘗試一下.

    Ⅳ 下載android源碼卡住了,怎麼辦我都repo sync好幾次了,每次都卡在了這里。

    沒辦法,只能 ctrl+c 或者ctrl+z 中斷重新 repo sync 一次,我也是這樣。

    還有 一個辦法,我已經找到解決方法了,直接掛全局代理,在網路里設置代理,讓代理全局化。然後在repo sync 一次成功。至於用什麼,最理想的自然是goagent

    Ⅵ 如何使用VirtualBox的安裝Android 4.4奇巧在Windows

    按照下面的方法開打終端命令行工具或者使用快捷鍵:Ctrl + Alt + T

    應用程序-----附件----終端

    這里先新建一個文件夾名稱為 android4.4 ,用來保存Android下載源代碼
    在終端中輸入並執行下面的命令來新建 android4.4 文件夾:
    mkdir android4.4

    之後用下面的命令進入到android4.4文件夾中
    cd android4.4

    之前小編有講述過下載repo工具,當時小編是保存在終端工具打開的默認位置即宿主目錄,為了方便使用repo工具,使用下面的命令將它到源碼下載的目錄中來:
    cp /home/xyh666168/repo ./

    cp ../repo ./

    說明:
    ../ 表示上一級目錄
    ./ 表示當前目錄

    下面的4、5、6步主要講述初始化android源碼,這個初始化簡單的說就是:下載一些關於源代碼的配置文件,之後按照這個配置文件來下載Android源代碼

    目前關於Android最新的分支代碼是:android-4.4_r1
    可以使用下面的命令來初始化最新android 源代碼
    ./repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1
    輸入上面的命令後回車執行

    因為各種網路方面的原因,可能執行上面點初始化命令會失敗,提示一些類似網路連接失敗的信息,那麼不用理會,繼續執行上面的初始化命令,若是很多次都都提示失敗,那麼可以做用以下方法來嘗試:
    1、使用命令:rm -rf * -R 刪除android 4.4文件中的緩存文件,然後重新執行初始化命令
    2、隔一段時間或者晚上特別是凌晨的時候下載初始化,一般這個時候網路環境容易下載Android 源代碼
    3、可能是寬頻運行商對Android源代碼下載網站都控制,嘗試讓它們打開,不行就考慮更換網路寬頻或者換個不同的寬頻下載

    若是看到類似下面的信息,表示連接成功,正在初始化

    根據網路的速度,初始化的時間也不同,正常網路情況下,2分鍾之內就可以完成初始化,完成初始化後,可以看到如下面的提示信息:

    repo has been initialized in ......

    這個信息表示初始化成功,下面就可以開始同步下載源代碼了

    輸入並執行下面的命令開始執行源代碼的同步下載
    ./repo sync

    同樣,若是因為網路原因,下載過程自動中斷,那麼繼續使用這個命令,直到源代碼下載完

    若是看到類似下面的信息不停的滾動或者一些數字閃爍,那麼表示源代碼正在下載,請耐心等待

    下載的過程中,可能會看到類似紅色方便標示的信息而發生中斷,停止下載,那麼可以繼續使用./repo sync命令來下載,源代碼的下載過程普通網路可能要數個甚至十幾個小時,為了防止中斷停止下載,那麼最好使用一個自動恢復下載的腳本來下載源代碼,請參考小編關於「Android 4.3源碼的下載和編譯環境的安裝及編譯」或者「Android 4.4 源碼下載之下載環境准備」中介紹的方法

    最後源碼下載完後,提示信息如打紅色方框所示,checking out files 表示從「臨時文件」中導出源碼

    「臨時文件」 .repo14775M
    「臨時文件」 .repo和導出的源碼一共24335M(23G)

    下載過程中若不知道下載了多少,可以在源碼目錄使用命令: -sh 或 -sm 來查看已經下載了多少,然後和小編這里的對比,這樣就能夠計算還需要多久可以下載完

    其它一些事項說明:

    1、在源代碼下載過程中,在源代碼下載目錄看不到任何文件,打開「顯示隱藏」,會看到一個名為.repo的文件夾,這個文件夾是用來保存Android源代碼的「臨時文件」

    2、文件最後下載接近完成時,會從.repo文件夾中導出Android源代碼

    3、Android源代碼下載完成後,可以看到Android源代碼下載目錄中會有
    bionic、bootable、build、cts、dalvik......這些文件夾,這些就是Android源代碼

    4、若是必須關閉電腦停止下載,那麼可以在源代碼下載的終端中按Ctrl + C 或者 Ctrl + Z 停止源代碼的下載,不會造成源代碼的丟失或損壞

    5、自動或者手動停止源代碼的下載,可以使用命令: repo sync 繼續下載

    Ⅶ 如何從國內鏡像獲取android源代碼

    首先按幫助中的步驟下載repo工具:
    [plain] view plain print?
    curl https://storage-googleapis.lug.ustc.e.cn/git-repo-downloads/repo > ~/bin/repo
    此時查看下載下來的repo文件可以發現其中的REPO_URL已經指向中科大鏡像的地址,因此應該不需要修改:

    [plain] view plain print?
    REPO_URL = 'https://gerrit-googlesource.lug.ustc.e.cn/git-repo'
    接下來運行如下命令初始化倉庫

    [plain] view plain print?
    repo init -u git://mirrors.ustc.e.cn/aosp/platform/manifest
    發現沒有反應,很長時間後應該是超時才退出,報錯說無法訪問https://gerrit-googlesource.lug.ustc.e.cn/git-repo/clone.bundle

    把這個地址放到瀏覽器上嘗試發現也是超時無法訪問,最後好像還是指到google的官網去了,感覺應該是因為缺了什麼東西,沒仔細研究。

    但我發現中科大鏡像的Git-repo實際上是可以正常訪問的,因此最後使用如下方法:
    1. 使用git clone命令直接從中科大鏡像下載repo工具:

    [plain] view plain print?
    git clone https://gerrit-googlesource.lug.ustc.e.cn/git-repo
    git clone成功後可以在git-repo目錄下看到repo以及其他相關的腳本。

    修改PATH環境變數將git-repo目錄加入PATH
    2. 修改REPO_URL
    此時查看git clone下來的repo文件可以發現其中的REPO_URL還是指向google官網的,因此需要修改該文件指向中科大鏡像:

    [plain] view plain print?
    REPO_URL = 'https://gerrit-googlesource.lug.ustc.e.cn/git-repo'
    3. 初始化倉庫

    修改完repo文件後再運行repo init命令初始化倉庫就可以成功了:

    [plain] view plain print?
    repo init -u git://mirrors.ustc.e.cn/aosp/platform/manifest
    以後就可以使用repo sync命令同步源代碼了,速度很快。
    你試試看看

    php執行sync命令時如何自動輸入密碼

    使用腳本來實現執行repo sync命令時自動輸入口令

    _ync命令用來flush文件系統buffer,這樣數據才會真正的寫到磁碟中,並且buffer才能夠釋放出來,flush就是用來清空buffer。

    _ync命令會強制將數據寫入磁碟中,並釋放該數據對應的buffer,所以常常會在寫磁碟後輸入sync命令來將數據真正的寫入磁碟。

    _綣蝗ナ侄氖淙_ync命令來真正的去寫磁碟,linux系統也會周期性的去sync數據。.

    Ⅸ REPO是什麼意思

    1、repo指的是報告。一般是指fans參加現場節目錄制,觀看演唱會,舞台劇之後的對此的介紹。歌笑錄制REPO就是這個同學參加了歌笑節目的錄制,就是去現場觀看了以後對節目流程的報告.可以包括心得.

    2、REPO也指附條件買回協議,交易標的物賣方同意在某特定日期,以特定價格再買回其所賣出交易標的物的協議。賣方提供交易標的物給買方作擔保,若賣方不履行協議,則買方持有此交易標的物。

    repo協議主要是用於管理多個git項目,同一產品可能包含多個git項目,不同的git項目集合,可能形成不同產品,通過repo可以實現方便的管理。repo主要包含repo配置信息、以及repo所管理的git項目集合。

    對於所有git管理的項目,例如mygitproject,其中mygitproject/.git是git目錄(或git庫);mygitproject/中除.git之外的內容為git工作目錄,來自相應git目錄中的某個版本。

    對於所有repo管理的項目,例如myrepoproject,其中myrepoproject/.repo是repo目錄(或repo庫);myrepoproject/中除.repo之外的內容為repo工作目錄,來自相應repo目錄中的某個版本。

    1、repo init:

    作用是下載或更新好repo配置和腳本集(相當於對repo配置和repo腳本集進行git pull,但是它還額外做了更多的事情),repo配置和腳本本身又是由git管理的,repo配置指定使用哪些git項目,腳本是repo命令本身的實現。

    2、repo sync

    作用是下載當前repo配置的所有項目,並生成對應的repo工作目錄。

    (9)reposync腳本擴展閱讀:

    關於分支

    以上描述,有幾個分支的概念需要明確。

    (1)repo分支:這里通過repo init -b,中的-b所指定的分支,是manifests的分支,不同分支,其中的文件清單內容有所不同。

    (2)清單文件指定的分支:通過清單文件manifest.xml中的default實體的revision屬性,指定版本庫默認的分支為revision屬性值,該屬性值做為repo sync之後工作目錄中所有git項目的公共起點分支。

    也就是說,該manifest對應所有的git項目都有一個以revision屬性值為名的分支,repo sync之後,在任意一個repo工作目錄下的git庫中。

    使用git branch或者repo start創建的分支,都是基於該git庫中revision屬性值為名的分支來創建。我們可以將這個分支設置為和repo分支類似的名字。

    (3)git分支:除了repo管理的用於repo配置的repo分支,和用於設置工作目錄起點的清單文件分支,每個工作目錄對應的git庫,也可設置自己的工作分支,和平時使用git時的含義一樣。

    參考資料來源:網路-repo

    熱點內容
    沒有卡沒有密碼怎麼辦啊 發布:2025-02-13 01:51:53 瀏覽:460
    linux2個ftp伺服器 發布:2025-02-13 01:44:31 瀏覽:14
    戴爾r730網路配置後如何保存 發布:2025-02-13 01:38:27 瀏覽:344
    php用什麼編譯 發布:2025-02-13 01:37:12 瀏覽:703
    手機緩存的文件路徑是在哪 發布:2025-02-13 01:34:58 瀏覽:563
    oppo手機密碼哪裡設置 發布:2025-02-13 01:30:38 瀏覽:683
    android網易 發布:2025-02-13 01:30:37 瀏覽:488
    不聯網怎麼看自己的配置 發布:2025-02-13 01:00:38 瀏覽:858
    飢荒聯機版獨立伺服器有什麼用 發布:2025-02-13 01:00:38 瀏覽:637
    高級語言都有與之對應的編譯程序或解釋程序 發布:2025-02-13 00:54:46 瀏覽:571