SlideShare a Scribd company logo
1 of 22
Download to read offline
X86 Android Bringup - A
ROM Cooking Tutorial
Ron Munitz
November, 2013
© all rights reserved - Ron Munitz 2013
Permission to use and distribute slides is granted by specifying this copyright note, and accrediting the
original author.
Part I - Introduction
Ron Munitz
2013
Agenda
● History
● The Android Open Source Project
● Introduction to working with the AOSP
● Building your first ROM - the Android Emulator
● 2002 - SideKick by Danger Inc. - The first “Internet Phone”.
○ Technical session at Stanford by Andy Rubin, CEO of Danger Inc.
○ Google’s Brin&Page attend, and soon become Sidekick users.
○ Sidekick fails to acheive commercial success
● 2003 - Andy Rubin forms “Android”, targeted at operating mobile phones
and cameras
● 2005 - Google Acquires “Android”.
● 2007 - The Open Handset Alliance is formed
○ November 5th - The OHA Announces Android, an open source
mobile phone platform based on the linux kernel
○ November 12th - Google Announces the Android SDK, along with a
$10 million Android developer challenge
Android History (2002-2007)
● 2008 - T-mobile and Google announce the first Android phone - the G1
○ AKA. The HTC “Dream”
○ Approved by the FCC on August 18th 2008
○ First available - October 22nd
● 2009 - Motorola Droid is announced, running Android 2.0
○ Considered by many as the opening note for the smartphone wars.
○ Added at least two exclusive features:
■ Hardware keyboard
■ Replaceable battery
Android History (2008-2009)
● 2010 was an exciting year for Android:
○ Google Announces its first flagship device - the Nexus One
■ Which is one of the best phones I have ever had.
○ Samsung sets a giant’s foot on the battlefield
■ Galaxy S and its variants hit the market
○ HTC’s EVO4G hits the market
■ Was widely considered as the best iPhone alternative at that time
○ Android’s market share first passes the iPhone’s market share
○ Google announces the Gingerbread (2.3) Android version, debuting
on the Nexus S.
■ Introducing the most popular Android version until the end of 2013
■ Introducing NFC and SIP
Android History (2010)
Android History (2011-2013)
● 2011 - Honeycomb (3.0), google’s first aim at the tablet market is out
○ Android’s market share first passes the Blackberry’s market share
○ November 2011 - Ice Scream Sandwich is out, debutting on the
Galaxy Nexus
● 2012 - JellyBean is released
○ Introducing significant enhancement in user experience (Project
butter)
○ Introducing multi user for tablets
○ Samsung confidently ranks as the top Android phone maker on earth
● 2013 - More devices, more market share,
○ Android 4.3 is out: Enhanced WiFi-Display, Open GL ES 3.0,...
○ Android 4.4 (KitKat) is out: First time a commercial brand pays for an
Android version branding, and more...
Android History (Future)
● Foreseeable future:
○ More devices
○ More power
○ More features
○ More apps
○ More developers
○ More competition
○ More embedded Android engineers required.
● Will Android be crowned as the new Embedded Linux?
Platform Versions
● Data collected during a 14-day period ending on August 1, 2013.
● Any versions with less than 0.1% distribution are not shown
Screen Sizes and Densities
Android Platform Overview
Android Open Source Project
● “Semi-Open source”
○ Why “Semi” ? In next slide!
● Maintained by Google
● Contributions accepted using “gerrit”
● Mostly Apache licensed
● Provides templates for building an Android system, including
bootloaders etc.
● Vendors derive their products for their hardware layout (BSP,
binaries, etc.)
● Provides the complete source code (but usually missing proprietary
binaries) for a bunch of supported devices (e.g. Galaxy Nexus,
Nexus 4/7/10, Android Emulator)
Android and Open Source
● Source code (For most components) is publicly available
● Contributions are accepted
○ Sometimes. Usually takes time, really depends on the
contribution.
● “Latest and greatest” development is done behind close
doors
● No participation in project direction
Android and Open Source
“Open source is different than a community-driven
project.
Android is light on community-driven, somewhat
heavy on open source.” - Andy Rubin
Android and Open Source
● So far, history has proven that Google publishes major code
releases about every six months - close the announcement
of a new device running that new code release
● Latest and greatest open source work (that is what is not
done exclusively behind google’s close doors) can be
viewed, reviewed and contributed to:
○ http://android-review.googlesource.com/ - Gerrit.
■ View current patches
○ http://android.googlesource.com - Gitweb.
■ View state of published source
○ https://code.google.com/p/android/issues - View or submit bug, issue,
feature request
● (If at all,) Bug fixes usually make their ways to the master branch.
○ See http://source.android.com/source/submit-patches.html
Building the AOSP
● Minimum Requirements
○ 64-bit Linux or Mac system (HW or VM). at least 16GB of RAM/swap
○ 30GB of free disk space to complete a single build and up to 100GB or
more for a full set of builds. The source download is over 10GB in
size.
○ Python 2.6 -- 2.7, which you can download from python.org.
○ GNU Make 3.81 -- 3.82, which you can download from gnu.org,
○ JDK 6 -- 7 which you can download from oracle.com
○ Git 1.7 or newer. You can find it at git-scm.com.
● Your building life will be easy with
○ Lots of cores
○ Lots of memory
○ SSD
Building the AOSP - Checklist
✓ Setup your workstation (Hardware, VM)
✓ Configure all the necessary packages
○ @see http://source.android.com
✓ Configure path for “repo” tool
✓ Configure ccache
✓ Double check RAM and free disk space requirements.
Obtaining the source code
● The AOSP uses repo, a multi git project wrapper written in Python for
source code management.
● Before building the AOSP, or any other Android build system, one must
first decide the branch or tag they would like to work on.
○ That would be the same branch/tag for a given, public Android release
● Then, to initialize the repository configuration at their hosts one should
create a directory, change the working directory to it, and:
○ repo init -u https://android.googlesource.com/platform/manifest
■ For working on the master branch
○ repo init -u https://android.googlesource.com/platform/manifest -b <branch>
■ For working on the <branch> branch
● Once repo has been initialized with parameters such as your name and
email address, you can synchronize the code to the latest remote state:
○ repo sync -j${NumJobs}
■ The -j parameter is the number of simultaneous jobs
Building the source code
● Let us deal with a device supported in the AOSP (i.e. *Nexus*, or emulator)
● Once the source is ready, you first need to configure the build
environment:
○ . build/envsetup.sh
■ This will setup the base Android build system environment
● Then, you choose your specific device configuration:
○ lunch <devicename>-<variant>
■ <devicename> is the code name for the device (e.g. maguro, grouper,
full_x86) , responsible of setting the device specific configuration, BSP,
partition layout, etc.
■ <variant> Can be one of the following:
● user - production build
● userdebug - production with debug features
● eng - engineering builds
● tests - google internal
● Note: The list can be modified, and it has been (RIP “debug”)
● Once the build target has been selected - you are good to build:
○ make -j${NumJobs}
■ The -j parameter is the number of simultaneous jobs
Example
● Task: Build and run an Android emulator with the following properties:
○ Based on the android-4.3_r2.1 tag
○ For X86 architecture
○ -eng build variant
● Solution:
○ mkdir -p ~/edu/AOSP
○ cd ~/edu/AOSP
○ repo init -u https://android.googlesource.com/platform/manifest -b android-4.3_r2.1
○ repo sync -j4 # This will take a while...
○ . build/envsetup.sh
○ lunch aosp_x86-eng
○ make -j16 # This will take a while
○ emulator & #
1 picture == 1000 words
This is an image based on one of the earliest
JB versions. Not much, if any has changed
since the very early days of “Cupcake” and
“Donut”.
References
1. http://www.businessinsider.com/history-of-android-2013-8?op=1
2. http://source.android.com
3. http://developer.android.com
4. Introduction to ROM cooking - Ron Munitz
5. “Bringing up Android on your favorite X86 Workstation or VM” - Ron
Munitz, AnDevCon Boston, 2013
6. “Android IA bringup - words of a veteran” - Ron Munitz, Android Builders
Summit, 2013
7. http://git-scm.com/

