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
190
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
420
AOSP and Mods
jishnu7
0
540
Other Decks in Technology
See All in Technology
toittaにOpenTelemetryを導入した話 / Mackerel APM リリースパーティ
cohalz
1
440
Introduction to Bill One Development Engineer
sansan33
PRO
0
230
Azure Developer CLI と Azure Deployment Environment / Azure Developer CLI and Azure Deployment Environment
nnstt1
1
110
MCP Clientを活用するための設計と実装上の工夫
yudai00
0
600
Oracle Database オプティマイザ・ヒントの活用
oracle4engineer
PRO
1
130
VueUseから学ぶ実践TypeScript #TSKaigi #TSKaigi2025
bengo4com
3
5.3k
人とAIとの共創を夢見た2か月 #共創AIミートアップ / Co-Creation with Keito-chan
kondoyuko
1
640
mnt_data_とは?ChatGPTコード実行環境を深堀りしてみた
icck
0
180
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
8
65k
ソフトウェアは捨てやすく作ろう/Let's make software easy to discard
sanogemaru
10
5.5k
プロジェクトマネジメント実践論|現役エンジニアが語る!~チームでモノづくりをする時のコツとは?~
mixi_engineers
PRO
3
160
JNation 2025 - Quarkus for Spring Developers
edeandrea
PRO
0
100
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
4 Signs Your Business is Dying
shpigford
183
22k
Making Projects Easy
brettharned
116
6.2k
Designing for Performance
lara
608
69k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
Agile that works and the tools we love
rasmusluckow
329
21k
Making the Leap to Tech Lead
cromwellryan
133
9.3k
Visualization
eitanlees
146
16k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
How to Think Like a Performance Engineer
csswizardry
23
1.6k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
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 jishnu7@gmail.com