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
More than Nexus, Better than Nexus
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Realm
November 16, 2015
Technology
4.7k
0
Share
More than Nexus, Better than Nexus
More than Nexus, Better than Nexus.
GDG Android Korea
Yongho Cha
Realm
November 16, 2015
More Decks by Realm
See All by Realm
WWDC 2017 Review
realm
0
2.2k
Xcode shortcuts
realm
0
4.7k
Self Branding with GitHub
realm
0
4.3k
Realm Mobile Platform overview and demo
realm
0
2.1k
Realm advanced topics and demo
realm
0
2k
Realm introduction Seoul meetup 10
realm
0
2.2k
Stuart Hall: How I got 2.3 Million App Downloads
realm
0
2k
James Majors: What the Swiftly Func?
realm
1
4.3k
Simina Pasat: Continuous everything for iOS apps
realm
0
660
Other Decks in Technology
See All in Technology
AIが自律的に働く時代へ Amazon Quick で実現するAIエージェント紹介
koheiyoshikawa
0
200
ServiceによるKubernetes通信制御ーClusterIPを例に
miku01
1
160
AI時代の品質はテストプロセスの作り直し #scrumniigata
kyonmm
PRO
4
1.4k
PdM・Eng・QAで進めるAI駆動開発の現在地/aidd-with-pdm-eng-qa
shota_kusaba
0
200
"うちにはまだ早い"は本当? ─ 小さく始めるPlatform Engineering入門
harukasakihara
5
490
Tachikawa.any 運営挨拶
daitasu
0
150
2026-05-14 要件定義からソース管理まで!IBM Bob基礎ハンズオン
yutanonaka
0
140
Swift Sequence の便利 API 再発見
treastrain
1
250
試作とデモンストレーション / Prototyping and Demonstrations
ks91
PRO
0
200
Agent Skillsで実現する記憶領域の運用とその後
yamadashy
2
1.7k
ESP32 IoTを動かしながらメモリ使用量を観測してみた話
zozotech
PRO
0
100
ボトムアップ限界を越える - 20チームを束る "Drive Map" / Beyond Bottom-Up: A 'Drive Map' for 20 Teams
kaonavi
0
180
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
220
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
34
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
130
Between Models and Reality
mayunak
3
280
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.1k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
180
The Spectacular Lies of Maps
axbom
PRO
1
740
Speed Design
sergeychernyshev
33
1.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
Navigating Weather and Climate Data
rabernat
0
190
Transcript
AOSP로 넥서스 보다 더 넥서스처럼 만들기 More than Nexus, Better
than Nexus.
Nexus 4 (2012) • Android 4.2 (2012) • Android 4.3
• Android 4.4 (2013) • Android 5.0 (2014) • Android 5.1 • Android 6.0 (2015) Image Source
Android M on Nexus 4!!!
그런데 빌드를 끝내고 나면....
(C) 이말년 Image Source
Agenda • What is Android Open Source Project? • Following
Nexus • More than Nexus, Better than Nexus
What is Android Open Source Project?
Hosted on AOSP
How to build Android Source code Downloading and Building
Nexus Series 제조사 제품 이름 hardware product Huawei Nexus 6P
angler? ? LG Nexus 5X bullhead bullhead Motorola Nexus 6 shamu shamu LG Nexus 5 hammerhead hammerhead ASUS Nexus 7(2013) flo, deb flo, deb LG Nexus 4 mako mako Samsung Galaxy Nexus tuna maguro,toro Samsung Nexus S herring crespo
Android Emulator Goldfish ランチュウ(蘭鋳、蘭虫、卵虫)Ranchu Image Source Image Source
Nexus Series 제조사 제품 이름 hardware product Nexus branded product
Huawei Nexus 6P angler? ? ? LG Nexus 5X bullhead bullhead bullhead Motorola Nexus 6 shamu shamu shamu LG Nexus 5 hammerhead hammerhead hammerhead ASUS Nexus 7(2013) flo, deb flo, deb razor, razorg LG Nexus 4 mako mako occam Samsung Galaxy Nexus tuna maguro,toro yakju,takju,mysid Samsung Nexus S herring crespo soju
mako occam
무엇부터 시작해 야 하나? Following Nexus Be copycat
Image Source mako occam
system/app: BackupTestApp Development HTMLViewer PicoTts BasicDreams DevelopmentSettings KeyChain PrintSpooler Browser
DocumentsUI LatinIME Protips Calculator DownloadProviderUi LegacyCamera QuickSearchBox Calendar Email LiveWallpapersPicker SdkSetup CaptivePortalLogin EmulatorSmokeTests Music SoundRecorder CertInstaller Exchange2 NetSpeed UserDictionaryProvider CustomLocale Fallback OpenWnn webview DeskClock Gallery PacProcessor system/app: BasicDreams DMAgent GoogleContactsSyncAdapter Maps Bluetooth DocumentsUI GoogleEars MediaShortcuts BluetoothMidiService DownloadProviderUi GoogleHindiIME Music2 Books Drive GoogleHome NewsstandStub CalculatorGoogle EditorsDocsStub GooglePinyinIME 중간 생략 CalendarGooglePrebuilt EditorsSheetsStub GoogleTTS Videos CaptivePortalLogin EditorsSlidesStub Hangouts Wallet CertInstaller FaceLock KeyChain WebViewGoogle Chrome FitnessPrebuilt KoreanIME YouTube CloudPrint2 GoogleCamera LatinImeGoogle talkback
앱 대응 테이블 Emulator (AOSP) Nexus 5 Browser Chrome Calculator
CalculatorGoogle Dialer GoogleDialer LegacyCamera GoogleCamera Music Music2 Launcher3 GoogleHome webview WebViewGoogle
Android의 숨겨진 심장
GAPPS Collection of Google Mobile Services and Apps Search Gapps
on Google
패키지만 설치하면 끝? Image Source
각종 상수 및 기본 설정값 • /root/default.prop • /system/build.prop •
/system/framework/framework-res.apk • /system/priv-app/SettingsProvider.apk • /system/priv-app/Settings.apk • /system/priv-app/SystemUI.apk • /system/priv-app/TeleService.apk
aapt • Android Asset Packaging Tool • 다음 명령어로 .apk
파일에 포함된 리소스 분석 가능 $ aapt d --values resources framework-res.apk spec resource 0x01040029 android:string/default_sms_application: flags=0x00000000 resource 0x01040029 android:string/default_sms_application: t=0x03 d=0x00001e00 (s=0x0008 r=0x00) (string8) "com.android.mms"
수정 전략 • 안드로이드 기본 빌드 스크립트를 이용해 factory image
생성 • 유지 보수가 가능 ◦ bug fix 또는 major 업그레이드가 되었을 때 따라가기 편해야 한다. • 결론 ◦ 원래 코드는 되도록이면 건드리지 말자 ◦ 수정하고 싶으면 원래 코드 바깥에서 건드리자
되는데요... Image Source
상수 교체 (system property) PRODUCT_PROPERTY_OVERRIDES := \ ro.com.android.dataroaming=false \
Resource 교체 기본 리소스: frameworks/base/core/res/res/values/config.xml /drawable-mdpi/ic-search.png 특정 기기용 리소스: device/lge/occam/overlay/frameworks/base/core/res/res/
Resource 교체 PRODUCT_PACKAGE_OVERLAYS := \ device/lge/occam/overlay out-occam-user/host/linux-x86/bin/aapt package blahblah -S
device/lge/occam/overlay/frameworks/base/core/res/res -S device/lge/mako/overlay/frameworks/base/core/res/res -S frameworks/base/core/res/res
앱 교체 include $(CLEAR_VARS) LOCAL_MODULE := Chrome LOCAL_SRC_FILES := com.android.chrome.apk
LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_TAGS := optional LOCAL_OVERRIDES_PACKAGES := Browser LOCAL_CERTIFICATE := PRESIGNED LOCAL_MODULE_OWNER := google include $(BUILD_PREBUILT)
앱 교체 PRODUCT_PACKAGES := \ Chrome \
빌드 시작
빌드 끝
None
More than Nexus, Better than Nexus.
Unlock hidden feature.
Improve performance
Add new feature
None
None
Conclusion • You can build your own Real Nexus image
without modification source codes on AOSP. • You can unlock or add several features, and improve your experiences
References • http://s.android.com/ • How to build Android Marshmallow on
Nexus 4 • https://github.com/ganadist/device_lge_mako • https://github.com/ganadist/device_lge_occam • https://github.com/ganadist/gms_addon/tree/android-6.0.0_r1