More Related Content

What's hot

Lt2013 uefisb.talk
Lt2013 uefisb.talkLt2013 uefisb.talk
Lt2013 uefisb.talkUdo Seidel
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Linux Introduction - Yousefpour - Rahnema College
Linux Introduction - Yousefpour - Rahnema CollegeLinux Introduction - Yousefpour - Rahnema College
Linux Introduction - Yousefpour - Rahnema CollegeMasoud Yousefpour
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianMender.io
 
Introduction to the Moby Project
Introduction to the Moby ProjectIntroduction to the Moby Project
Introduction to the Moby ProjectJochen Zehnder
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with NougatOpersys inc.
 
Is Android the New Embedded Linux? at AnDevCon IV
Is Android the New Embedded Linux? at AnDevCon IVIs Android the New Embedded Linux? at AnDevCon IV
Is Android the New Embedded Linux? at AnDevCon IVOpersys inc.
 
Embedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeEmbedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeOpersys inc.
 
Android Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IAndroid Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IOpersys inc.
 
Tizen Web App 개발
Tizen Web App 개발Tizen Web App 개발
Tizen Web App 개발xcoda
 
Software Freedom and Community
Software Freedom and CommunitySoftware Freedom and Community
Software Freedom and CommunitySammy Fung
 
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012Opersys inc.
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with NougatOpersys inc.
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Opersys inc.
 
