突然消失するかもしれないブログ

”とつきえブログ”

Androidのrepoコマンドでデフォルトではダウンロードされないリポジトリをダウンロードする

googleが配布しているrepoコマンドを以下のように実行すると、

repo init -u git://android.git.kernel.org/platform/manifest.git
※初回のみ

repo sync

gitを使用してAndroidのソースコード一式入手することができるわけですが、デフォルトではダウンロードされないリポジトリが存在します。

具体的には、QualcommとHTC関連のリポジトリがデフォルトでダウンロードされないようです。

なぜデフォルトではダウンロードされないのかは不明です。(機種依存性が強くビルドしてエミュレータ上で動作させるのには不要だからでしょうか?)

京都マイコンの辻さんのつい最近のプレゼン資料でもそのように報告されています。

ソースコードから読み解く Androidの実像
http://coin.nikkeibp.co.jp/coin/ncc/semi/0812/Android_20081211_Tsuji.pdf

HTC G1のソース?(デフォルトではダウンロードされないがリポジトリに存
在する。けっこう頻繁に更新。)
– kernel/msm.git
– platform/hardware/msm7k.git
– platform/vender/htc/dream.git

他にもデフォルトでダウンロードされないリポジトリが増えてきている?ような気もするのですが、ひとまずは、以下のようにgitコマンドを直接実行することにより、手動でソースコードをダウンロードすることができます。

git clone git://android.git.kernel.org/kernel/msm.git
git clone git://android.git.kernel.org/platform/hardware/msm7k.git
git clone git://android.git.kernel.org/platform/vendor/htc/dream.git

で、実際に実行してみたところ、上記のmsm.gitをcloneするのに異常に時間がかかりました。サイズ的には574MB弱です。

追記:2009/02/16 19:40

repo init -u git://android.git.kernel.org/platform/manifest.git

リポジトリを初期化すると、.repo/manifest.xmlが作成されて、repoコマンドはこのファイルを元に、複数のgitリポジトリを管理します。

このmanifest.xmlに書かれていないプロジェクトはrepoコマンドを実行しても同期されません。

そこで、「repo manifest.xml」でググると、clmemo@akaさんの情報を見つけました。

http://at-aka.blogspot.com/search/label/repo

repoのmanifest.xmlの文法などが解説されていてとても参考になります。

gitは、clone(初回)→pull(二回目以降)→branch(ブランチしたければ)という風に使うらしいです。

なので、manifest.xmlに追記する方法もあると思いますが、Androidのmanifest.xmlの対象外のリポジトリは、

○初回(gitでcloneする)

git clone git://android.git.kernel.org/kernel/msm.git
git clone git://android.git.kernel.org/platform/hardware/msm7k.git
git clone git://android.git.kernel.org/platform/vendor/qcom/surf.git
git clone git://android.git.kernel.org/platform/vendor/htc/dream.git

○二回目以降(gitでpullする)

git pull git://android.git.kernel.org/kernel/msm.git
git pull git://android.git.kernel.org/platform/hardware/msm7k.git
git pull git://android.git.kernel.org/platform/vendor/qcom/surf.git
git pull git://android.git.kernel.org/platform/vendor/htc/dream.git

で何とかなりそうです。

追記:2009/02/21 2009/02/21

Android on x86(Eee PC) ベースポーティング手順書

こちらの2.2 Androidのソース取得に、repoコマンドに追加のリポジトリをしているする方法が載っていました。

.repo/local_manifest.xmlに以下を記述します。

<manifest>
<!– project path=”kernel/msm” name=”kernel-other/msm” / –>
<project path=”hardware/msm7k” name=”platform/hardware/msm7k” />
<!– project path=”venrodr/htc/dream” name=”platform/vender/htc/dream” / –>
<project path=”vendor/asus/eee_701″ name=”platform/vendor/asus/eee_701″ />
</manifest>

<project/>タグ内に記述する属性の意味は以下の通りです。

path=プロジェクトのローカルパス
name=プロジェクト名
android.git.kernel.org Gitで確認できるProject名のことです)

repoコマンドを実行すると、以下のプロジェクトを取得中にrepoコマンドがハングアップしてしまうようなので今はコメントアウトしています。

kernel/msm
venrodr/htc/dream

android.git.kernel.org Gitで管理されているリポジトリをすべてrepoコマンドに対応しているわけではなさそうなので、その時は、git cloneで個別取得すればOKです。

Androidのrepoコマンドでデフォルトではダウンロードされないリポジトリをダウンロードする」への1件のフィードバック

  1. ピンバック:Androidのソースコードをダウンロードする(1) « 突然消失するかもしれないブログ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。