More than Nexus, Better than Nexus

1fa9cb8c7997c8c4d3d251fb5e41f749?s=47 Realm
November 16, 2015

More than Nexus, Better than Nexus

More than Nexus, Better than Nexus.
GDG Android Korea
Yongho Cha

1fa9cb8c7997c8c4d3d251fb5e41f749?s=128

Realm

November 16, 2015
Tweet

Transcript

  1. 2.

    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
  2. 6.

    Agenda • What is Android Open Source Project? • Following

    Nexus • More than Nexus, Better than Nexus
  3. 10.

    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
  4. 12.

    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
  5. 16.

    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
  6. 17.

    앱 대응 테이블 Emulator (AOSP) Nexus 5 Browser Chrome Calculator

    CalculatorGoogle Dialer GoogleDialer LegacyCamera GoogleCamera Music Music2 Launcher3 GoogleHome webview WebViewGoogle
  7. 21.

    각종 상수 및 기본 설정값 • /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
  8. 22.

    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"
  9. 23.

    수정 전략 • 안드로이드 기본 빌드 스크립트를 이용해 factory image

    생성 • 유지 보수가 가능 ◦ bug fix 또는 major 업그레이드가 되었을 때 따라가기 편해야 한다. • 결론 ◦ 원래 코드는 되도록이면 건드리지 말자 ◦ 수정하고 싶으면 원래 코드 바깥에서 건드리자
  10. 27.

    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
  11. 28.

    앱 교체 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)
  12. 32.
  13. 37.
  14. 38.
  15. 39.

    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
  16. 40.

    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