Android jumpstart at ESC Boston 2011
Android jumpstart at ESC Boston 2011Android jumpstart at ESC Boston 2011
Android jumpstart at ESC Boston 2011Opersys inc.
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in AndroidOpersys inc.
 

What's hot (20)

Lt2013 uefisb.talk
Lt2013 uefisb.talkLt2013 uefisb.talk
Lt2013 uefisb.talk
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Linux Introduction - Yousefpour - Rahnema College
Linux Introduction - Yousefpour - Rahnema CollegeLinux Introduction - Yousefpour - Rahnema College
Linux Introduction - Yousefpour - Rahnema College
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and Debian
 
Introduction to the Moby Project
Introduction to the Moby ProjectIntroduction to the Moby Project
Introduction to the Moby Project
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with Nougat
 
Is Android the New Embedded Linux? at AnDevCon IV
Is Android the New Embedded Linux? at AnDevCon IVIs Android the New Embedded Linux? at AnDevCon IV
Is Android the New Embedded Linux? at AnDevCon IV
 
Embedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeEmbedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC Europe
 
Android Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IAndroid Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part I
 
Introduction to FOSS world
Introduction to FOSS worldIntroduction to FOSS world
Introduction to FOSS world
 
Tizen Web App 개발
Tizen Web App 개발Tizen Web App 개발
Tizen Web App 개발
 
Tizen contrib-fosdem-20140201
Tizen contrib-fosdem-20140201Tizen contrib-fosdem-20140201
Tizen contrib-fosdem-20140201
 
Software Freedom and Community
Software Freedom and CommunitySoftware Freedom and Community
Software Freedom and Community
 
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with Nougat
 
tizen-upstream-coop-tdc2014-pcoval
tizen-upstream-coop-tdc2014-pcovaltizen-upstream-coop-tdc2014-pcoval
tizen-upstream-coop-tdc2014-pcoval
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3
 
Android jumpstart at ESC Boston 2011
Android jumpstart at ESC Boston 2011Android jumpstart at ESC Boston 2011
Android jumpstart at ESC Boston 2011
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in Android
 
tizen-maintain-20150413rzr
tizen-maintain-20150413rzrtizen-maintain-20150413rzr
tizen-maintain-20150413rzr
 

Similar to Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon SF 2013)

Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)
Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)
Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)Ron Munitz
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with NougatOpersys inc.
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowOpersys inc.
 
Embedded Android Workshop with Oreo
Embedded Android Workshop with OreoEmbedded Android Workshop with Oreo
Embedded Android Workshop with OreoOpersys inc.
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowKarim Yaghmour
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowOpersys inc.
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowOpersys inc.
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopOpersys inc.
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIOpersys inc.
 
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)Ron Munitz
 
Is Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon VIs Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon VOpersys inc.
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopOpersys inc.
 
Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Opersys inc.
 
Embedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VIEmbedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VIOpersys inc.
 
Is Android the New King of Embedded OSes at Embedded World 2014
Is Android the New King of Embedded OSes at Embedded World 2014Is Android the New King of Embedded OSes at Embedded World 2014
Is Android the New King of Embedded OSes at Embedded World 2014Opersys inc.
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Introduction to Android (Jeudis du libre)
Introduction to Android (Jeudis du libre)Introduction to Android (Jeudis du libre)
Introduction to Android (Jeudis du libre)cbeyls
 
Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014Opersys inc.
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Opersys inc.
 

Similar to Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon SF 2013) (20)

Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)
Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)
Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with Nougat
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Embedded Android Workshop with Oreo
Embedded Android Workshop with OreoEmbedded Android Workshop with Oreo
Embedded Android Workshop with Oreo
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VI
 
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
 
Is Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon VIs Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon V
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
 
Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014
 
Embedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VIEmbedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VI
 
Is Android the New King of Embedded OSes at Embedded World 2014
Is Android the New King of Embedded OSes at Embedded World 2014Is Android the New King of Embedded OSes at Embedded World 2014
Is Android the New King of Embedded OSes at Embedded World 2014
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Introduction to Android (Jeudis du libre)
Introduction to Android (Jeudis du libre)Introduction to Android (Jeudis du libre)
Introduction to Android (Jeudis du libre)
 
Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013
 

Recently uploaded

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 

Recently uploaded (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon SF 2013)

  • 1. X86 Android Bringup - A ROM Cooking Tutorial Ron Munitz November, 2013 © all rights reserved - Ron Munitz 2013 Permission to use and distribute slides is granted by specifying this copyright note, and accrediting the original author.
  • 2. Part I - Introduction Ron Munitz 2013
  • 3. Agenda ● History ● The Android Open Source Project ● Introduction to working with the AOSP ● Building your first ROM - the Android Emulator
  • 4. ● 2002 - SideKick by Danger Inc. - The first “Internet Phone”. ○ Technical session at Stanford by Andy Rubin, CEO of Danger Inc. ○ Google’s Brin&Page attend, and soon become Sidekick users. ○ Sidekick fails to acheive commercial success ● 2003 - Andy Rubin forms “Android”, targeted at operating mobile phones and cameras ● 2005 - Google Acquires “Android”. ● 2007 - The Open Handset Alliance is formed ○ November 5th - The OHA Announces Android, an open source mobile phone platform based on the linux kernel ○ November 12th - Google Announces the Android SDK, along with a $10 million Android developer challenge Android History (2002-2007)
  • 5. ● 2008 - T-mobile and Google announce the first Android phone - the G1 ○ AKA. The HTC “Dream” ○ Approved by the FCC on August 18th 2008 ○ First available - October 22nd ● 2009 - Motorola Droid is announced, running Android 2.0 ○ Considered by many as the opening note for the smartphone wars. ○ Added at least two exclusive features: ■ Hardware keyboard ■ Replaceable battery Android History (2008-2009)
  • 6. ● 2010 was an exciting year for Android: ○ Google Announces its first flagship device - the Nexus One ■ Which is one of the best phones I have ever had. ○ Samsung sets a giant’s foot on the battlefield ■ Galaxy S and its variants hit the market ○ HTC’s EVO4G hits the market ■ Was widely considered as the best iPhone alternative at that time ○ Android’s market share first passes the iPhone’s market share ○ Google announces the Gingerbread (2.3) Android version, debuting on the Nexus S. ■ Introducing the most popular Android version until the end of 2013 ■ Introducing NFC and SIP Android History (2010)
  • 7. Android History (2011-2013) ● 2011 - Honeycomb (3.0), google’s first aim at the tablet market is out ○ Android’s market share first passes the Blackberry’s market share ○ November 2011 - Ice Scream Sandwich is out, debutting on the Galaxy Nexus ● 2012 - JellyBean is released ○ Introducing significant enhancement in user experience (Project butter) ○ Introducing multi user for tablets ○ Samsung confidently ranks as the top Android phone maker on earth ● 2013 - More devices, more market share, ○ Android 4.3 is out: Enhanced WiFi-Display, Open GL ES 3.0,... ○ Android 4.4 (KitKat) is out: First time a commercial brand pays for an Android version branding, and more...
  • 8. Android History (Future) ● Foreseeable future: ○ More devices ○ More power ○ More features ○ More apps ○ More developers ○ More competition ○ More embedded Android engineers required. ● Will Android be crowned as the new Embedded Linux?
  • 9. Platform Versions ● Data collected during a 14-day period ending on August 1, 2013. ● Any versions with less than 0.1% distribution are not shown
  • 10. Screen Sizes and Densities
  • 12. Android Open Source Project ● “Semi-Open source” ○ Why “Semi” ? In next slide! ● Maintained by Google ● Contributions accepted using “gerrit” ● Mostly Apache licensed ● Provides templates for building an Android system, including bootloaders etc. ● Vendors derive their products for their hardware layout (BSP, binaries, etc.) ● Provides the complete source code (but usually missing proprietary binaries) for a bunch of supported devices (e.g. Galaxy Nexus, Nexus 4/7/10, Android Emulator)
  • 13. Android and Open Source ● Source code (For most components) is publicly available ● Contributions are accepted ○ Sometimes. Usually takes time, really depends on the contribution. ● “Latest and greatest” development is done behind close doors ● No participation in project direction
  • 14. Android and Open Source “Open source is different than a community-driven project. Android is light on community-driven, somewhat heavy on open source.” - Andy Rubin
  • 15. Android and Open Source ● So far, history has proven that Google publishes major code releases about every six months - close the announcement of a new device running that new code release ● Latest and greatest open source work (that is what is not done exclusively behind google’s close doors) can be viewed, reviewed and contributed to: ○ http://android-review.googlesource.com/ - Gerrit. ■ View current patches ○ http://android.googlesource.com - Gitweb. ■ View state of published source ○ https://code.google.com/p/android/issues - View or submit bug, issue, feature request ● (If at all,) Bug fixes usually make their ways to the master branch. ○ See http://source.android.com/source/submit-patches.html
  • 16. Building the AOSP ● Minimum Requirements ○ 64-bit Linux or Mac system (HW or VM). at least 16GB of RAM/swap ○ 30GB of free disk space to complete a single build and up to 100GB or more for a full set of builds. The source download is over 10GB in size. ○ Python 2.6 -- 2.7, which you can download from python.org. ○ GNU Make 3.81 -- 3.82, which you can download from gnu.org, ○ JDK 6 -- 7 which you can download from oracle.com ○ Git 1.7 or newer. You can find it at git-scm.com. ● Your building life will be easy with ○ Lots of cores ○ Lots of memory ○ SSD
  • 17. Building the AOSP - Checklist ✓ Setup your workstation (Hardware, VM) ✓ Configure all the necessary packages ○ @see http://source.android.com ✓ Configure path for “repo” tool ✓ Configure ccache ✓ Double check RAM and free disk space requirements.
  • 18. Obtaining the source code ● The AOSP uses repo, a multi git project wrapper written in Python for source code management. ● Before building the AOSP, or any other Android build system, one must first decide the branch or tag they would like to work on. ○ That would be the same branch/tag for a given, public Android release ● Then, to initialize the repository configuration at their hosts one should create a directory, change the working directory to it, and: ○ repo init -u https://android.googlesource.com/platform/manifest ■ For working on the master branch ○ repo init -u https://android.googlesource.com/platform/manifest -b <branch> ■ For working on the <branch> branch ● Once repo has been initialized with parameters such as your name and email address, you can synchronize the code to the latest remote state: ○ repo sync -j${NumJobs} ■ The -j parameter is the number of simultaneous jobs
  • 19. Building the source code ● Let us deal with a device supported in the AOSP (i.e. *Nexus*, or emulator) ● Once the source is ready, you first need to configure the build environment: ○ . build/envsetup.sh ■ This will setup the base Android build system environment ● Then, you choose your specific device configuration: ○ lunch <devicename>-<variant> ■ <devicename> is the code name for the device (e.g. maguro, grouper, full_x86) , responsible of setting the device specific configuration, BSP, partition layout, etc. ■ <variant> Can be one of the following: ● user - production build ● userdebug - production with debug features ● eng - engineering builds ● tests - google internal ● Note: The list can be modified, and it has been (RIP “debug”) ● Once the build target has been selected - you are good to build: ○ make -j${NumJobs} ■ The -j parameter is the number of simultaneous jobs
  • 20. Example ● Task: Build and run an Android emulator with the following properties: ○ Based on the android-4.3_r2.1 tag ○ For X86 architecture ○ -eng build variant ● Solution: ○ mkdir -p ~/edu/AOSP ○ cd ~/edu/AOSP ○ repo init -u https://android.googlesource.com/platform/manifest -b android-4.3_r2.1 ○ repo sync -j4 # This will take a while... ○ . build/envsetup.sh ○ lunch aosp_x86-eng ○ make -j16 # This will take a while ○ emulator & #
  • 21. 1 picture == 1000 words This is an image based on one of the earliest JB versions. Not much, if any has changed since the very early days of “Cupcake” and “Donut”.
  • 22. References 1. http://www.businessinsider.com/history-of-android-2013-8?op=1 2. http://source.android.com 3. http://developer.android.com 4. Introduction to ROM cooking - Ron Munitz 5. “Bringing up Android on your favorite X86 Workstation or VM” - Ron Munitz, AnDevCon Boston, 2013 6. “Android IA bringup - words of a veteran” - Ron Munitz, Android Builders Summit, 2013 7. http://git-scm.com/