Building Your Own Android Systems from Source Adam C. Champion CSE 5236: Mobile App Development 1.

Slides:



Advertisements
Similar presentations
Prashant Somashekar. What will we discuss? -Brief overview of a kernel -How a kernel fits into the hierarchy -Android versus Linux kernel -Building an.
Advertisements

Microsoft ® Official Course First Look Clinic Overview of Windows 8 By Ragowo Riantory, S.Kom, MCP.
Linux+ Guide to Linux Certification, Third Edition Chapter 11 Compression, System Backup, and Software Installation.
2. Setting Up Your Android Development Environment.
UFCFX5-15-3Mobile Device Development Android Development Environments and Windows.
The Operating System The operation system (OS) is a set of programs that coordinates: Hardware functions Interaction between application software and computer.
Daniel, Stephen & Thomson 1. » Easy for learners to create mobile apps for Android smart phones » Visually fitting together puzzle piece-shaped "programming.
Daniel, Stephen & Thomson 1. » Easy for learners to create mobile apps for Android smart phones » Visually fitting together puzzle piece-shaped "programming.
Cassandra Installation Guide and Example Lecturer : Prof. Kyungbaek Kim Presenter : I Gde Dharma Nugraha.
1 Introduction to ARM A15 Linux DSP Platform Software Apps Team 04/19/2013 1TI Confidential - NDA Restrictions.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
LING 408/508: Programming for Linguists Lecture 3 August 31 st.
Chap 1 ~ Introducing LINUX LINUX is a free-stable multi-user operating system that derives from UNIX operating system Benefits: 1) Linux is released under.
Linux in a Virtual Environment Nagarajan Prabakar School of Computing and Information Sciences Florida International University.
Practical Computer Literacy Week-02
Android x86 Build Environments Update 1.Update System $sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev.
1 What is a Kernel The kernel of any operating system is the core of all the system’s software. The only thing more fundamental than the kernel is the.
Running Kuali: A Technical Perspective Ailish Byrne - Indiana University Jay Sissom - Indiana University Foundation.
Vagrant workflow Jul. 15, 2014.
COMPUTER SYSTEM LABORATORY Lab6 - Root Filesystem.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
RTL8192C USB Linux Driver Quick Installation Guide
Running Kuali: A Technical Perspective Ailish Byrne (Indiana University) Jonathan Keller (University of California, Davis)
IST 222 Day 3. Homework for Today Take up homework and go over Go to Microsoft website and check out their hardware compatibility list.
1 Copyright © 2015 Pexus LLC Patriot PS Personal Server Installing Patriot PS ISO Image on.
Installing BioLinux on Mac OS X or Windows using a virtual machine Dr. Habil Zare, PhD.
CSCI 330 UNIX and Network Programming Unit XX: Linux Administration.
Lab 8 Department of Computer Science and Information Engineering National Taiwan University Lab8 - Root Filesystem 2015/11/10/ 22 1.
2: Operating Systems Networking for Home & Small Business.
Course 03 Basic Concepts assist. eng. Jánó Rajmond, PhD
Embedded Software Design Week II Linux Intro Linux Kernel.
 Prepared by: Eng. Maryam Adel Abdel-Hady
Chap 1 ~ Introducing LINUX LINUX is a free-stable multi-user operating system that derives from UNIX operating system Benefits: 1) Linux is released under.
How to root Android Phone and Tablet for free and safe.
Patrick Gartung LArSoft Usability Meeting 22 June 2016 Build system explorations: Spack.
TIZEN STUDIO INSTALLATION & ENVIRONMENT SETUP FOR DEVLAB
GNU and Linux.
Daniel, Stephen & Thomson
Mobile Device Development
Andrea Chierici Virtualization tutorial Catania 1-3 dicember 2010
Computer System Laboratory
bitcurator-access-webtools Quick Start Guide
Android Introduce yourself.
Outline Installing Gem5 SPEC2006 for Gem5 Configuring Gem5.
RASPBERRY PI WORKSHOP.
Backing Up Your System With rsnapshot
Implementation of Embedded OS
IDE and Phone Setup Overview Mike Zook 20-Sep-2016.
Seamless Guest OS's and more!
Computer System Laboratory
Install external command line softwares
SEEM4570 Tutorial 1:Software Installation
Prepared by: Eng. Maryam Adel Abdel-Hady
UBUNTU INSTALLATION
Chapter 2: Operating-System Structures
Liberating Android with Paul from DCTRL.
The Linux Operating System
GeoPortal Training Workshop 1st Mar 2017
Lab 1 introduction, debrief
Building Android OS Topics: Building Android and Kernel
What is an Operating System?
How to Fix Android File Transfer Not Working on Mac?
OPS235: Lab 2 Virtual Machines – Part I
OPS235: Week 1 Installing Linux ( Lab1: Investigations 1-4)
Working with Mac OS and Linux
Computer System Laboratory
Software - Operating Systems
Chapter 2 Ionic Installation
Wireless Networks for 4G/5G Getting started with ns-3
Building Your Own Android Systems from Source
Presentation transcript:

