Learning AOSP - Building AOSP for Nexus 7

Post on 11-Feb-2017

2,397 views 0 download

transcript

Building AOSP for Nexus 7Building AOSP for Nexus 7

Nanik TolaramNanik Tolaram@nanikjava@nanikjava

Thank You !Thank You !

WARNING !WARNING ! Voiding warrantyVoiding warranty

Bricked deviceBricked device

No support (DIY support)No support (DIY support)

Who Am I ?Who Am I ? Enterprise Java DeveloperEnterprise Java Developer

Android Framework & Kernel tinkererAndroid Framework & Kernel tinkerer

Creating electronics gadgetsCreating electronics gadgets

ozandroid.info & kernel.ozandroid.infoozandroid.info & kernel.ozandroid.info

What you need ?What you need ? Android DeviceAndroid Device

64-bit Linux based distro64-bit Linux based distro

Fast Computer (16/32GB RAM, Multi Fast Computer (16/32GB RAM, Multi Core processor, Fast hard drive)Core processor, Fast hard drive)

Patience !!!Patience !!!

Why Nexus 7 ?Why Nexus 7 ? Source code (kernel) & binaries availableSource code (kernel) & binaries available

Code name – Grouper (WiFi) / Nakashi Code name – Grouper (WiFi) / Nakashi (3G)(3G)

BIG community supportBIG community support

ArchitectureArchitecture

PartitionPartition Recovery – recovery.imgRecovery – recovery.img

““saviour” partitionsaviour” partition Boot – boot.imgBoot – boot.img

Main partition for botting Main partition for botting System – system.imgSystem – system.img

Android framework & apps partitionAndroid framework & apps partition Data – data.imgData – data.img

Application data storage partitionApplication data storage partition

BootingBooting

Bootloader Microcode

Boot Partition

System Partition

Recovery ?

Recovery Partition

N

Y

Building ProcessBuilding Process

1.1. Checkout AOSP Checkout AOSP 2.2. Checkout Linux KernelCheckout Linux Kernel3.3. Download Device DriversDownload Device Drivers4.4. Extract & Device DriversExtract & Device Drivers5.5. Change ConfigurationChange Configuration6.6. BuildBuild

Source CodeSource Code

http://elinux.org/Android_Source_Code_Description

Building – Code & DriversBuilding – Code & Drivers Android Source CodeAndroid Source Code

Checkout Code - source.android.com/source/downloading.htmlCheckout Code - source.android.com/source/downloading.html Branch – masterBranch – master

Nexus 7 DriversNexus 7 Drivers developers.google.com/android/nexus/drivers/#grouperdevelopers.google.com/android/nexus/drivers/#grouper Extract and Copy to <aosp>/vendorExtract and Copy to <aosp>/vendor

Building – ConfigurationBuilding – Configuration Linux Kernel & ConfigurationLinux Kernel & Configuration

Linux Code - android.googlesource.com/kernel/tegra/Linux Code - android.googlesource.com/kernel/tegra/ Linux Config Info - source.android.com/source/building-kernels.htmlLinux Config Info - source.android.com/source/building-kernels.html tegra3_android_defconfig - config for Nexus 7tegra3_android_defconfig - config for Nexus 7

Build ConfigurationBuild Configuration /build/core/tasks/kernel.mk (from Cyanogenmod)/build/core/tasks/kernel.mk (from Cyanogenmod) Linux Directory Configuration Linux Directory Configuration

/device/asus/grouper/BoardConfigCommon.mk /device/asus/grouper/BoardConfigCommon.mk /device/asus/grouper/BoardConfig.mk/device/asus/grouper/BoardConfig.mk

DemoDemo Starting build processStarting build process

/out folder/out folder

Flashing (fastboot)Flashing (fastboot)