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
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
2k
Realm advanced topics and demo
realm
0
2k
Realm introduction Seoul meetup 10
realm
0
2.1k
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
620
Other Decks in Technology
See All in Technology
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
4
3k
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
180
Core Audio tapを使ったリアルタイム音声処理のお話
yuta0306
0
140
Tech-Verse 2025 Global CTO Session
lycorptech_jp
PRO
0
1k
ネットワーク保護はどう変わるのか?re:Inforce 2025最新アップデート解説
tokushun
0
140
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
変化する開発、進化する体系時代に適応するソフトウェアエンジニアの知識と考え方(JaSST'25 Kansai)
mizunori
1
260
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
0
210
標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless SaaS Account Management with Standard Technologies & Custom Systems
yuyatakeyama
3
1.3k
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
490
SalesforceArchitectGroupOsaka#20_CNX'25_Report
atomica7sei
0
250
5min GuardDuty Extended Threat Detection EKS
takakuni
0
180
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1031
460k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Unsuck your backbone
ammeep
671
58k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Building Applications with DynamoDB
mza
95
6.5k
Speed Design
sergeychernyshev
32
1k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Statistics for Hackers
jakevdp
799
220k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
RailsConf 2023
tenderlove
30
1.1k
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