Commit Graph

7218 Commits

Author SHA1 Message Date
Kelvin Zhang
caf7bbc39e Add --disable_verity_computation option to ota script
Test: treehugger, generate an OTA with --disable_verity_computation, serve it to
VABC device. Make sure it works

Change-Id: I0a5f3c018727cb3eed3edd004d60d09d13e34039
2020-11-23 13:24:34 -05:00
Jiyong Park
c8c94ac38e Try to find host tools in the same directory as the caller
common.py is used by many python-based host tools. When a host tool
invokes another host tool, it's usually done with the name of the tool,
not the absolute path of the tool. For example, ["cmd", "arg"] instead
of ["out/soong/host/linux-x86/bin/cmd", "arg"].

Previously, the caller of the tool has to teach all the locations of the
sub-tools that the tool will internally use. But this isn't ideal;

1) It's against the abstraction. The existence of the sub tools and their
names are implementation detail of the containing tool. It's also
subject to change.

2) This isn't scalable. Sometimes a host tool invokes a large number of
host tools. Furthermore, the sub tools might invoke other sub-sub tools.
Then the location of the sub-sub-tools had to be known to the top-level
tool.

The idea here is to make use of the fact that

a) dependencies to the sub (and sub-sub) tools are already described in
the Android.bp and

b) the dependencies are guaranteed to be up-to-date and installed to the
host tool directory (out/soong/host/linux-x86/bin) by Soong.

Then by the time a host tool is invoked, all of its sub tools should
be found in the host tool directory. So, when "cmd" is about to be
invoked, common.py first tries to find it from the user-given paths. If
not found there, it falls back to search the directory where the current
tool is located at. Then finally falls back to the original name "cmd"
and expects it to be found under PATH.

Bug: 172414391
Test: m
Change-Id: Id7b44f9021be3bbf0631ddafe382ea3990f7ea74
2020-11-20 10:40:54 +09:00
Daniel Norman
38888d390f Turns on building vbmeta.img when merging if avb_enable=true.
Needed after commit 8218225794
which skips regenerating vbmeta.img if avb_building_vbmeta_image!=true.
Partial builds that disable vbmeta generation do not set this field.

Bug: 169892879
Test: Run merge_target_files.py on builds that have avb_enable=true but
      PRODUCT_BUILD_VBMETA_IMAGE=false. Observe vbmeta.img generation.
Change-Id: Id498dbd28c909e19cd35178b95a0b5dc22a1ac70
2020-11-19 14:51:15 -08:00
Yifan Hong
187e975927 Merge changes from topic "gki_vintf_level"
* changes:
  Pass kernel release file to check_vintf.
  Pass kernel version file to check_vintf.
2020-11-16 23:48:47 +00:00
Treehugger Robot
59dd38cdb0 Merge "Include complete boot image on builds containing gki apex" 2020-11-16 18:04:46 +00:00
Treehugger Robot
fc65231af1 Merge "Support PRODUCT_BUILD_VBMETA_IMAGE for target files" 2020-11-16 13:59:41 +00:00
Kelvin Zhang
072efc92e2 Merge "Allow downgradeable secondary payload" 2020-11-14 03:09:49 +00:00
Yifan Hong
72e78f21b2 Pass kernel version file to check_vintf.
check_vintf now accept a path to a file that contains the kernel
version string. Use it.

Test: m check-vintf-all and manual inspect
Bug: 161317193
Change-Id: I4812c93f352686d73c5832d59e43a297d93e67a2
2020-11-13 18:45:03 -08:00
Fabien Sanglard
3d38ff9f38 Merge "Improve Zipalign test" 2020-11-13 20:43:11 +00:00
Fabien Sanglard
e5fd58a62d Merge "Fix zipalign alignment error" 2020-11-13 20:42:50 +00:00
Bowgo Tsai
8218225794 Support PRODUCT_BUILD_VBMETA_IMAGE for target files
Currently we support skip building vbmeta.img when
PRODUCT_BUILD_VBMETA_IMAGE is set to false, which is used
when generating a system-only or vendor-only build artifacts.

