AnsweredAssumed Answered

Recommendations on setting up a build environment for android development among multiple developers?

Question asked by Abraham Varricatt on Jul 23, 2013
Latest reply on Nov 12, 2013 by Abraham Varricatt

I'm setting up a team for android development based on the iMX6 quad processor. We have the sabresd reference board with us. Following the instructions in the file "Android_User_Guide.pdf" I was able to build (from scratch) the u-boot image, the linux kernel, the android system and successfully load it on our reference board. For version control, the team will be using GIT. My plan is to divide the team into different types - u-boot developers, kernel developers and android developers.

 

The u-boot developers need only have access to the source code under /u-boot. The output of their work will be the "u-boot.bin" file.

 

The kernel developers should have access to the /kernel-imx source directory. The output of their work will be the "boot.img" file.

 

The android developers should only have access to the android sources. They should NOT have access to either the sources in /u-boot or /kernel-imx. Instead, they should have pre-built binaries for whatever u-boot or kernel files they need. Their output will be the "system.img" and "recovery.img" files.

 

Then the testing team will take these 4 files, use the MFG Tool to load the images to the eMMC area of the board and do whatever is needed.

 

My problem is that I have no idea how to split the source code into separate stand-alone sections. The "Android_User_Guide.pdf" documentation assumes that every developer has access to the top-level "myandroid" folder. The reason why I want to split the code is because if a developer is ONLY working in /u-boot or /kernel-imx and they try running "git status", it takes too long to respond. That and the fact that its overly cumbersome for a u-boot developer to be lugging around 10+GB of android source code he/she will NOT be working on.

 

Any suggestions on how this can be accomplished?

 

I *think* the /u-boot folder can be made into a repository of its own and the cross-compiler tools distributed with it. Running "make" generates the 'u-boot.img' file, so it should work (in theory). But I'm not sure how to do the same with the /kernel-imx folder. Even if that is spun out, all I can do stand-alone is generate the "uImage" file. I'm not sure how to convert this into the "boot.img" file without using "source build/envsetup.sh" and "lunch sabresd_6dq-user". And then there is Freescale's android build system. Assuming that I have the 'u-boot.img' and 'boot.img' files pre-built, how do I configure it to work with them? By default, it seems to be compiling u-boot and linux kernel.

Outcomes