Add the --block flag to this script to control whether block-based OTA
packages are generated (defaults to off). Make the full OTA package
produced by "make otapackage" continue to produce a block-based OTA.
Also fix a problem where block incremental OTAs didn't ever succeed,
and the --no_signing option never worked.
Change-Id: I610d0b4abed4b8b65fbe8ce0abaeec6cf52e14a1
Currently, the "img" zip files generated by the build system lack the
script and data needed to rewrite the recovery partition, while the
"ota" zip files do (when installed).
In order to move towards block-based OTAs, we want the result of
flashing an image and the result of installing the corresponding OTA
package to be identical.
Generate the recovery-from-boot patch and install script as part of
the process of building the target-files. This requires breaking the
code to generate that out of ota_from_target_files into its own tool
that we can run from the Makefile. (ota_from_target_files can still
do this, so it continues to work with older target-files.)
Bug: 12893978
Change-Id: I80e62268840780b81216e548be89b47baf81b4ac
PRODUCT_COPY_FILES entries can include the src:dest:owner
syntax versus src:dest. This causes the filter to miss
certain cases. Instead use the word-colon function to
grab the dest regardless of syntax.
Change-Id: I1f4e57a236c1db148bada0cfe5bd1e87bb1194d6
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
/system/lib always contains 32-bit libraries, and /system/lib64 (if
present) always contains 64-bit libraries.
Move things around a little bit, so TARGET_ARCH can be used to define
the build paths.
Bug: 11654773
Change-Id: I2edd91e162c7a20d7719d7bae15e5fa6c2a5b498
To run emma on a host Java library, in the module definition use:
LOCAL_EMMA_INSTRUMENT := true
then run make with "EMMA_INSTRUMENT=true".
Bug: 12178695
Change-Id: Ie31582b94f5c45381f534912e810f88d21dde9b2
Building recovery requires building a host .jar file. Change
platform.zip to always include the necessary host java prebuilts,
instead of only when building the 'platform-java' target.
Bug: 12186985
Change-Id: Ic823d764cb6b39bbf8c5d90c94b5dc99b55d34dc
When run with the -2 option, ota_from_target_files will generate a
package (full or incremental) that does some extra reboots in order to
install the new recovery first, so that the rest of the installation
is done with the new recovery. This can be useful if (say) the
package installation needs some features from the newer kernel.
For incremental packages, the verification phase is still done with
the old recovery.
This is only supported on devices where the misc partition is EMMC
(not MTD).
Two-step packages are slower to install and possibly confusing to
users (they will see their device reboot four times instead of twice),
so only use this option if necessary.
Change-Id: I3267d905e5e8eb1a1eb61bf48255b8b24ffc4ad1
Save the device-specific releasetools.py module in the target_files
zip so that the OTA tools can use it without needing to get it from a
client.
Change-Id: I2dd5f4628290a8f2f56bd519b07d4ca8d92fddcd
* commit 'c3644114805150eef2f5035085878e5f860c7436':
Revert "Enable incremental builder to find files that moved, and try to process them via patch + rename, instead of delete + add."
* commit '8ea83e902d931591af37e747763e768e7a6990be':
Revert "Enable incremental builder to find files that moved, and try to process them via patch + rename, instead of delete + add."
* commit '3b44339d6a443fde57db4ae84a7e46823da6d162':
Enable incremental builder to find files that moved, and try to process them via patch + rename, instead of delete + add.
* commit '37335b42385970d957d48056145a3d4c4dbc6087':
Enable incremental builder to find files that moved, and try to process them via patch + rename, instead of delete + add.
Update the OTA generation script to understand SELinux file
labels and file capabilities.
Make fs_config aware of SELinux labels and file capabilities, and
optionally output those elements whenever we output the
UID / GID / file perms. The information is emitted as a key=value pair
to allow for future extensibility.
Pass the SELinux file label and capabilities to the newly created
set_metadata() and set_metadata_recursive() calls. When the OTA
script fixes up filesystem permissions, it will also fix up the SELinux
labels and file capabilities.
If no SELinux label and capabilities are available for the file, use
the old set_perm and set_perm_recursive calls.
Bug: 8985290
Bug: 10183961
Bug: 10186213
Change-Id: I4fcfb2c234dbfb965cee9e62f060092a4274d22d
The existing logic in common.py breaks string arguments incorrectly:
e.g. --para1 val1 --para2 "val2 is a string" will be output as:
'--para', 'val1, '--para2', 'val2' 'is' 'a' 'string'
This will cause mkbootimg command fails due to the invalid arguments
generated from the wrong parsing.
The patch fixes this issue to get:
'--para', 'val1, '--para2', 'val2 is a string'
Change-Id: Ia34ec357550f11ae9d6adc719d86a0c6a9099fbc
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com>
In apps_only build (after running tapas or exporting TARGET_BUILD_APPS),
run "make notice_files" to collect and combine the NOTICE files of
modules that are needed by the apps.
Bug: 10445634
Change-Id: I6555bba1104e43b48c723c82143c46d444a75e80
Collect and store proguard obfuscation dictionary files.
Only do this for apps_only build for now.
Bug: 9407666
Change-Id: I51c78bf0f42f959dc920de230e60e0f71ed0d0ea
Collect and store proguard obfuscation dictionary files.
Only do this for apps_only build for now.
Bug: 9407666
Change-Id: I0324eed6bb236abb0d3725f8d2a0b6c5c31935fe
Support using custom mkbootimg to allow boards to specify custom
boot image formats. Also export this as the environment variable
MKBOOTIMG to the *_from_target_files releasetools scripts.
Change-Id: I2084273b1175de097fb7da5c4f2264ea8014d74f
Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Don't bother going through the source tree in more circumstances:
all cleaning goals, helping goals, no-deps goals.
Bug: 10244578
Change-Id: Id53a249085c62838e4193962a85e0ac34f46954f
Add "dev-keys" or "test-keys" to the value of ro.build.display.id for
user builds. (This is the property that is displayed under "Build
number" in the Settings UI.) Modify the signing script to remove the
keys tag from this value when signing.
Change-Id: I3d9d92056f8567d7f84b1be047619be7c6e4c419
- This can be used to deliver stuffs like kernel symbol file.
- Files are added in relative path from the top of android source tree.
- PDK_PLATFORM_ZIP_PRODUCT_BINARIES will be defined in BoardConfig.mk.
- files under out dir will be rejected to prevent possible conflicts.
bug: 9963432
Change-Id: Id1da643534cd86939df4941f39e4414d343bba99
Make fs_config aware of SELinux contexts, and output the context
whenever we output the UID / GID / file perms.
Pass the selinux context to the set_perm2() and set_perm2_recursive()
calls. When the OTA script fixes up filesystem permissions, it will
also fix up the SELinux context on the files.
Bug: 8985290
Change-Id: I6419b64c06309a93ac6b2f2cf9fc7f8815adeaf3
And retire BOARD_DONT_BUILD_USERDATA_IMG.
This unifies the logic in build/core/Makefile and
build/tools/releasetools/img_from_target_files.
Change-Id: Ib6b4e8e0d8279ed7deaf047e9dc30eb65aba013f
Instead we should explicitly set up the dependency, if the module will
be used in the build process; Use LOCAL_MODULE_TAGS with eng, debug or
tests if the module is for testing; or add to PRODUCT_PACKAGES if it's
required by a product.
Change-Id: Ic26319c26c1166bc1062dfbcfb4e006af185249a
You can dist the same file for multiple goals in multiple calls to
dist-for-goals. The first call will establish the real copy rule, while
the rest call just establishes the goals' dependency on the dest file.
This enable uss to remove the bizarre $(if ..) enclosing the droid and
sdk dist while avoiding make's multiple rules warning.
Change-Id: I76475db76a9e6167e0e606dd582b54e80dfcdd22
With this change, e2fsck is run only when you build the update.zip file,
which is built when "dist" is among the make command.
Bug: 7591683
Change-Id: I446b71d5aa9295aff3af622f115175f769746615
If multiple build targets use a common recovery.fstab or system.prop,
this allows them to live in a centralized location and not be copied
or symlinked to the device directories.
Change-Id: I7aeb31ed9dc9b43a5e2c9e46fe582b10cba71b24
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Before this change, because the file_contexts is not in the system,
data or cache directory, the dependency is not reliable.
This fixed the gms build error:
out/target/product/gms/root/file_contexts: No such file or directory
Change-Id: Id8d5b3f4557d43a509ccc00b21dd426a414b7c42
Before this change, because the file_contexts is not in the system,
data or cache directory, the dependency is not reliable.
This fixed the gms build error:
out/target/product/gms/root/file_contexts: No such file or directory
Change-Id: Id8d5b3f4557d43a509ccc00b21dd426a414b7c42
This can fix the error "/bin/bash: Argument list too long", if we get a
really long apk list.
Bug tracker Link: http://code.google.com/p/android/issues/detail?id=38937
Change-Id: I72258125c4297dfd9f8f502a96dbfa5a08f3cc50
Bug: 5368571
Now we have a phony target "tests" instead.
The target can be built in any other build variant (eg userdebug).
For example, "make PRODUCT-full-userdebug tests dist" will build and
put the *-test-* zip file in the dist dir.
The "tests" target will include all modules tagged as "tests" in
addition to other modules in specific target out directories.
Change-Id: I8383097380d8e6846c3e2107d6dd5f68788cfc39
Instead we should explicitly set up the dependency, if the module will
be used in the build process; Use LOCAL_MODULE_TAGS with eng, debug or
tests if the module is for testing; or add to PRODUCT_PACKAGES if it's
required by a product.
Change-Id: I326e97df6630dee4acc6582ce6cef2dec8289155
PRODUCT_COPY_FILES now is a list of words like <source
path>:<destination path>[:<owner>].
The optional :<owner> is used to indicate the owner of a vendor file.
Bug: 7048854
Change-Id: I435d1e18b7a091fb62513062cfc2e420e51557ec
If you try to build a recovery image without having built the main
system, creating the recovery resourc file can fail due to the
directory not existing.
Change-Id: I2daff847c0b58dfa519d0f742636f01dba28c689
Put the recovery UI images into a file in /system/etc where we can use
them for constructing the recovery image, so they don't need to be
included in OTA packages.
Change-Id: Iab2144865298c8967eb31660abd3bb11e6ec26fa
This patch adds BOARD_CUSTOM_BOOTIMG_MK. It is needed for some devices like
Sony Xperia S (LT26) because it needs a own bootimg format.
If BOARD_CUSTOM_BOOTIMG_MK is not set the build will be done in the normal
way, so other devices are not affected.
Change-Id: I66c8be6b107988d3238001e1dc612c044ed01aaa
Signed-off-by: Andreas Makris <andreas.makris@gmail.com>
The module names are phony targets and we should avoid having file targets
depend on phony targets.
Instead the build system makes sure to use the file dependency with
PRODUCT_PACKAGES.
Change-Id: I8dc59d8f9ed92c146b8827d71278e27214e60f3a
init used to automatically execute hardware specific init.rc files from
init.<hardware>.rc. If the hardware specific init.rc file was installed
in recovery.img, various unwanted services would try to start, so init*.rc
was deleted when creating the recovery root directory.
init was recently modified to explicitly import init.${ro.hardware}.rc
from the default init.rc, rather than always trying to load it. Since
recovery replaces the default init.rc with a custom one, it will never
try to load hardware specific init files.
In addition, there are cases where we need to start hardware specific
services, for example watchdogd, so we need
init.recovery.${ro.hardware}.rc to be installed.
Modify the build rule to delete the default init.rc from the recovery
root directory so it can be replaced with the custom recovery init.rc,
but leave all the hardware specific init files in place.
Bug: 6953625
Change-Id: I5d9555e3d54d2f1d9f49fb981bd412c53741337e
Arrange to take $(BOARD_MKBOOTIMG_ARGS) and pass it to all invocations
of mkbootimg from within make, and to store it in the target_files so
it can be used by future invocations of img_from_target_files and
ota_from_target_files.
Bug: 6918260
Change-Id: I7130ac52e96bd51d4d8b80ca036635e1626f01f1
- app_process is not in PDK, and this makes native debugging difficult
So provide symbol file instead of source
Bug: 6774048
Change-Id: I1a3a86cf64d8f1d22cdb3a22714f508de963099b
Set BUILD_EMULATOR to true when HOST_OS is linux.
Disable the emulator package target if BUILD_EMULATOR is not true.
Change-Id: I8987c0a091622baa0e861b451e635c4ddb148b29
Set BUILD_EMULATOR to true when HOST_OS is linux.
Disable the emulator package target if BUILD_EMULATOR is not true.
Change-Id: I8987c0a091622baa0e861b451e635c4ddb148b29
Include the MMAC install perms policy configuration
file to the list of SELINUX dependencies.
This changes depends on the project:
git.selinuxproject.org/~seandroid/selinux/mac-policy
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
Change-Id: Ief91d6a717741c91c5ba8745452bb247dc8048ec
This eases cross-repo dependencies between device/ and
vendor/.
Change-Id: I72e283d22f16e50555ec7ba7bcf9c61ea07f083c
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This ensures there is a dependency between the root image
and changes to property_contexts file.
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
Change-Id: I9bd2c3fc44015d6013e6a1f200f8abded271654f
Also fixes atree to accept an alternate command via the env var ATREE_STRIP
and correctly splits it for execvp if it contains arguments.
Change-Id: I8691bdc569bea3dddfde6249217dc305b6ef19f7
- make platform-java will add necessary Java stuffs from out/target/common/
to platform.zip
- make platform works as before: no Java libraries
- normal fusion build will pick up the file, and define TARGET_BUILD_PDK_JAVA
besides TARGET_BUILD_PDK if Java stuffs are included
- For TARGET_BUILD_PDK_JAVA, java.mk does not touch LOCAL_SDK_VERSION, which will lead into
pulling non-SDK Java APIs
Bug: 6482799
Change-Id: I90b1a0b06dc774150711680a6612f2b97b9eab3f
aapt is not needed for a dist build and not available in a pdk dist
build. Create a new list DISTTOOLS that dist builds depends on,
and change OTATOOLS to be DISTTOOLS plus aapt, which is build by
make otatools.
Change-Id: I9a39020640b0e2cade8073aa14ee2ada9a20d78b
PDK fusion builds will include system/etc/event-log-tags from a full
build from platform.zip, which needs to be merged into the event-log-tags
built locally based on *.logtags from projects that have source.
Bug: 6297675
Change-Id: I91409f37c6dc88d6942eade2946155c2a6640b6f
This allows us to have per-host OS (or OS + arch) atree files in case we
need to get tools which source varies per host OS, example:
- sdk/build/tools.linux.atree
- sdk/build/tools.linux-x86_64.atree
- sdk/build/tools.windows.atree
etc.
(cherry picked from commit 3ab307a68c)
Change-Id: I05140bb02ecd41152e47ecdf404b1b8fb34fdf24
With "foo bar : req", the build command will be run separately for foo
and bar.
Instead with "foo : bar" and "bar : req", the build command will be run
only once to produce both targets.
Also running the same build command concurrently may lead to build race
condition.
Change-Id: I8af2817546a7e2697a553c9320bd10f6bd4f20a2
Pass the file_contexts configuration to the releasetools scripts
so that the security contexts of files can be properly set for OTA
and update packages.
Requires Ica5fb73d6f2ffb981b74d1896538988dbc4d9b24
Change-Id: I5a63fd61a7e74d386d0803946d06bcf2fa8a857e
This configuration is used to determine the file security contexts
to set on the files in the yaffs2 or ext4 image that is generated.
This is similar to the android_filesystem_config.h tables for determining
the UID/GID/mode, but as a configuration rather than code.
Change-Id: I7c6f59fe7cb8bc4c86c8790f991b12dd93a61f68
Bug: 6241618
If platform appears on the build command line, build platform.zip,
which essentially is the zip package of the system directory.
Put the platform.zip to the dist dir if "dist" is specified too,
so the platform.zip can be downloaded from the build page.
Change-Id: I988dd5c753a4ee744b4e3dccf261d8df904d9847
(it was getting fairly complicated in bash),
update HTML output to have a table of contents,
and fix typos/bugs in notice file CSS
Change-Id: I51131f594e3bbe63f03165fa42f5ceeaec518543
BUILD_PDK and some of the other infrastructure will go away once
we're done with the new new PDK work, but for now don't disturb
that stuff.
Change-Id: Ia39bf759ec03f203858ddcc4880af72bd132cb5a
This allows us to have per-host OS (or OS + arch) atree files in case we
need to get tools which source varies per host OS, example:
- sdk/build/tools.linux.atree
- sdk/build/tools.linux-x86_64.atree
- sdk/build/tools.windows.atree
etc.
Change-Id: I9a1256548345fb866b0750fce6810913413dd946
The notice_files target generates $(TARGET_OUT_INTERMEDIATES)/NOTICE.txt and
$(TARGET_OUT_INTERMEDIATES)/NOTICE.html. The former is not needed and the
latter is an explicit dependency of $(TARGET_OUT_INTERMEDIATES)/NOTICE.html.gz.
We can therefore remove the target and the logic to generate NOTICE.txt.
Change-Id: I6179c049bebe590c7298e8be0a30e30265423468
Bug: 5153694
To build cache.img, set BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE (required,
ext4 only for now), BOARD_CACHEIMAGE_PARTITION_SIZE (optional) in
BoardConfig.mk.
Change-Id: I1d8b91646aa1dba88285e008ad3335768bcbddd2
Bug: 5398808
Before this change we have duplicate code in the Makefile and the
python-based releasetool. That's a real headache to maintain.
Change-Id: I8ddf04a79c6886540e89d990f723d8f77c9dd883