AOSP로 넥서스 보다 더 넥서스처럼 만들기 More than Nexus, Better than Nexus.
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 isAndroid 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 heammerhead
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 NexusBe copycat
Image Source
mako occam
system/app:BackupTestApp Development HTMLViewer PicoTtsBasicDreams DevelopmentSettings KeyChain PrintSpoolerBrowser DocumentsUI LatinIME ProtipsCalculator DownloadProviderUi LegacyCamera QuickSearchBoxCalendar Email LiveWallpapersPicker SdkSetupCaptivePortalLogin EmulatorSmokeTests Music SoundRecorderCertInstaller Exchange2 NetSpeed UserDictionaryProviderCustomLocale Fallback OpenWnn webviewDeskClock Gallery PacProcessor
system/app:BasicDreams DMAgent GoogleContactsSyncAdapter MapsBluetooth DocumentsUI GoogleEars MediaShortcutsBluetoothMidiService DownloadProviderUi GoogleHindiIME Music2Books Drive GoogleHome NewsstandStubCalculatorGoogle EditorsDocsStub GooglePinyinIME 중간 생략CalendarGooglePrebuilt EditorsSheetsStub GoogleTTS VideosCaptivePortalLogin EditorsSlidesStub Hangouts WalletCertInstaller FaceLock KeyChain WebViewGoogleChrome FitnessPrebuilt KoreanIME YouTubeCloudPrint2 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 \
빌드 시작
빌드 끝
More than Nexus,Better than Nexus.
Unlock hidden feature.
Improve performance
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