Slide 1

Slide 1 text

Introduction to Android System Development app dev, foss contribution / personal projects, programming languages

Slide 2

Slide 2 text

familiarizing android building android from source contributing to CyanogenMod Android users, developers

Slide 3

Slide 3 text

git Github/gitlab, ssh key

Slide 4

Slide 4 text

android dictionary

Slide 5

Slide 5 text

bootloader recovery radio ROM rooting busybox gerrit booting in a computer, rooted users

Slide 6

Slide 6 text

adb fastboot ndk repo Settingup sdk

Slide 7

Slide 7 text

$ adb devices $ adb shell $ adb logcat $ adb reboot bootloader $ fastboot boot recovery.img $ fastboot flash recovery recovery.img $ fastboot flashall -w

Slide 8

Slide 8 text

AOSP Nexus devices, Android One, Open Handset alliance

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

2009

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

alternatives Omni ROM Paranoid Android AOKP Free Xperia Project Replicant OS

Slide 17

Slide 17 text

Getting Source Code Internet connection

Slide 18

Slide 18 text

GNU/Linux or Mac system 64 bit environment for 2.3 or later Minimum 100GB free space Python 2.x, GNU Make JDK 7 (JDK 5 for froyo, 7 for Gingerbread to Kitkat) Minimum 8GB RAM

Slide 19

Slide 19 text

https://source.android.com/source/initializing.html

Slide 20

Slide 20 text

$ curl https://storage.googleapis.com/git-repo- downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo

Slide 21

Slide 21 text

$ mkdir android && cd android $ repo init -u https://github.com/CyanogenMod/android.git // for a specific branch “-b cm-12.1” $ repo sync // -j 1 // default - 4

Slide 22

Slide 22 text

Compiling Internet connection

Slide 23

Slide 23 text

$ export USE_CCACHE=1 $ source build/envsetup.sh

Slide 24

Slide 24 text

$ breakfast // lunch for aosp // aosp_arm-eng ARM emulator → // full_mako-userdebug Nexus 4 → // user production → // user_debug preferred for debugging → // eng development config with additional debugging tools →

Slide 25

Slide 25 text

$ ./device/lge/mako/extract-files.sh // extract proprietary blobs $ brunch // same as breakfast && mka bacon

Slide 26

Slide 26 text

$ adb reboot bootloader $ fastboot flashall -w // make fastboot adb

Slide 27

Slide 27 text

$ mm $ mmm

Slide 28

Slide 28 text

Contributing to CyanogenMod

Slide 29

Slide 29 text

http://review.cyanogenmod.org/ Viewing changes, creating account, review process

Slide 30

Slide 30 text

$ git config --global review.review.cyanogenmod.org.username "gerrit username" // or add following to .gitconfig [review "review.cyanogenmod.com"] username = jishnu

Slide 31

Slide 31 text

$ repo start $ cd path/to/project // make your changes

Slide 32

Slide 32 text

$ git add $ git commit

Slide 33

Slide 33 text

$ croot $ repo upload Ping core developers

Slide 34

Slide 34 text

* http://source.android.com/ * http://wiki.cyanogenmod.org/ * http://xda-university.com/ * http://docs.omnirom.org/

Slide 35

Slide 35 text

Thank You! Jishnu Mohan [email protected]