introduction to android custom rom development - illinois splash presentation

Upload: rohan-mathur

Post on 09-Jan-2016

223 views

Category:

Documents


1 download

DESCRIPTION

Intro to ROM Development

TRANSCRIPT

Introduction to Android Custom ROM DevelopmentBy Rohan MathurAbout MeLead developer of a custom ROM known as AOKP for the past 4 yearsOver 11 million unique installations in its historyBeen involved in the Android scene since Freshman year High SchoolLed me to have experience with everything from Java to Linux kernel developmentHigher vs Lower LevelTwo parts to custom ROM developmentHigher LevelManipulating and editing the Android frameworks, adding features that are hardware independent, normal Android development (i.e. Java, XML, etc)Lower LevelWorking with Linux drivers, proprietary files, getting them to play nice with newer Android releasesAOSPSource is made up of multiple git projectsex. platform_frameworks_base holds most of the main Android framework codeGoogle releases the Android platform code for most releases, along with device support files (device trees)Other OEMs devices though...Other SourcesOther non-Nexus devices are required by GPL to have released kernel source code (important for hardware compatibility)Not always the case with smaller (and even bigger *cough* HTC *cough* OEMS)Proprietary binaries are needed for harder things like Camera HALsSource OrganizationMain source treeConsists of core system frameworks, core system apps, and external libraries used by frameworks, build, bionic, etcDevice treeKernel treeVendor treeEnough information I want to build my own Android OS for my device! :DOur Build InformationWe will be building for the Oppo Find 7Can do the same for any other device (Samsung Galaxy S5, etc)Building on a buildbot to shorten build timeBuilding CyanogenMod - process is similar for any other custom ROM or AOSP as wellPrepare Build EnvironmentInitializing a Build Environment documentation should helphttps://source.android.com/source/initializing.htmlBuild environment is same regardless of what ROM you are building (CM vs AOKP vs Pure AOSP etc)Downloading SourceUses Google-made tool called repo to grab correct projects/branchesRepository named the manifest tells where to get all these different repos from and stores it in an XML, and repo goes down the list and downloads them

Enough talk!repo init -u git://github.com/CyanogenMod/android.git -b cm-12.0repo syncNow wait anywhere from an hour to 24 hours for around 20gb of source to be downloadedThank god for Siebel ethernetSource DownloadedDemonstrate source structureDefine ObjectiveLets add a feature to CyanogenMod, eh?Well even be nice and submit it to their code review after so they can merge it!Live coding time!Thank you, I hope you all enjoyed my brief introduction of Android Custom ROMs!

Ive only barely touched the surface - there is soooooooo much more that can be done!

Twitter - @rohan32Email - [email protected]