android sdk tools in debian
play

Android SDK Tools in Debian Kai-Chung Yan - PowerPoint PPT Presentation

Android SDK Tools in Debian Kai-Chung Yan <seamlikok@gmail.com> Why Android SDK in Debian? The SDK from Google is non-free [1] Why Android SDK in Debian? The SDK from Google is non-free [1] Reproducible SDK & APKs


  1. Android SDK Tools in Debian Kai-Chung Yan <seamlikok@gmail.com>

  2. Why Android SDK in Debian? ● The SDK from Google is non-free [1]

  3. Why Android SDK in Debian? ● The SDK from Google is non-free [1] ● Reproducible SDK & APKs ○ zipalign can zero out timestamps

  4. Why Android SDK in Debian? ● The SDK from Google is non-free [1] ● Reproducible SDK & APKs ○ zipalign can zero out timestamps ● Completely free F-Droid build servers like “buildd” ○ sudo aptitude install android-sdk fdroidserver

  5. Why Android SDK in Debian? ● The SDK from Google is non-free [1] ● Reproducible SDK & APKs ○ zipalign can zero out timestamps ● Completely free F-Droid build servers like “buildd” ○ sudo aptitude install android-sdk fdroidserver ● Handy for Android rooters and flashers ○ sudo aptitude install adb fastboot

  6. Why Android SDK in Debian? ● The SDK from Google is non-free [1] ● Reproducible SDK & APKs ○ zipalign can zero out timestamps ● Completely free F-Droid build servers like “buildd” ○ sudo aptitude install android-sdk fdroidserver ● Handy for Android rooters and flashers ○ sudo aptitude install adb fastboot ● Prevent XcodeGhost (2015) on Android

  7. The current goal ● A minimalist command-line build environment

  8. The current goal ● A minimalist command-line build environment ● Along with… ○ NDK (via “contrib” installer) ○ Maven repo of Support Library ○ Maven repo of Google libraries (via “contrib” installer)

  9. The current goal ● A minimalist command-line build environment ● Along with… ○ NDK (via “contrib” installer) ○ Maven repo of Support Library ○ Maven repo of Google libraries (via “contrib” installer) ● Without… ○ Emulator and System Images ○ Android Studio

  10. Difficulties we faced ● Crazy inconsistent versioning ○ SDK version 24.0.2 ○ Build-tools version 23.0.2 ○ Platform-tools version 23.0.0 ○ API Level 23 ○ Android version 6.0.1

  11. Difficulties we faced ● Circular dependencies

  12. Difficulties we faced ● Circular dependencies android-platform-system-core android-platform-system-extras adb libf2fs_utils fastboot libext4_utils liblog libXXX...

  13. Difficulties we faced ● Circular dependencies android-platform-system-core android-platform-system-extras adb libf2fs_utils fastboot libext4_utils liblog libXXX...

  14. Difficulties we faced ● Circular dependencies android-platform-system-core android-platform-system-extras adb libf2fs_utils fastboot libext4_utils liblog libXXX...

  15. Difficulties we faced ● Circular dependencies android-platform-system-core android-platform-system-extras Build-profiles solve this!

  16. Difficulties we faced ● Circular dependencies android-platform-system-core android-platform-system-extras adb libf2fs_utils liblog,libXXX... libext4_utils fastboot

  17. Difficulties we faced ● Building some components needs multiple upstream repos ○ “android.jar” needs 4 repos

  18. Difficulties we faced ● Building some components needs multiple upstream repos ○ “android.jar” needs 4 repos ● No usable build system ○ Handwritten Makefile according to “Android.mk” ○ Perhaps “Android.mk” can be interpreted

  19. Difficulties we faced ● Building some components needs multiple upstream repos ○ “android.jar” needs 4 repos ● No usable build system ○ Handwritten Makefile according to “Android.mk” ○ Perhaps “Android.mk” can be interpreted ● Some repos have C/C++ as well as Java projects

  20. Difficulties we faced ● Building some components needs multiple upstream repos ○ “android.jar” needs 4 repos ● No usable build system ○ Handwritten Makefile according to “Android.mk” ○ Perhaps “Android.mk” can be interpreted ● Some repos have C/C++ as well as Java projects ● Google forked quite a lot of things ○ Doclava, libunwind, libselinux and even OpenSSL

  21. The progress so far ● Updated Gradle to 2.x

  22. The progress so far ● Updated Gradle to 2.x ● The Gradle plugin

  23. The progress so far ● Updated Gradle to 2.x ● The Gradle plugin ● The Android Platform “android.jar” almost done

  24. The progress so far ● Platform-tools ○ adb ☑ ○ dmtracedump ☑ ○ etc1tool ☑ ○ fastboot ☑ ○ hprof-conv ☑ ○ systrace.py

  25. The progress so far ● Build-tools ○ aapt ☑ llvm-rs-cc ○ aidl ☑ mainDexClasses ○ bcc_compat split-select ☑ ○ dexdump ☑ zipalign ☑ ○ dx ☑ jack ○ renderscript <arch>-linux-android-ld

  26. The progress so far ● Updated Gradle to 2.x ● The Gradle plugin ● The Android Platform “android.jar” almost done ● Not usable for now

  27. How to find us? ● IRC: #debian-mobile #debian-android-tools ● Mailing list: android-tools-devel@lists.alioth.debian.org ● Wiki: https://wiki.debian.org/AndroidTools ● Join us!

  28. Questions?

  29. References [1]: https://developer.android.com/studio/terms.html

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend