Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introduction to Android System Development
Search
Jishnu Mohan
January 27, 2016
Technology
0
220
Introduction to Android System Development
Basics for Android system development. And how to compile and contribute to CyanogenMod.
Jishnu Mohan
January 27, 2016
Tweet
Share
More Decks by Jishnu Mohan
See All by Jishnu Mohan
Droidcon India 2015 - Android & Indic Languages
jishnu7
3
440
AOSP and Mods
jishnu7
0
570
Other Decks in Technology
See All in Technology
非情報系研究者へ送る Transformer入門
rishiyama
8
6.3k
マネージャー版 "提案のレベル" を上げる
konifar
21
14k
タスク管理も1on1も、もう「管理」じゃない ― KiroとBedrock AgentCoreで変わった"判断の仕事"
yusukeshimizu
5
2.3k
ナレッジワークのご紹介(第88回情報処理学会 )
kworkdev
PRO
0
150
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
JAWS Days 2026 楽しく学ぼう! 認証認可 入門/20260307-jaws-days-novice-lane-auth
opelab
10
1.7k
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
5
1.1k
JAWS DAYS 2026 ExaWizards_20260307
exawizards
0
380
JAWS DAYS 2026 楽しく学ぼう!ストレージ 入門
yoshiki0705
2
120
PMBOK第8版は第7版から何が変わったのか(PMBOK第8版概要解説) / 20260304 Takeshi Watarai
shift_evolve
PRO
0
100
SaaSからAIへの過渡期の中で現在、組織内で起こっている変化 / SaaS to AI Paradigm Shift
aeonpeople
0
120
聲の形にみるアクセシビリティ
tomokusaba
0
150
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
75
11k
[SF Ruby Conf 2025] Rails X
palkan
2
820
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Google's AI Overviews - The New Search
badams
0
930
Side Projects
sachag
455
43k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
280
Writing Fast Ruby
sferik
630
63k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.4k
Transcript
Introduction to Android System Development app dev, foss contribution /
personal projects, programming languages
familiarizing android building android from source contributing to CyanogenMod Android
users, developers
git Github/gitlab, ssh key
android dictionary
bootloader recovery radio ROM rooting busybox gerrit booting in a
computer, rooted users
adb fastboot ndk repo Settingup sdk
$ adb devices $ adb shell $ adb logcat $
adb reboot bootloader $ fastboot boot recovery.img $ fastboot flash recovery recovery.img $ fastboot flashall -w
AOSP Nexus devices, Android One, Open Handset alliance
None
None
None
None
None
2009
None
alternatives Omni ROM Paranoid Android AOKP Free Xperia Project Replicant
OS
Getting Source Code Internet connection
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
https://source.android.com/source/initializing.html
$ curl https://storage.googleapis.com/git-repo- downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo
$ 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
Compiling Internet connection
$ export USE_CCACHE=1 $ source build/envsetup.sh
$ breakfast <device> // 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 →
$ ./device/lge/mako/extract-files.sh // extract proprietary blobs $ brunch <device> //
same as breakfast <device> && mka bacon
$ adb reboot bootloader $ fastboot flashall -w // make
fastboot adb
$ mm $ mmm <path>
Contributing to CyanogenMod
http://review.cyanogenmod.org/ Viewing changes, creating account, review process
$ git config --global review.review.cyanogenmod.org.username "gerrit username" // or add
following to .gitconfig [review "review.cyanogenmod.com"] username = jishnu
$ repo start <branch name> <project path> $ cd path/to/project
// make your changes
$ git add <file> $ git commit
$ croot $ repo upload <project path> Ping core developers
* http://source.android.com/ * http://wiki.cyanogenmod.org/ * http://xda-university.com/ * http://docs.omnirom.org/
Thank You! Jishnu Mohan
[email protected]