Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The Android source tree is located in a Git repository hosted by Google. The Git repository includes metadata for the Android source, including changes to the source and when the changes were made. This page describes how to download the source tree for a specific Android code-line.

To start with a factory image for a specific device instead of downloading the source, see Selecting a device build - download an image - raspberry pi or emulator

Installing Repo

Repo   is a tool that makes it easier to work with Git in the context of Android. For more information about Repo, see the Repo Command Reference (point to create section) and Repo README.built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow. To familarize various repo commands please see  RepoCommandReference

Repo comes in two parts:  One is a launcher script you installfor installing, and it communicates with the second part, the full Repo tool included in a source code checkout. To install Repo:

  1. Make sure that you have a bin/ directory in your home directory and that it's included in your path:

    mkdir ~/bin PATH=~/bin:$PATH
  2. Download the Repo Launcher and ensure that it's executable:

    Code Block
    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo

Initializing a Repo client

After installing the Repo Launcher, set up your client to access the Android source code repository:.

  1. Create an empty directory to hold your working files. If you're using macOS, this has to be on a case-sensitive filesystem. Give it any name you like:

    Code Block
    mkdir WORKING_DIRECTORY 

    
    cd WORKING_DIRECTORY



  2. Configure Git with your real name and email address. To use the Gerrit code-review tool, you need an email address that's connected with a registered Google account. Make sure that this is a live address where you can receive messages. The name that you provide here shows up in attributions for your code submissions.

    Code Block
    git config --global user.name "Your Name" 

    
    git config --global user.email "you@example.com"



  3. Run repo init to get the latest version of Repo with its most recent bug fixes. You must specify a URL for the manifest, which specifies where the various repositories included in the Android source are placed within your working directory.

    Code Block
    repo init -u 
    https://android.googlesource.com/platform/manifestrepo init -u
    https://code.rdkcentral.com/r/manifests -m <manifestfile.xml> –b <branch name>

    example : repo init -u https://code.rdkcentral.com/r/manifests -m rdkv-raspberrypi.xml –b morty

Note
  • Cloning the code before login once to code.rdkcentral.com, user would get the Authentication error, even though the account is in good standing and has all the required access.
  • Please login to code.rdkcentral.com before attempting to clone.

To check out a branch other than master, specify it with -b. For a list of branches, s

...

 

A successful initialization ends with a message stating that Repo is initialized in your working directory. Your client directory should now contain a .repo directory where files such as the manifest are kept.

Downloading the RDK Source tree

To download the RDK source tree to your working directory from the repositories as specified in the default manifest, run:

Code Block
repo sync

The RDK source files are located in your working directory under their project names. 

Using authentication

By default, access to the RDK source code is anonymous and for restricted content user need to set up credential in .netrc file.

The first step is to create a password with the key generator tool. The second step is to force authenticated access by using the manifest URI  https://code.rdkcentral.com/r/manifests

Notice how the /r/ directory prefix triggers mandatory authentication. You can convert an existing client to use mandatory authentication with the following command:

repo init -u https://code.rdkcentral.com/r/manifests

Troubleshooting Network issues

When downloading from behind a proxy (which is common in some corporate environments), you might need to to explicitly specify the proxy that is then used by Repo:

Code Block
export HTTP_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port> 
export HTTPS_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>