UbuntuでのAndroidソースの取得(Android 4.4を例に)


前編のブログではLinuxシステム(Ubuntu)の下でAndroid環境を構築し、次にAndroidソースコードの入手方法を見てみましたが、ここでは主にAndroid 4.4のソースコードを例に挙げています.
       まず公式サイトの住所を添付します.http://source.android.com/source/initializing.html.上記のアドレスではAndroidの開発環境の構築やソースコードの取得などについて詳しく紹介していますが、その説明次第で完全に解決できます.以下、私は主に自分の取得の過程を紹介します.実は公式サイトの手順の簡素化と私が出会ったいくつかの問題で、後にネットユーザーで出会った問題も収集しました.以下に簡単に説明します.
        1.2つのソフトウェアcurlとgitをインストールする
                 $ sudo apt-get install curl                  $ sudo apt-get install git-core
 2.binフォルダを作成し、環境変数に追加
         $ mkdir ~/DevelopHelp/bin          $ gedit ~/.bashrc          ファイルの最後に環境変数を追加します.         export PATH=~/DevelopHelp/bin:$PATH          $ source~/.bashrc(環境変数を有効にする)
                           上記環境変数の設定は現在のユーザにのみ有効です
        3.repoツールをダウンロードし、実行可能であることを保証する
                            $ curl http://git-repo.googlecode.com/files/repo-1.13 > ~/DevelopHelp/bin/repo                 $ chmod a+x ~/DevelopHelp/bin/repo
                
                 公式サイト提供:
                 $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
                 ダウンロードパスにアクセスできないようです.上記のパスに変更してダウンロードすればいいです.
                 すべてのrepoバージョンを表示するには、次の手順に従います.http://code.google.com/p/git-repo/downloads/list?can=1&q=.いずれかのバージョンrepoをダウンロード
                 いずれにしても、私はrepo-1.19を使い始めましたが、後で公開鍵が見つからない問題があり、長い間振り回しても解決しませんでした.
                 この問題を解決した経験は、提供方法と原因を歓迎します. 
4.空のディレクトリを作ってAndroidソースコードを入れて、最大権限に変更して、このディレクトリに入ることができます
$mkdir ~/Android/Android4.4$sudo chmod –R 777 ~/Android/Android4.4$cd ~/Android/Android4.4
5.repoの初期化
$ repo init -u https://android.googlesource.com/platform/manifest
期間中は名前とメールボックスの検証を記入する必要があります.Googleアカウントとgmailメールボックスを登録します.続行して、ダウンロードするブランチに初期化します.
質問:
ここでエラーを報告する可能性があります.
fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: error [Errno 101] Network is unreachable 
解決策:
            公式サイトの手順に従って一歩一歩実行する         ブラウザでログインhttps://android.googlesource.com/new-passwordを選択し、gmailアカウントにログインします.         Webページの「許可」をクリックすると、次のような結果が得られます.              machine android.googlesource.com login git-.gmail.com password       machine android-review.googlesource.com login git-.gmail.com password           上の2行を~/.netrcファイルの末尾に追加します.(linuxシステムでこのファイルを作成したことがない場合は、ホームディレクトリの下に.netrcファイルを作成し、上の情報を新しいファイルに追加します).         ダウンロードアドレスのURIがhttps://android.googlesource.com/a/platform/manifest(真ん中に「/a」が付いています).       アクセスは基本的に匿名であるため,接続過多を防止するため,同一IPアドレスの接続数に一定の制限を加えた.使用する      gmailアカウントを認証します.         社内ネットワーク内や仮想マシンでダウンロードすると、この問題によく遭遇します. 
次に、
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1.2
ダウンロードしたいブランチは下記のURLでご覧いただけますhttps://android.googlesource.com/platform/manifest/+refs
6.repo syncを実行して同期する
$repo sync
       ダウンロードが完了すると完了し、repoはブレークポイントの継続機能をサポートし、次回は$repo syncダウンロードを再実行できます.スクリプトは自動的に作成できますが、ネット上では比較的多く、以下の1つを提供します.
#!/bin/bash    
echo "======start repo sync======"    
repo sync    
while [ $? = 1 ]; do    
echo "======sync failed, re-sync again======"    
sleep 3    
repo sync    
done  

コメント:
以下はいくつかの問題と解決方法を整理して、みんなが評論の中で一緒に総括して討論することを望みます.
(1)“A new repo command ( 1.18) is available”          
        解決:ヒントに従って入力すればいい、cp/home/cfy/android/.repo/repo/repo /home/cfy/bin/repo
(2) error: Failed connect to android.googlesource.com:443;
     Connection refused while accessing
     https://android.googlesource.com/a/platform/frameworks/base/info/refs 
       fatal: HTTP request failed         error: Cannot fetch platform/tools/motodev         error: Cannot fetch platform/frameworks/base         error: Cannot fetch platform/prebuilts/sdk          error: Exited sync due to fetch errors         などのエラーメッセージが表示されます.
       解決: 
           /etc/hostsファイルの編集              $ sudo gedit/etc/hosts              次の内容を追加して保存 
            74.125.237.1 dl-ssl.google.com
            74.125.71.82 www.googlesource.com              74.125.31.82 android.googlesource.com              203.208.46.172 cache.pack.google.com              59.24.3.173cache.pack.google.com
注意:
     Googleソースのipは変更されるので、次のコマンドを使用します.
     $ nslookup googlesource.com
     $ nslookup android.googlesource.com
     実際のipを表示し、上記のipアドレスを74.125.3.82に従います.  Android.googlesource.comフォーマットを/etc/hostsに追加
(3)   fatal: '../platform/abi/cpp.git' does not appear to be a git repository        fatal: The remote end hung up unexpectedly        error: Cannot fetch platform/abi/cpp
       解決:
            ~/JK_WorkSpace/Android/Android Resource/Android 4.4/.repoでの
            manifest.xmlでfetch属性を見つけてfetch="に変更git://Android.git.linaro.org「それでいい
(4)   fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle        fatal: error [Errno 101] Network is unreachable
       解決:
             エージェント環境変数による問題は、次のコマンドでエージェントをクリアします.             unset HTTP_PROXY
続行...