by Arnav Gupta (@championswimmer) on Friday, 28 August 2015

+19
Vote on this proposal
Status: Confirmed & Scheduled
View session in schedule
Section
Workshops

Technical level
Advanced

Objective

I had been to DroidCon last year to describe how to modify the Androi OS and make your own custom ROM build.
This time I wish to describe the next step which involves setting up a set of source code mirrors, a code review server, a bug tracker, and a CI server to be able to create a end-to-end CI for Android ROM building. This pertains to both community based ROM projects like CyanogenMod, AOKP, OmniROM etc, and for enterprise projects by OEM/ODMs to build their own internal proprietary Android-based OS.

Description

Whether you want to create a community based / open source Android custom ROM project, or you are from an OEM/ODM who is creating their own fork of Android, you’ll have the need for the following;

  1. Hosting the source centrally, which can be checked out and committed back to easily
  2. Host a code-review server, because you’ll have multiple engineers working simultaneously on multiple sub-modules
  3. Set up a CI server for building the ROM (for both testing patches and generating nightlies/releases)

This workshop will cover these three main problem statements and will be consisting of 3 parts

  1. Checking out the Android Open Source Project, and host your own fork (or a part of it); be able to download and sync it using repo
  2. Setup and host code review using gerrit (A code review software made by Google and used by AOSP and Chromium project); managing repositories, user roles and rights, replication etc.
  3. Setup a buildbot using Jenkins/Hudson. Setting up build tasks for testing of patches, and for generating nightly/snapshot/release builds.

Requirements

  • Basic understanding of the Android OS build process
  • Experience with working on framework/OS layer with Android
  • Basic knowledge of Git version control system, and a 10-15 min lookup into topics like Jenkins CI, Gerrit etc

You should bring a laptop running a Linux OS if you wish to parallelly experiment with the stuff being demonstrated on stage.

If people want to follow the steps I am showing, it’s imperative they are running Linux (or at least Mac. not Windows). If they have a downloaded copy of gerrit and jenkins distributions, it would be good as well.
Gerrit downloads - http://gerrit-releases.storage.googleapis.com/index.html
Jenkins Downloads - http://mirrors.jenkins-ci.org/war/

Speaker bio

Currently pursuing a Bachelor’s degree in Electrical and Electronics Engineering at Delhi Technological University and freelancing as an Android platform and OS consultant.
I have been a Developer and Device Maintainer at CyanogenMod and AOKP, making the latest Android source work on Sony Xperia devices, while adding awesome usability features that make users fall in love. A couple of features I have written have also made their way into Google’s Android Open Source Project, and can be found in Kitkat and Android L.
I have been a Open Source community partner with Sony Mobile for the last two years, which basically means I get the latest Xperias to hack around with as soon as they are launched.
Last year, while working at Cube26, I have been part of the team that made many contextually smart UI/UX enhacements for the Micromax Canvas A290, A310, A315 series of phones.
I am also an open source enthusiast with contributions to Linux, GNOME, Arduino, Android and other open source projects, and a Google Summer of Code alumnus.
Have been a speaker at Mobile Developer Summit 2014, and DroidCon 2014.