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
200
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
430
AOSP and Mods
jishnu7
0
550
Other Decks in Technology
See All in Technology
Green Tea Garbage Collector の今
zchee
PRO
2
390
PLaMoの事後学習を支える技術 / PFN LLMセミナー
pfn
PRO
9
3.8k
OpenAI gpt-oss ファインチューニング入門
kmotohas
2
970
Flaky Testへの現実解をGoのプロポーザルから考える | Go Conference 2025
upamune
1
420
自作LLM Native GORM Pluginで実現する AI Agentバックテスト基盤構築
po3rin
2
250
AI駆動開発を推進するためにサービス開発チームで 取り組んでいること
noayaoshiro
0
180
OCI Network Firewall 概要
oracle4engineer
PRO
1
7.8k
SREとソフトウェア開発者の合同チームはどのようにS3のコストを削減したか?
muziyoshiz
1
100
Escaping_the_Kraken_-_October_2025.pdf
mdalmijn
0
130
組織観点からIAM Identity CenterとIAMの設計を考える
nrinetcom
PRO
1
180
10年の共創が示す、これからの開発者と企業の関係 ~ Crossroad
soracom
PRO
1
190
pprof vs runtime/trace (FlightRecorder)
task4233
0
170
Featured
See All Featured
KATA
mclloyd
32
15k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Typedesign – Prime Four
hannesfritz
42
2.8k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
Documentation Writing (for coders)
carmenintech
75
5k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
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]