core: allow specifying building ramdisk(s) with lzma

* Add a flag that specifies which ramdisk(s) to compress with lzma
* If not specified, fall back to gzip
* Example: LZMA_RAMDISK_TARGETS := boot,recovery

Change-Id: I9cce4da90343fb6dfb7039863649e37d78262726

Force bsdiff for recovery_from_boot.p if not using GZIP

imgdiff expects a ramdisk to use GZIP, which is causing a chunk
size issue if recovery is using LZMA

Change-Id: I3194b4faed25a298fe23b4e24b6dea2885bafda8

commit 30da0836578d0c9814e23df7c4c0fcd7c649f555
Author: Gabriele M <moto.falcon.git@gmail.com>
Date:   Thu Feb 9 13:59:27 2017 +0100

    releasetools: Generate recovery-from-boot.p with bsdiff if necessary

    If TARGET_NOT_USE_GZIP_RECOVERY_RAMDISK is true, we want to use bsdiff
    to create recovery-from-boot.p, otherwise there are high chances that
    imgdiff will fail. Currently this is done only when running make, but
    not when we re-create the patch from releasetools, so do it.

    Also, since recovery-resource.dat is used as bonus data for imgdiff,
    don't build it if we are going to use bsdiff.

    Change-Id: I93a662a358ee79f56b8acd4329eedd166a176c66
    (cherry picked from commit 543d7376be045ccdfb20cc14b3757500a026e326)

Change-Id: I9cce4da90343fb6dfb7039863649e37d78262726
2 files changed
tree: 98844ab52814245869766aaba685327db22467e5
  1. core/
  2. target/
  3. tests/
  4. tools/
  5. .gitignore
  6. .gitreview
  7. Android.mk
  8. buildspec.mk.default
  9. Changes.md
  10. CleanSpec.mk
  11. envsetup.sh
  12. help.sh
  13. navbar.md
  14. OWNERS
  15. README.md
  16. tapasHelp.sh
  17. Usage.txt
README.md

Android Make Build System

This is the Makefile-based portion of the Android Build System.

For documentation on how to run a build, see Usage.txt

For a list of behavioral changes useful for Android.mk writers see Changes.md

For an outdated reference on Android.mk files, see build-system.html. Our Android.mk files look similar, but are entirely different from the Android.mk files used by the NDK build system. When searching for documentation elsewhere, ensure that it is for the platform build system -- most are not.

This Makefile-based system is in the process of being replaced with Soong, a new build system written in Go. During the transition, all of these makefiles are read by Kati, and generate a ninja file instead of being executed directly. That's combined with a ninja file read by Soong so that the build graph of the two systems can be combined and run as one.