However, when using `make dist` to build target files,
vbmeta.img is still generated. This change fixes this by
passing the related info to misc_info.txt for the release
tool to skip building vbmeta.img when necessary.

To make this happen, a device config should:
 1. Set PRODUCT_BUILD_VBMETA_IMAGE := false
 2. Remove 'vbmeta' from AB_OTA_PARTITIONS:
     AB_OTA_PARTITIONS += \
	 boot \
	 system \
    -    vbmeta \
	 dtbo \
	 product \
	 system_ext \
         vbmeta_system

Bug: 161659370
Test: `make dist` and checks the target file does not include vbmeta.img
Change-Id: Iddca9fe0b171a50a80e5a88aa462e118f18a7e6f
2020-11-13 11:28:17 +08:00
Fabien Sanglard
a720635be2 Fix zipalign alignment error
Problem: Zipalign operates over several false assumptions. First it
assumes that zip entries are in the same order in the body and in
the Central Direcotry. Second, it assumes there are not space
between entries. This makes alignment incorrect when these asserts
are not true.

Solution: Don't align entries by tracking bias based on input zip
entry location. Calculate the expected alignment based on the out-
put zip file and correct with extra padding.

Fixes: 162117652
Test: Units Tests
Change-Id: Ia179338f658cab18a377cba2c7c8e629089a2785
2020-11-11 17:00:22 -08:00
Fabien Sanglard
4b4b495d88 Improve Zipalign test
Problem: Zipalign test invokes process but not verify.
Solution: Invoke both during test.

Test: Unit Test
Bug: NA
Change-Id: If603df301048f4b508e3429c4a8c77339ab351ae
2020-11-11 16:50:18 -08:00
Kelvin Zhang
6cdf39168f Allow downgradeable secondary payload
Test: treehugger
Bug: 172811557
Change-Id: I58f3123b9bc69342427f95250a5ee57ede4ac926
2020-11-11 14:23:00 -05:00
Kelvin Zhang
83ea783146 Filter out ab_partitions in source_info as well
When generating a incremental partial OTA, we need to filter out
partitions in ab_partitions which are not in partial list

Test: Generate a partial incremental OTA
Change-Id: Iff7748ce6181a9a231557de0539004211587232c
2020-11-11 14:23:00 -05:00
Kelvin Zhang
65029a2801 Include complete boot image on builds containing gki apex
Test: treehugger
Bug: 171906589
Change-Id: I231dac425ab14602492346006e331e4666173614
2020-11-11 09:16:32 -05:00
Kelvin Zhang
6f83343e7e Merge "Allow downgradable partial OTA" 2020-11-11 14:05:47 +00:00
Kelvin Zhang
80195724e7 Allow downgradable partial OTA
Cuttlefish doesn't support updatin vendor partition. So in testing we
need to exclude vendor and generate a downgrade partial package.

Test: generate a partial downgrade OTA
Bug: 171999375
Change-Id: I97e450d4063320cf55003a7a5c5ef913c321e067
2020-11-10 09:11:20 -05:00
Treehugger Robot
b65e0b7648 Merge "Add the janitors and someone from Studio." 2020-11-10 08:55:31 +00:00
Elliott Hughes
3fc740b7cb Merge "Run zipalign tests in presubmit." 2020-11-10 00:19:31 +00:00
Elliott Hughes
3d8fb39b0e Add the janitors and someone from Studio.
Studio uses this too, not just the platform build.