Building Your Own Android Systems from Source Adam C. Champion CSE 5236: Mobile App Development 1

Outline Motivation Preparing a Build Environment Obtaining Source Code Building Systems 2

Motivation Why build your own system? – Full control over device software (remove “bloat,” address security and privacy) – Extend device lifetime beyond “official” OS support – Research (e.g., wireless networking, mobile systems, etc.) – Customize device (e.g., themes, lockscreens) Disclaimers: – This will definitely void your warranty – system building is at your own risk! I am not responsible if you “brick” your device! – Using a custom Android system on a cellular network may violate your network operator’s terms of service – We’ll only cover building Android Open Source Project (AOSP); Google services are proprietary 3

Preparing a Build Environment (1) What you’ll need: [1] – 64-bit Mac OS X or Linux (Ubuntu LTS, Debian)* – ≥ 16 GB RAM – ≥ 150 GB disk space to build Android system; ≥ 200 GB for multiple builds – JDK version 5–7 (see table) – Python 2.6–2.7 – GNU Make 3.81–3.82 – Git – A few hours … JDK VersionAndroid Version to be Compiled 51.5– – * MS Windows users need to create Linux VM (e.g., using VirtualBox [2]). The above system requirements are minimum for building (plus VM overhead).

Preparing a Build Environment (2) Install prerequisites [3]: – OS X: Xcode, command-line utilities (Mac App Store); GNU make, git, ccache from MacPorts, Homebrew – Linux: Software updates, needed packages [3] – ccache is strongly recommended to speed up build process [3] Linux users need to enable USB access: [4] wget -S -O - android.rules | sed "s/ /$USER/" | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules 5

Preparing a Build Environment (3) Install repo, create a working directory. Run the following in a shell: [4] $ mkdir ~/bin $ PATH=~/bin:$PATH $ curl downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo $ mkdir WORKING_DIRECTORY $ cd WORKING_DIRECTORY $ repo init -u $ repo sync –Be prepared to wait a few hours, especially with the last command! 6

Building the System Run the following in a shell: [4] $. build/envsetup.sh $ lunch $ # Pick an option. Make sure to select a “*- userdebug” or “*-eng” build $ export USE_CCACHE=1 $ export CCACHE_DIR=/ /.ccache $ prebuilts/misc/linux-x86/ccache/ccache -M 50G $ make -j4 On OS X, replace linux-x86 with darwin-x86 This process takes several hours. An SSD greatly decreases compile time… 7

Installing System on Device Prerequisites: – Unlock device bootloader (voids warranty) – Get root access on your device (varies for device, voids warranty) Google Nexus devices (up to Nexus 6) strongly recommended for system building Ensure you download the proprietary binaries for your (Nexus) device from [5], device manufacturer Then run tar xvzf at a shell for each downloaded driver (may vary for devices) Now run at a shell: $ adb reboot bootloader $ fastboot flashall -w 8

More to Explore Build CyanogenMod (a custom Android ROM) via similar process as AOSP [6] Xposed: JAR file loaded into each Android executable for customization [7] Bluetooth: Swap Linux BlueZ stack with Android’s “BlueDroid” on Nexus devices [8] F-Droid: Free/open-source Android software repository alternative to Google Play [9] The rest is up to you! 9

Thank You Questions and comments? 10

References 1.AOSP, 2.Oracle, VirtualBox, 3.AOSP, 4.AOSP, 5.Google Inc., 6.CyanogenMod, 7.XDA-Developers, installer-versions-changelog-t http://forum.xda-developers.com/xposed/xposed- installer-versions-changelog-t AOSP-BlueZ, 9.F-Droid, 11