$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
More than Nexus, Better than Nexus
Search
Realm
November 16, 2015
Technology
0
4.7k
More than Nexus, Better than Nexus
More than Nexus, Better than Nexus.
GDG Android Korea
Yongho Cha
Realm
November 16, 2015
Tweet
Share
More Decks by Realm
See All by Realm
WWDC 2017 Review
realm
0
2.1k
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
1.9k
James Majors: What the Swiftly Func?
realm
1
4.3k
Simina Pasat: Continuous everything for iOS apps
realm
0
640
Other Decks in Technology
See All in Technology
Debugging Edge AI on Zephyr and Lessons Learned
iotengineer22
0
210
mairuでつくるクレデンシャルレス開発環境 / Credential-less development environment using Mailru
mirakui
5
520
JEDAI認定プログラム JEDAI Order 2026 エントリーのご案内 / JEDAI Order 2026 Entry
databricksjapan
0
110
SREには開発組織全体で向き合う
koh_naga
0
340
年間40件以上の登壇を続けて見えた「本当の発信力」/ 20251213 Masaki Okuda
shift_evolve
PRO
1
130
AIと二人三脚で育てた、個人開発アプリグロース術
zozotech
PRO
1
730
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
220
Kubernetes Multi-tenancy: Principles and Practices for Large Scale Internal Platforms
hhiroshell
0
120
コンテキスト情報を活用し個社最適化されたAI Agentを実現する4つのポイント
kworkdev
PRO
0
1.4k
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.4k
生成AI時代におけるグローバル戦略思考
taka_aki
0
190
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
410
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
527
40k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
Code Review Best Practice
trishagee
74
19k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Six Lessons from altMBA
skipperchong
29
4.1k
KATA
mclloyd
PRO
33
15k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Why Our Code Smells
bkeepers
PRO
340
57k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Bash Introduction
62gerente
615
210k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
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