Test: treehugger
Change-Id: I65c8a8f150e4d10ca31f67a816c9882d46f08ebf
2020-11-09 14:06:02 -08:00
Treehugger Robot
7bd7db619a Merge "Fix zipalign tests with GetExecutableDirectory" 2020-11-07 23:08:55 +00:00
Fabien Sanglard
6dfc6fb4c4 Fix zipalign tests with GetExecutableDirectory
Test: Self-tested
Bug: NA
Change-Id: Idc15c0e028b74a2b38c26af0e7d4a51f32210145
2020-11-06 17:04:59 -08:00
Treehugger Robot
ba1811bf83 Merge "Checks for APK sharedUserIds that cross partition group boundaries." 2020-11-06 22:29:46 +00:00
Elliott Hughes
c2039151ba Run zipalign tests in presubmit.
Test: treehugger
Change-Id: I2779c04313976d29c29c50920c0b356309c08439
2020-11-05 16:37:40 -08:00
Daniel Norman
d33515623a Checks for APK sharedUserIds that cross partition group boundaries.
This check is used when merging target files to ensure that a merged
build does not contain any APKs that share UID across builds.

Bug: 171431774
Test: test_common
Test: Use merge_target_files.py to merge two partial builds,
      observe no failures for inputs without colliding APKs.
Test: Use merge_target_files.py to merge two partial builds,
      observe failure for inputs that have an APK that shares a
      UID across input partition groups.
Change-Id: I9dc57216882741ae46a99cfd7847f34702c75582
2020-11-05 15:17:05 -08:00
Treehugger Robot
6be3371c23 Merge "Refactor zipalign to allow unit tests" 2020-11-05 19:10:22 +00:00
Treehugger Robot
50c0f97fe7 Merge "Finds APK shared UID violations when merging target files." 2020-11-04 21:44:40 +00:00
Kelvin Zhang
31233e5922 Disable FEC computation for VABC
Test: treehugger, generate a package and make sure --disable_fec is
passed to delta_generator

Change-Id: If256af90b11a7fa03299c1272466d35ef3798a24
2020-11-03 15:45:30 -05:00
Fabien Sanglard
0f29f54695 Refactor zipalign to allow unit tests
Test: Self-tested
Bug: NA
Change-Id: I322b78c5e18082f7abf7427cdc62dbabcb18b4a0
2020-11-03 10:03:30 -08:00
Treehugger Robot
0806152b83 Merge "Fix partition timestamps for secondary payload" 2020-11-02 21:22:17 +00:00
Kelvin Zhang
a59bb27754 Fix partition timestamps for secondary payload
When generating secondary payload, we exclude many partitions. These
partitions should be excluded from partition timestamps as well.

Bug: 172022126
Test: ota_from_target_files --include_secondary
Change-Id: Ia3121919154181dc882c4694ad2591dcb81e719f
2020-10-30 14:54:40 -04:00
Alistair Delva
38d49ca61a Merge "Allow flashing erofs system imgs" 2020-10-30 06:41:25 +00:00
Daniel Norman
b8d52a2fdc Finds APK shared UID violations when merging target files.
This involved moving the find-shareduid-violation.py script to
releasetools to simplify the cross-tool usage. This new location aligns
this script with other similar python host tools.

In a future change this violation file will be used to check for
shared UID violations across the input build partition boundary.

Bug: 171431774
Test: test_merge_target_files
Test: Use merge_target_files.py to merge two partial builds,
      observe shared UID violations file contents in the result.
Test: m dist out/dist/shareduid_violation_modules.json
      (Checking that existing behavior in core/tasks is presereved)
Change-Id: I7deecbe019379c71bfdbedce56edac55e7b27b41
2020-10-29 09:33:26 -07:00
Chema Gonzalez
f8b158b312 build: make fs_config_generator.py python2 explicitly
Test: run script in Fedora 31 with (default) python3 interpreter.

```
$ env python --version
Python 3.7.9
```

