https://www.codeaurora.org/projects/all
https://www.codeaurora.org/xwiki/bin/QAEP/WebHome
https://www.codeaurora.org/xwiki/bin/QAEP/releaseAndroid for MSM Project
The Android for MSM project allows users to build an Android based platform containing additional enhancements for Qualcomm chipsets.
The platform is based upon Android Open Source Project process and tools. Documentation, original sources and an overview of Android can be found there.
A Gitweb interface is available to browse the Code Aurora source tree. TheAndroid Open Source Project interface can be used as reference.
Releases
Code Aurora Forum Android releases are based upon the source released from the Android Open Source Project (AOSP). AOSP releases are periodically merged into the Code Aurora Forum development branch and public releases made at stable points in the cycle.
The Android Open Source Project (AOSP) makes releases from a named pastry branch (''cupcake'', ''donut'', etc). The AOSP changes are merged and a general AOSP release is made in same pastry branch. For example, the AOSP makes a release in the ''donut'' branch. After merging in AOSP changes Code Aurora Forum makes a general release from its ''donut'' branch. The Linux kernel is included as an Android project but follows a different branch naming scheme based upon released Linux kernel versions (e.g., android-msm-2.6.29). The same process of merging the AOSP changes and releasing is followed by the kernel. The Repo manifest specifies which kernel branch or commit is used with a given release.
Code Aurora Forum creates stabilization branches based upon the general release branch. A stabilization branch is created in order to stabilize and fix chipset specific problems with the general release branch. In keeping with AOSPs pastry theme stabilization branches are named after different kinds of pastries. Multiple stabilization branches may exist for each AOSP pastry release branch. ''carrot.cupcake'' and ''coconut.cupcake'' are examples of stabilization branches based upon the AOSP ''cupcake'' release branch.
Both Git tags andRepo manifests are created in the general release branch (''cupcake'', ''donut'', etc) and in stabilization branches (''carrot.cupcake'', ''coconut.cupcake'', etc) when a tested and stable version of Android is released by the Code Aurora Forum. Generally speaking the tag and manifest are named after the corresponding modem Build ID or release. The tags and manifests ensure that the Android source tree can be obtained from the Code Aurora Forum and used with a specific Qualcomm modem build or release.
For reference and comparison purposes an unmodified copy of all AOSP branches is available from both the Code Aurora Gitweb interface and from Git/Repo in Code Aurora downloads. These unmodified AOSP source branches are identified by the ''aosp/'' prefix. The original unmodified AOSP donut branch is called ''aosp/donut'' and the corresponding AOSP kernel branch ''aosp/android-msm-2.6.29''. Each project within Android contains ''aosp'' branches. See thebionic and Linux kernelmsm projects as examples.
Branch Releases
Releases are available for download using Repo and Git. A specific release is downloaded by choosing both a branch and manifest from the Releases table.
$ repo init -u git://codeaurora.org/platform/manifest.git -b [branch] -m [manifest] --repo-url=git://codeaurora.org/tools/repo.git --repo-branch=caf-stable $ repo sync |
-
Note: Use the below commands for syncing the code for all the releases from August 8th, 2012 onwards.
$ repo init -u git://codeaurora.org/platform/manifest.git -b release -m [manifest] --repo-url=git://codeaurora.org/tools/repo.git --repo-branch=caf-stable $ repo sync |
Releases | ||
---|---|---|
Branch | Targets | |
release | msm7627a, msm7630, msm8660, msm8660_csfb, msm8960, apq8064, mpq8064, msm8930, msm8625, msm8974, apq8084 | |
jb | msm7627a, msm7630, msm8660, msm8660_csfb, msm8960, apq8064, mpq8064, msm8930, msm8625 | |
jb_rel | apq8064 | |
ics | msm7627a, msm7630, msm8660, msm8660_csfb, msm8960, apq8064, mpq8064, msm8930 | |
ics_rb | msm8960 | |
ics_rb1 | apq8064 | |
ics_rb2 | msm8625 | |
ics_rb3 | msm8930 | |
ics_rb4 | msm8625 | |
ics_rb6 | msm8960 | |
ics_rb7 | mpq8064 | |
ics_chocolate | msm7627a, msm7630, msm8660, msm8660_csfb, msm8960 | |
ics_chocolate_rb1 | msm8960 | |
ics_chocolate_rb4 | msm7627a | |
ics_chocolate_rb7 | msm8660_surf, msm7627a, msm7630_surf, msm7630_fusion | |
ics_choco_cs | msm8960 | |
ics_es3 | msm8960 | |
ics_strawberry | apq8064, msm8625, msm8960 | |
ics_strawberry_rb2 | msm8625 | |
ics_strawberry_rb3 | msm8930 | |
ics_strawberry_rb5 | msm7627a | |
gingerbread | msm7627, msm7627a, msm7630, msm8660, msm8660_csfb, msm8960 | |
gingerbread_chocolate | msm7627a | |
gingerbread_house | msm7627, msm7630, msm8660 | |
gingerbread_rel | msm7627, msm7630, msm8660 | |
froyo | msm7627, msm7630, msm7630_fusion, msm8660, qsd8650, qsd8650a_st1x, msm7627_7x | |
froyo_almond | msm7627, qsd8650 | |
froyo_pumpkin | msm8660, msm7630_fusion, qsd8650a_st1x, msm7630 | |
froyo-release | msm8660 | |
froyo-release-2 | msm8660 | |
froyo_squash | qsd8650a_st1x | |
froyo_strawberry | msm7630 | |
eclair | msm7627, msm7630, msm7630_fusion, msm8660, qsd8650, qsd8650a_st1x | |
eclair_caramel | msm7630 | |
eclair_chocolate | msm7627, qsd8650 | |
eclair_coffee | msm7627 | |
eclair_rum | msm7627 | |
eclair_strawberry | qsd8650 | |
eclair_vanilla | msm7630 | |
donut | msm7625, msm7627, msm7630, qsd8650 | |
donut_cinnamon | msm7627 | |
donut_cream | msm7627 | |
donut_frosted | msm7627 | |
donut_glazed | msm7627, qsd8650 | |
donut_honey | qsd8650 | |
donut_lemon | qsd8650 | |
donut_strawberry | qsd8650 | |
banana.cupcake | msm7627 | |
blueberry.cupcake | msm7x00 | |
carrot.cupcake | msm7x00 | |
chocolate.cupcake | msm7x00 | |
coconut.cupcake | msm7x00 | |
mango.cupcake | msm7x00 | |
mocha.cupcake | qsd8650 |
Patch Releases
Fixes are sometimes available in patch format only.
A listing of Patch Releases
Downloading and Building from Source
Follow the Repo instructions to download and install Repo.
Download the Android source tree by specifying the branch and manifest for a specific Code Aurora release. In this example the download thecarrot.cupcake branch using manifest ''M7201JSDCBALYA6380.xml''
$ repo init -u git://codeaurora.org/platform/manifest.git -b carrot.cupcake -m M7201JSDCBALYA6380.xml --repo-url=git://codeaurora.org/tools/repo.git --repo-branch=caf-stable $ repo sync |
Build the source tree
$ source build/envsetup.sh $ choosecombo 1 1 msm7201a_surf eng $ make -j4 |
Running choosecombo with no arguments will prompt for Android build options and target.
Detailed Build Instructions
Make sure that the environment has been completely and correctly as described by the Android Open Source Projectinstructions before attempting to build. If you get build errors about clearsilver.jni, verify the Java version and path. (javac version 1.5.0_16 is verfied as working).
Once the environment has been configured build Android as follows
$ cd <android-source-tree> $ source build/envsetup.sh |
The envsetup.sh script is responsible for setting Bash environment variables required by the Android build system.
Now use choosecombo to set the desired build by specifying Build,Type,Product andVariant.
$ choosecombo |
Choosecombo is interactive or it can take arguments on the commandline
$ choosecombo 1 1 msm7201a_surf eng |
Start the build
$ make -j4 |
By default, the build system uses the tip of kernel source from <platform>/kernel directory, including any modifications you've made.
If you want to compile the kernel with a specific configuration file other than the one defined in vendor/qcom/<product>/AndroidBoard.mk (e.g. msm7201a_defconfig) pass the KERNEL_DEFCONFIG flag on the Make command line.
$ make -j4 KERNEL_DEFCONFIG=your_defconfig |
The kernel objects, vmlinux and zImage will be at <platform>/out/target/product/msm7201a_surf/obj/KERNEL_OBJ and its subdirectories.
You can override the TARGET_PREBUILT_KERNEL flag with your own kernel image to build android with your kernel, as follows:
$ make -j4 TARGET_PREBUILT_KERNEL="<your_kernel_tree>/arch/arm/boot/zImage" |
You can also build ''tiny android'' which is an Android build with a limited user-space environment useful for kernel development and verification. The ''tiny android'' build will not boot into the full UI. It will stay at one of the loading screens. ADB will be active, allowing you to run unit tests, etc. The build time for ''tiny android'' is significantly less than a full Android build.
$ BUILD_TINY_ANDROID=true make -j4 |
You can also tell the build system to echo to stdout the full commands and parameters that it would use in building each file without actually building the file. This is useful to see all the compiler options provided
$ make --just-print |
FAQ
-
What changed between releases?
Each release has its own Repo manifest and Git tag. Git's ''diff'' command can be used to view the commit history and source changes between releases.
For example to see what changed between the M7201JSDCBALYA63752001 and M7201JSDCBALYA63752003 release tags on the coconut.cupcake branch
$ repo init -u git://codeaurora.org/platform/manifest.git -b coconut.cupcake -m M7201JSDCBALYA63752003.xml $ repo sync $ repo forall -p -c 'git diff M7201JSDCBALYA63752001..M7201JSDCBALYA63752003' |
-
How is a patch of the changes between two release tags, branches or commits generated?
The Git ''diff'' command can generate patches suitable for use with the Unix ''diff'' and ''patch'' utilities. Tags, branches and commit IDs can be used interchangeably.
For example to generate a patch of the changes made across all Android projects between the M7201JSDCBALYA63752001 and M7201JSDCBALYA63752003 release tags
$ repo init -u git://codeaurora.org/platform/manifest.git -b coconut.cupcake -m M7201JSDCBALYA63752003.xml $ repo sync $ repo forall -c 'git diff -p M7201JSDCBALYA63752001..M7201JSDCBALYA63752003' > release-delta.patch |
-
What are the ''aosp/*'' branches?
Branches prefixed with ''aosp/'' are the upstream sources from the original Android Open Source Project releases. For example, ''aosp/donut'' is a copy of the ''donut'' branch found on android.git.kernel.org.
-
What is the ''m/*'' branch?
Repo uses a remote tracking branch to track the original upstream branch the workspace was initialised against. Running '''git branch''' with the '''-a''' or '''-r''' options will display Repo's ''m/*'' branch. This branch is created when a '''repo init''' is performed and used by Repo to synchronise with the upstream source. The name of the branch corresponds to the branch name Repo was initialized with, e.g. '''repo init -u URL -b donut''' creates a local ''m/donut'' branch in your workspace.
-
How is a patch of all Code Aurora changes to the AOSP (Android Open Source Project) release generated?
The ''aosp/cupcake'' branch is a unmodified copy of the cupcake branch from the AOSP release. A diff of the ''aosp/cupcake'' branch with the ''cupcake'' branch will show the changes added to the base AOSP (Android Open Source Project) release. The Linux kernel uses a different branch naming convention and must be handled separately from other AOSP projects.
$ repo init -u git://codeaurora.org/platform/manifest.git -b coconut.cupcake -m M7201JSDCBALYA63752003.xml $ repo sync $ repo forall -c 'git diff -p caf/aosp/cupcake..caf/coconut.cupcake' > aosp-delta.patch $ repo forall -c 'git diff -p caf/aosp/android-msm-2.6.27..caf/coconut.cupcake' >> aosp-delta.patch |
-
What files, branches or tags changed and and how to output the commit text?
In this example generate a listing of changes between the AOSP cupcake release branch and the Code Aurora carrot.cupcake release branch
$ repo init -u git://codeaurora.org/platform/manifest.git -b coconut.cupcake -m M7201JSDCBALYA63752003.xml $ repo sync $ repo forall -c 'git log stat caf/aosp/cupcake..caf/coconut.cupcake' > aosp-delta.log |
Tags, branches and commit IDs can be used interchangeably.
Licenses
The source code available for download from Code Aurora may be covered by one or more different licenses. The files in Code Aurora may contain changes and additions on top of the code from the original source. These changes and additions are covered under the same license as the original source. In many cases, the license is explicitly listed at the beginning of the file. A list of licenses is included for reference purposes only.