LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version
Upcoming SlideShare
Loading in...5
×
 

LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version

on

  • 317 views

Resource: LCA14

Resource: LCA14
Name: LCA14-403: Importance of migrating external projects used in Android to it's latest version
Date: 06-03-2014
Speaker: Sireesh Tripurari

Statistics

Views

Total Views
317
Views on SlideShare
317
Embed Views
0

Actions

Likes
0
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version LCA14: LCA14-403: Importance of migrating external projects used in Android to it's latest version Presentation Transcript

  • Thu 6 March, 10:05am, Sireesh Tripurari LCA14-403: Importance of migrating external projects used in Android to it’s latest version
  • Android’s upstream (LCU’13) • Android is, in many ways, just another Linux distribution • As such, it includes code from many FOSS projects... • … and quite frequently, isn't in sync with what upstreams are doing.
  • Current situation (LCU’13) • Android imports an external FOSS project into its git repository (sometimes a released version, sometimes a git or svn snapshot) • Patches to make it work with Android (and sometimes to add, remove or modify some functionality) are added inside Android's git repository • There is little or no effort made to upstream those changes, some changes are a little bogus (checking in a config.h generated by autoconf to avoid the need to call configure, ...) • A newer upstream release may or may not be merged into Android – if at all, merges typically happen months after the upstream release • Android has no concept of OS component packages, and cannot update an individual component (e.g. openssl) – often leading to important upstream updates being ignored by device makers View slide
  • Ideal Situation (LCU’13) • Patches needed for Android go upstream ASAP (#ifdef-ed if necessary) • Upstream releases can be merged into Android quickly and painlessly because all relevant patches are already there • Upstream releases actually are merged in a timely manner • Android adopts some sort of upstream packaging so e.g. an OpenSSL security update can be pushed even to people who are stuck with an ancient Android version View slide
  • • They introduce improvements and add new features that continually increase efficiency. • Latest version ensures they have fixes for prior bugs. • Obsoleted versions may inadvertently result in 'forgotten' and eventually restraining with a version that is no longer supported. • Unfortunately, accommodating a recent release may require more effort, and delay. Importance of migration
  • • libpng o source accepted upstream : Version 1.5.7beta01 [November 4, 2011] o libpng performance improvement : As much as 30% o https://cards.linaro.org/browse/JUICE-238 • libjpeg-turbo o https://cards.linaro.org/browse/CARD-1090 o https://cards.linaro.org/browse/CARD-404 • Zlib o https://cards.linaro.org/browse/CARD-1000 • Sqlite o https://cards.linaro.org/browse/CARD-998 • Skia o https://cards.linaro.org/browse/CARD-1091 Linaro – contribution towards FOSS
  • • Mesa +NEON o https://cards.linaro.org/browse/CARD-291 • Libav o https://cards.linaro.org/browse/CARD-91 • Guava o https://cards.linaro.org/browse/CARD-999 • OpenSSL o https://cards.linaro.org/browse/CARD-519 • Webp o https://cards.linaro.org/browse/CARD-84 Linaro – contribution towards FOSS
  • • Toolchain o Android 4.4 r2 uses modified GCC 4.7 o Linaro provides toolchain GCC 4.8 • Android Kernel o Android 4.4 uses Kernel 3.4.0 o Linaro provides up-to date kernel 3.14+ • FOSS o Optimized libraries o ARM NEON support Linaro - Android
  • • https://cards.linaro.org/browse/CARD-996 Linaro - Analysis Linaro 11 Work is already in progress under Linaro OK 5 Can be updated without any issues No 61 Category not identified / Fonts / Host / Not maintained / Not Source available in google master branch Updated 11 Source updated by google Testing 30 Code which are used for testing (internally by google or thru CTS) / Scope of contribution TBD 57 Scope of contribution Grand Total 175
  • Linaro – working on … clang llvm compiler-rt mesa3d e2fsprogs qemu Fdlibm sqlite Jpeg webp libpng webrtc Linaro is working on these components and will influence Google (Android) to incorporate them.
  • Linaro – up-streaming for migration flac libxml2 libogg libxslt libvorbis tinyxml gcc-demangle tinyxml2 sfntly At Linaro we analyzed these components could be migrated (includes minor fixes) without breaking current system. Respective issues’ will be raised at AOSP for migration
  • We invite contributions… (AOSP master) ant-glob dnsmasq jsr305 nist-sip v8 antlr ganymed-ssh2 libcap-ng oauth valgrind apache-harmony grub libpcap okhttp webkit apache-http harfbuzz libphonenumber opencv wpa_supplicant apache-xml harfbuzz_ng libselinux openssh wpa_supplicant arduino icu4c libvpx ppp wpa_supplicant bluetooth iproute2 libyuv protobuf xmp_toolkit chromium ipsec-tools marisa-trie regex-re2 chromium-trace iptables mdnsresponder smali dbus jhead mp4parser srtp dhcpcd jmonkeyengine mksh tcpdump Above lists the components where contribution for migration can be taken up by members. Some of these items would be shall be picked by Linaro.
  • Invite contributor … (AOSP master) Fonts Host Updated No new releases Other cibu-fonts astl bison aac android-clat liblzf dropbear quake lohit-fonts busybox eclipse- basebuilder bouncycastle android_inp ut_bridge libppp elfutils replicaislan d naver-fonts eyes-free eclipse- windowbuilder checkpolicy bsdiff libsepol hyphenation safe-iop noto-fonts ffmpeg fat32lib eigen bzip2 lzma javasqlite skia sil-fonts htop genext2fs giflib dexmaker netcat libffi stlport jack yaffs2 iputils doclava open-vcdiff libmtp zxing ncurses lrzsz expat speex libnfc-nci sonivox openfst fsck_msdos tagsoup libnfc-nxp srec openssl jline tinycompre ss libnl svox pixman jmdns zlib libusb x264 tinyalsa libgsm libusb- compat tremolo markdown freetype Above lists the components where contribution for migration can be taken up by members by providing better solution (replacing old/abandoned projects). Linaro shall not focus on these, instead influence Google to adopt new after testing.
  • Testing components Unit testing Benchmark android-mock hamcrest embunit blktrace stressapptest easymock proguard gtest iozone stringbench littlemock javassist junit memtester xmlwriter mockwebserver jdiff netperf linux-tools-perf roboelectric jsilver strace nist-pkits objenesis lava-blackbox emma google-diff- match-patch Testing is important part of product, these areas can be enhanced by reducing multiple components providing additional and easy to write testing. Linaro shall not focus on these, instead influence Google to adopt new after validating.
  • • After analyzing all the external components available in AOSP, we find that many components are out dated. • Linaro studied that latest source updates contain critical bug fixes and/or enhanced performance this effects overall product durability and customer satisfaction • Linaro shall push tested and validated components for migration • Linaro expects other members to provide support and contribute by o Suggesting better solution (where applicable) o Upstream Google fixes to FOSS (reverse patches) o Provide components (patches) for smooth migration (timely) • Linaro would influence Google to migrate based on regression and validation. Conclusion
  • More about Linaro Connect: http://connect.linaro.org More about Linaro: http://www.linaro.org/about/ More about Linaro engineering: http://www.linaro.org/engineering/ Linaro members: www.linaro.org/members