Change-Id: Ib4e68c5df54b092380e9fca473cd0dbbc0c18db7
2020-10-28 10:52:14 -07:00
Baligh Uddin
865b6605ca Merge "Move {libbacktrace,libunwindstack} from system/core -> system/unwinding/" 2020-10-28 05:16:46 +00:00
Baligh Uddin
4dc00c60da Move {libbacktrace,libunwindstack} from system/core -> system/unwinding/
BUG: 170465278
Test: TH
Change-Id: I7f0d7b1254e7a28a55599aa4ee6bb6f2ac789b60
2020-10-27 19:44:34 +00:00
Gao Xiang
961041ac80 Allow flashing erofs system imgs
Bug: 158339527
Test: build & boot
Signed-off-by: Gao Xiang <hsiangkao@redhat.com>
Change-Id: Ie74db8ebcd7214ffbec49d42b305b2f3ac2e8c9d
2020-10-28 01:24:39 +08:00
Felka Chang
b511e7f33a Let genrule have the entrance depend on signapk
Currently, it may be a good idea to let genrule module depend on
java_library_host by changing soong. To change signapk module type from
java_library_host to java_binary_host makes the genrule can depend on the
signapk module directly and generate the signapk.jar at the same time.

Test: for i in `seq 1 10` ; \
        do\
            make clean; \
            make -j64 apexer_test_host_tools; \
        done
Bug: 160632228
Bug: 157878202
Change-Id: I63ae661b9b419ddc6e69ccfc9a29fd28b116c0b5
Merged-In: I63ae661b9b419ddc6e69ccfc9a29fd28b116c0b5
(cherry picked from commit d8442b4c88)
2020-10-27 14:50:39 +00:00
Joanne Chung
2c892f8700 Merge "Revert "Refactor zipalign to allow unit tests"" 2020-10-27 04:32:43 +00:00
Treehugger Robot
89dccb3cf9 Merge "Cleanup references to system/core/liblog -> system/logging/liblog" 2020-10-27 03:33:37 +00:00
Joanne Chung
2736c6f046 Revert "Refactor zipalign to allow unit tests"
This reverts commit d4f71a97bd.

Reason for revert: Looks to have broken apsp master b/171754371

Change-Id: I17ec7ab20834f6b0dbdf49668c41d3e76c0c1e41
2020-10-27 03:22:02 +00:00
Treehugger Robot
454e099c65 Merge "Refactor zipalign to allow unit tests" 2020-10-26 23:42:01 +00:00
Fabien Sanglard
d4f71a97bd Refactor zipalign to allow unit tests
Test: Self-tested
Bug: NA
Change-Id: If5e42735853e1508fbeb9fb420a9a9f129c2218f
2020-10-26 12:31:03 -07:00
Baligh Uddin
84280dfa4c Cleanup references to system/core/liblog -> system/logging/liblog
BUG: 170387172
Test: TH
Change-Id: I206a8c43ba914381771826518f369bad328cc257
2020-10-26 14:34:45 +00:00
Baligh Uddin
fabc1f6757 Merge "Cleanup references to system/core/base -> system/libbase" 2020-10-24 01:40:48 +00:00
Treehugger Robot
13e76a3e8f Merge "Formatting and general cleanup of merge_target_files." 2020-10-23 21:04:20 +00:00
Baligh Uddin
71fab5c75a Cleanup references to system/core/base -> system/libbase
BUG: 157656545
Test: TH
Change-Id: I0dc00f5f90cfdf439e3dc5d63e5aff178b1e9206
2020-10-23 14:40:36 +00:00
Daniel Norman
dbbf5a3912 Formatting and general cleanup of merge_target_files.
Also adds a new validation that IMAGES/<partition>.img must come from
the same build that provides <PARTITION>/*.

Bug: 171431774
Test: python3 -m unittest test_merge_target_files
Test: Use merge_target_files to merge a build.
Change-Id: Ia1f3f2e65a0ca90962216fb0c5cdd24c4c150cae
2020-10-22 16:37:13 -07:00
Treehugger Robot
0b0d8d5b53 Merge "OTA: Support A/B devices custom images update." 2020-10-22 04:59:08 +00:00