1. 06 Aug, 2016 1 commit
  2. 30 Jun, 2016 1 commit
    • Dan Willemsen's avatar
      Extract prebuilt APKs from zip files · b778d02b
      Dan Willemsen authored
      Since APKs are zip files, embedded APKs in other APKs can be extracted,
      installed, then optimized.
      
      DPI-based filenames can be used if LOCAL_DPI_VARIANTS is set.
      
      Bug: 29179775
      Change-Id: Iab6388111522114ce9dc07057d59e3a89394cd6f
      b778d02b
  3. 22 Jun, 2016 1 commit
    • Dan Willemsen's avatar
      Extract prebuilt APKs from zip files · 048f56df
      Dan Willemsen authored
      Since APKs are zip files, embedded APKs in other APKs can be extracted,
      installed, then optimized.
      
      DPI-based filenames can be used if LOCAL_DPI_VARIANTS is set.
      
      Bug: 29179775
      Change-Id: Iab6388111522114ce9dc07057d59e3a89394cd6f
      048f56df
  4. 11 Apr, 2016 1 commit
  5. 16 Mar, 2016 1 commit
    • Yohann Roussel's avatar
      Inform Jack of the min sdk · 740ec8fe
      Yohann Roussel authored
      Set Jack min sdk according to LOCAL_SDK_VERSION. Gives Jack current
      version when LOCAL_SDK_VERSION is not available.
      
      Bug: 27371864
      
      (cherry picked from commit c6383d6e)
      
      Change-Id: Ieba0219494f29d2737d2ca234317c3af7e5e72c8
      740ec8fe
  6. 15 Mar, 2016 1 commit
    • Ying Wang's avatar
      Rebuild odex files in PDK fusion build. · 3a61eeb6
      Ying Wang authored
      To rebuild odex files of Java libraries and apps,
      we store the jars/apks without stripping the classes.dex inside the
      platform.zip. We also save the build variables that may affect how we
      rebuild an odex in pdk_dexpreopt_config.mk in the platform.zip.
      We store the files and configuration only for libraries/apps that get
      installed to the system.img (or vendor.img).
      
      In PDK fusion build, we auto-generate prebuilt module definitions for
      the javalib.jar and package.dex.apk carried in the platform.zip, using
      configuration stored in pdk_dexpreopt_config.mk.
      With the prebult modules, we override the implicit rule that directly
      copies the odex from the platform.zip.
      To rebuild odex of javalib.jar, we added support for prebuilt shared Java
      library to prebiult_internal.mk. An installable prebuilt Java library is
      treated as shared Java library, i.e. with classes.dex in the jar instead
      of a set of .class files.
      For apks in the platform.zip, we install the stripped version from
      platform files inside platform.zip, instead of the package.dex.apk,
      using a new variable LOCAL_REPLACE_PREBUILT_APK_INSTALLED. We can't
      strip package.dex.apk because we can't re-sign the stripped apk at this
      point.
      
      We generate prebuilt module only if it's not already defined in the
      source tree.
      
      Bug: 27543283
      Change-Id: I9e146f8b713d6f57c397fd28d88c9ab700757ca1
      3a61eeb6
  7. 02 Mar, 2016 1 commit
  8. 27 Feb, 2016 1 commit
  9. 26 Feb, 2016 1 commit
    • Ying Wang's avatar
      AAPT2: library resource compilation · e295c3df
      Ying Wang authored
      - Switch to static library's package-res.apk as the link artifact.
      - For prebuilt AAR file, build package-res.apk using aapt2's "--dir"
        option.
      - New LOCAL variables:
        LOCAL_USE_AAPT2: a module can opt-in with "LOCAL_USE_AAPT2 := true".
        LOCAL_STATIC_ANDROID_LIBRARIES: static Java libraries with compiled
                         resources.
        LOCAL_SHARED_ANDROID_LIBRARIES: shared Java libraries with compiled
                         resources.
      
      Bug: 25958912
      Change-Id: I4be2d1e8137555986338c2583cb39b0c97391751
      e295c3df
  10. 23 Feb, 2016 1 commit
  11. 11 Feb, 2016 1 commit
    • Alex Klyubin's avatar
      Sign APKs using SHA-256 instead of SHA-1 when possible. · b05b62df
      Alex Klyubin authored
      This changes the build system to provide the signapk tool with the
      minSdkVersion of the APK being signed. signapk in turn will then use
      SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
      (see c2c49ed0).
      
      To avoid increasing incremental OTA update package sizes for already
      released platforms, release build scripts disable the above logic when
      signing target files ZIPs for pre-N platforms.
      
      Bug: 25643280
      
      (cherry picked from commit 2cfd1d10)
      
      Change-Id: I38450d07ddc05c705de40313f843beada8db7d98
      b05b62df
  12. 10 Feb, 2016 1 commit
  13. 02 Feb, 2016 1 commit
    • Dan Willemsen's avatar
      Fix typo · 5709bd55
      Dan Willemsen authored
      This was producing a number of unused source warnings for prebuilt files
      using LOCAL_SRC_FILES_<arch>.
      
      Change-Id: I48d1face7baf642f3ef17f957448ccb73788765f
      5709bd55
  14. 29 Jan, 2016 2 commits
  15. 28 Jan, 2016 1 commit
    • Dan Willemsen's avatar
      Order objects based on LOCAL_SRC_FILES and LOCAL_GENERATED_SOURCES · 3bb168f1
      Dan Willemsen authored
      We have been reordering objects to the linker based on how they were
      generated. In soong, they're ordered based on the order listed in the
      src_files.
      
      Keep track of which source files created which object files so that we
      can create the ordered list. Optionally change the order, based on
      BINARY_OBJECTS_ORDER. That way we can compare make and soong builds.
      
      Since we're keeping track of the used source files, warn when an entry
      in LOCAL_SRC_FILES is not used. (whether it is an unused file like a
      header, or a typo)
      
      LOCAL_GENERATED_SOURCES is not verified, since it is valid to add
      headers and other files in that list (to set up dependencies).
      
      Change-Id: I1dfbbb3aa570c11c1db3b7133e46ed0b8c3b8989
      3bb168f1
  16. 27 Jan, 2016 1 commit
  17. 26 Jan, 2016 2 commits
    • Alex Klyubin's avatar
      Sign APKs using SHA-256 instead of SHA-1 when possible. · 74df828c
      Alex Klyubin authored
      This changes the build system to provide the signapk tool with the
      minSdkVersion of the APK being signed. signapk in turn will then use
      SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
      (see c2c49ed0).
      
      To avoid increasing incremental OTA update package sizes for already
      released platforms, release build scripts disable the above logic when
      signing target files ZIPs for pre-N platforms.
      
      Bug: 25643280
      Change-Id: I058393e0971d0d6559dbd69ea902754c6c7cab14
      (cherry picked from commit de5bc047)
      74df828c
    • Ying Wang's avatar
      Support to build with AAPT2 · dd71c85a
      Ying Wang authored
      To build with AAPT2, set "USE_AAPT2=true".
      TODO: Support split apks and generated resources from other than renderscript.
      
      Bug: 25958912
      Change-Id: I19b1a038824ce5b2a3d3ffadbce3173c845193fc
      dd71c85a
  18. 25 Jan, 2016 1 commit
  19. 21 Jan, 2016 1 commit
    • Alex Klyubin's avatar
      Sign APKs using SHA-256 instead of SHA-1 when possible. · de5bc047
      Alex Klyubin authored
      This changes the build system to provide the signapk tool with the
      minSdkVersion of the APK being signed. signapk in turn will then use
      SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
      (see c2c49ed0).
      
      To avoid increasing incremental OTA update package sizes for already
      released platforms, release build scripts disable the above logic when
      signing target files ZIPs for pre-N platforms.
      
      Bug: 25643280
      Change-Id: I048393e0971d0d6559dbd69ea902754c6c7cab14
      de5bc047
  20. 14 Dec, 2015 1 commit
    • Shinichiro Hamaji's avatar
      Reduce unnecessary rebuilds of .dex files with restat=1 · f972a4a9
      Shinichiro Hamaji authored
      The .dex.toc files are created by dexdump, which outputs all
      information in a .dex file which may affect compilation of
      other modules.
      
      For prebuilt java libraries and static java libraries, we'll
      output empty .toc files and don't set restat=1. .dex.toc files
      are necessary even for static java libraries because they can
      be referenced by LOCAL_JAVA_LIBRARIES (instead of
      LOCAL_STATIC_JAVA_LIBRARIES).
      
      We don't use this optimization for apps build. We cannot build
      dexdump for apps build due to lack of libc++.
      
      Performance:
      
      $ m && touch \
        frameworks/base/core/java/com/google/android/util/Procedure.java \
        && time m
      Before: 3m48s
      After: 1m46s
      
      Bug: 24597504
      Change-Id: Id1665923b414dee705dc60af4c021390a19ea26f
      f972a4a9
  21. 09 Dec, 2015 1 commit
    • Yohann Roussel's avatar
      Always start jack server before first call to jack · 9214a26c
      Yohann Roussel authored
      Also install and update the server if necessary.
      
      The target start-jack-server produces no file so it's always built.
      Since the dependency is "order only", it doesn't cause force rebuilt of
      jack targets after start-jack-server execution.
      
      Bug: 25443108
      
      Change-Id: I1608d87d186694d47307e00337b1905f0b8079c4
      9214a26c
  22. 04 Dec, 2015 1 commit
    • Alex Klyubin's avatar
      Do not run zipalign when building APK (except prebuilts). · 5b826ac6
      Alex Klyubin authored
      This changes the build system to no longer run zipalign except for
      those prebuilts which do not need to re-signed.
      
      Running zipalign is no longer needed because signapk takes care of
      alignment. For those prebuilts which do not need to be re-signed
      signapk is not invoked and thus zipalign is still needed because the
      prebuilts may not have been aligned properly. This exemption will go
      away once prebuilts are properly aligned.
      
      Bug: 25794543
      Change-Id: I31f10af80b9baa3c9481cb36f41e5e5046e852f9
      5b826ac6
  23. 30 Nov, 2015 1 commit
  24. 27 Nov, 2015 1 commit
  25. 19 Nov, 2015 1 commit
  26. 17 Nov, 2015 1 commit
    • Colin Cross's avatar
      Support LOCAL_ACP_UNAVAILABLE for prebuilts · d6f38929
      Colin Cross authored
      Files built by soong will be installed using BUILD_PREBUILT, and may
      include prerequesites of the acp binary.  Allow specifying
      LOCAL_ACP_UNAVAILABLE:=true on prebuilts.
      
      Change-Id: Iccfe61092f90b61f397a45f5334b0c1c0f439b32
      d6f38929
  27. 12 Nov, 2015 1 commit
    • Dan Albert's avatar
      Allow globally disabling the relocation packer. · 52831d11
      Dan Albert authored
      The relocation packer is part of prebuilts/misc, and pulling that
      repository into the manifest requires pulling in a lot of other things
      not needed by the simpler builds (like the clang toolchain manifest).
      
      Bug: http://b/17441393
      Change-Id: If4a94804fc1a3f81215b840247f8e332d0b510c1
      52831d11
  28. 21 Oct, 2015 1 commit
    • Yohann Roussel's avatar
      Clean call-jack and its callers · b2c55584
      Yohann Roussel authored
      This is possible now that we have the new Jack server.
      Also fix dependency from dex/jack target to jack script
      instead of jack.jar.
      
      (cherry picked from commit 5e50b342)
      
      Change-Id: I8e7aa5087ba8d73cc93140ddfca8f4ab2f505175
      b2c55584
  29. 28 Sep, 2015 1 commit
    • Colin Cross's avatar
      Don't add dependencies on Makefiles when using ninja · a4447e8c
      Colin Cross authored
      Ninja has an implicit dependency on the command being run, and kati will
      regenerate the ninja manifest if any read makefile changes, so there is no
      need to have dependencies on makefiles.
      This won't catch all the cases where LOCAL_ADDITIONAL_DEPENDENCIES contains
      a .mk file, because a few users of LOCAL_ADDITIONAL_DEPENDENCIES don't
      include base_rules.mk, but it will fix the most common ones.
      
      Bug: 23566977
      Change-Id: I66de882421376303ab7233c8ce7274548f6b2199
      a4447e8c
  30. 22 Jul, 2015 1 commit
    • Yohann Roussel's avatar
      Clean call-jack and its callers · 23f78643
      Yohann Roussel authored
      This is possible now that we have the new Jack server.
      Also fix dependency from dex/jack target to jack script
      instead of jack.jar.
      
      (cherry picked from commit 5e50b342)
      
      Change-Id: I8e7aa5087ba8d73cc93140ddfca8f4ab2f505175
      23f78643
  31. 21 Jul, 2015 1 commit
  32. 20 Jul, 2015 1 commit
    • Yohann Roussel's avatar
      Clean call-jack and its callers · 4c1fc77c
      Yohann Roussel authored
      This is possible now that we have the new Jack server.
      Also fix dependency from dex/jack target to jack script
      instead of jack.jar.
      
      (cherry picked from commit 5e50b342)
      
      Change-Id: I5dce864624e97c27441a5ee7f8c3cd582613390e
      4c1fc77c
  33. 04 Jul, 2015 1 commit
  34. 03 Jul, 2015 1 commit
    • Yohann Roussel's avatar
      Clean call-jack and its callers · 5e50b342
      Yohann Roussel authored
      This is possible now that we have the new Jack server.
      Also fix dependency from dex/jack target to jack script
      instead of jack.jar.
      
      Change-Id: I28b5f7176747853ef707b8d4055017bf60296641
      5e50b342
  35. 02 Jun, 2015 2 commits
    • Ying Wang's avatar
      Uncompress .so files before signing the apk. · 226eb923
      Ying Wang authored
      - In uncompress-shared-libs we may strip .so files not for the current
        TARGET_ARCH. So we need to strip first and then sign the apk.
      - For PRESIGNED apks, make sure we don't strip the .so files even if
         they are "fat".
      
      Bug: 21571418
      Bug: 8076853
      Change-Id: Ifd1193dda0c2cd52ac148064ce5a32bcdd03f75c
      226eb923
    • Ying Wang's avatar
      Don't extract jni from prebuilt apks. · 1fb0152f
      Ying Wang authored
      - We don't need LOCAL_PAGE_ALIGN_JNI_SHARED_LIBRARIES now, for we always
        page-align jni shared libraries and store them umcompressed.
      - For prebuilt apks, we don't extract jni any more; Instead we always run
        uncompress-shared-libs on them.
      - For apks built from source, we still install the jni separately, because
        that way multiple apks can share the same jni and it saves space.
      
      With this change, for most prebuilt apks, we don't need to specify
      LOCAL_PREBUILT_JNI_LIBS ("@lib/<abi>/foo.so") any more, for the build
      system automatically replaces the embedded jni with uncompressed files;
      But if a prebuilt is a fat apk (i.e. containing jni not needed by the
      current product architecture), you still need LOCAL_PREBUILT_JNI_LIBS to
      specify what jni to keep. Otherwise all embedded jni will be replaced with
      uncompressed files, that wastes space.
      
      Bug: 8076853
      Change-Id: Ic3666dc72bf17cd293787414dd185470b365f967
      1fb0152f
  36. 19 May, 2015 1 commit
  37. 04 May, 2015 1 commit