14
Building AOSP for Nexus 7 Building AOSP for Nexus 7 Nanik Tolaram Nanik Tolaram @nanikjava @nanikjava

Learning AOSP - Building AOSP for Nexus 7

Embed Size (px)

Citation preview

Page 1: Learning AOSP - Building AOSP for Nexus 7

Building AOSP for Nexus 7Building AOSP for Nexus 7

Nanik TolaramNanik Tolaram@nanikjava@nanikjava

Page 2: Learning AOSP - Building AOSP for Nexus 7

Thank You !Thank You !

Page 3: Learning AOSP - Building AOSP for Nexus 7

WARNING !WARNING ! Voiding warrantyVoiding warranty

Bricked deviceBricked device

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

Page 4: Learning AOSP - Building AOSP for Nexus 7

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

Page 5: Learning AOSP - Building AOSP for Nexus 7

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 !!!

Page 6: Learning AOSP - Building AOSP for Nexus 7

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

Page 7: Learning AOSP - Building AOSP for Nexus 7

ArchitectureArchitecture

Page 8: Learning AOSP - Building AOSP for Nexus 7

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

Page 9: Learning AOSP - Building AOSP for Nexus 7

BootingBooting

Bootloader Microcode

Boot Partition

System Partition

Recovery ?

Recovery Partition

N

Y

Page 10: Learning AOSP - Building AOSP for Nexus 7

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

Page 11: Learning AOSP - Building AOSP for Nexus 7

Source CodeSource Code

http://elinux.org/Android_Source_Code_Description

Page 12: Learning AOSP - Building AOSP for Nexus 7

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

Page 13: Learning AOSP - Building AOSP for Nexus 7

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

Page 14: Learning AOSP - Building AOSP for Nexus 7

DemoDemo Starting build processStarting build process

/out folder/out folder

Flashing (fastboot)Flashing (fastboot)