Commit graph

4862 commits

Author SHA1 Message Date
Tao Bao
25643f313a Merge "releasetools: Reduce memory footprint for BBOTA generation." am: 3b1f260205 am: cf82616047
am: a56e7c81e2

Change-Id: Ie0717b0b71b791c1dca826735d31c03a7f4728b1
2017-03-08 17:55:34 +00:00
Tao Bao
3b1f260205 Merge "releasetools: Reduce memory footprint for BBOTA generation." 2017-03-08 17:43:34 +00:00
Tao Bao
b357b83936 Merge "releasetools: Remove the obsolete path in GetImage()." am: 7dc54e9761 am: 438753de24
am: 657ed318d8

Change-Id: Iac897cdeb013ae72b9e0930b2234881280b142dc
2017-03-07 06:30:58 +00:00
Tao Bao
7dc54e9761 Merge "releasetools: Remove the obsolete path in GetImage()." 2017-03-07 06:20:04 +00:00
Tao Bao
958c691a0e Merge "releasetools: Fix two minor issues with _LoadOemDicts()." am: 0c9e8d87c4 am: cedbcb634f
am: e319d34b21

Change-Id: Ie653cbb3bc5bf4e746a28d6e9620f3a55a9f784f
2017-03-07 02:45:34 +00:00
Tao Bao
7e0f160f30 releasetools: Remove the obsolete path in GetImage().
We must have created the images (system.img, system.map etc) prior to
calling ota_from_target_files.py (added by commit
2e0d8fcf08, into Lollipop).

Remove the obsolete suppport for handling "old" target_files zips that
don't have such images. This simplies the logic for BuildSystem() and
BuildVendor(), which now would only be called by
add_img_to_target_files.py itself.

Test: Generating full and incremental OTAs give the same results, w/ and
      w/o this CL.
Change-Id: I0ea243d09d3378249d7982701ae4ec339b04b7b8
2017-03-06 16:22:44 -08:00
Tao Bao
ebce697429 releasetools: Fix two minor issues with _LoadOemDicts().
The first one in WriteVerifyPackage() is mismatching function parameters
that can be trivially fixed.

The other one is in WriteABOTAPackageWithBrilloScript(), where we don't
have edify script instance.

Test: `pylint --rcfile=pylintrc ota_from_target_files.py`.
Change-Id: Ie238ef5b296dfe9e725b61376992447b662d2376
2017-03-06 10:29:13 -08:00
Tao Bao
da12392738 Merge "Revert "Revert "releasetools: Use pattern filter when unzipping.""" am: 8e02284362 am: 85f8de467a
am: 654e4f4c77

Change-Id: I75e8a5111c321b8ecda183f758060a4b59bd1e62
2017-03-06 16:57:37 +00:00
Tao Bao
183e56e83d releasetools: Reduce memory footprint for BBOTA generation.
The major issue with the existing implementation is unnecessarily
holding too much data in memory, such as HashBlocks() which first reads
in *all* the data to a list before hashing. We can leverage generator
functions to stream such operations.

This CL makes the following changes to reduce the peak memory use.
 - Adding RangeSha1() and WriteRangeDataToFd() to Image classes. These
   functions perform the operations on-the-fly.
 - Caching the computed SHA-1 values for a Transfer instance.

As a result, this CL reduces the peak memory use by ~80% (e.g. reducing
from 5.85GB to 1.16GB for the same incremental, as shown by "Maximum
resident set size" from `/usr/bin/time -v`). It also effectively
improves the (package generation) performance by ~30%.

Bug: 35768998
Bug: 32312123
Test: Generating the same incremental w/ and w/o the CL give identical
      output packages.
Change-Id: Ia5c6314b41da73dd6fe1dbe2ca81bbd89b517cec
2017-03-06 08:46:30 -08:00
Tao Bao
6b0b2f9db0 Revert "Revert "releasetools: Use pattern filter when unzipping.""
This reverts commit a7316ce094.

This CL differs from the original CL by not unzipping RADIO/*. This is
because: a) AOSP targets don't have RADIO/ entries in the TF.zip; b)
we're not using the unzipped RADIO files (but reading them from the zip
files directly) - checked all the device-specific releasetools for
angler, bullhead, ryu, shamu, volantis, fugu, marlin and sailfish.

Test: `m dist` with AOSP targets (tested fugu and bullhead).
Change-Id: I4d0c67214ddd6202fc27c71bb79f52b5f4d40c64
2017-03-05 13:11:42 -08:00
Tao Bao
f9566f38e2 Merge "Revert "releasetools: Use pattern filter when unzipping."" am: 0c3e31c69b am: 6c98ad6c4e
am: a4170833d1

Change-Id: I529f9eb380fc06b08d02be80635f9ac9a9317654
2017-03-05 17:56:19 +00:00
Tao Bao
0c3e31c69b Merge "Revert "releasetools: Use pattern filter when unzipping."" 2017-03-05 17:44:58 +00:00
Tao Bao
a7316ce094 Revert "releasetools: Use pattern filter when unzipping."
This reverts commit aa3a04f19d.

Reason for revert: Some AOSP targets don't include RADIO/ in the TF.zip. We may possibly skip unzipping RADIO/, or by always creating a dummy RADIO folder in TF.zip. Revert this CL for now.

Change-Id: I8e90d322706a4fe82129bdfab5ffa1eab989c648
2017-03-05 17:43:33 +00:00
Tao Bao
ee5f10acab Merge "Change the default parameter values in common.MakeTempFile()." am: cc63bc3a91 am: 2b7a043a06
am: a21cff6280

Change-Id: I048ca3c7b4bcd5fa24cb1b7b903ebb60cc7fac47
2017-03-05 17:12:45 +00:00
Tao Bao
220bdee570 Merge "releasetools: Use pattern filter when unzipping." am: 76f038a63c am: e2309ba525
am: adf0881dc5

Change-Id: Icb68cb9205f9da4fd8fdb8e334c819d69a5abb6c
2017-03-05 17:01:44 +00:00
Tao Bao
cc63bc3a91 Merge "Change the default parameter values in common.MakeTempFile()." 2017-03-05 17:00:38 +00:00
Tao Bao
76f038a63c Merge "releasetools: Use pattern filter when unzipping." 2017-03-05 16:49:21 +00:00
TreeHugger Robot
039af59636 Merge "fallout of cleaning-up libutils includes" 2017-03-04 00:52:45 +00:00
Tao Bao
aa3a04f19d releasetools: Use pattern filter when unzipping.
When building BBOTAs, it only needs *some* unzipped entries in the given
target_files zip(s). In particular, it needs 'IMAGES/*', 'META/*',
'RADIO/*'. (It also reads 'SYSTEM/build.prop' and 'OTA/bin/updater', but
directly from the zip file.)

This CL specifies the entries to unzip. It saves the I/O cost, as well as
the temporary storage.

Test: ota_from_target_files.py gives the same package w/ and w/o the CL.
Test: check_target_files_signatures.py still works.
Change-Id: I728428aa0e138879e49f9efbdb46a85892fc7038
2017-03-03 16:38:17 -08:00
Sen Jiang
67b7aaab7d Merge "Remove DBus support." am: cf858d873b am: efcda5173d
am: 3d6b408aea

Change-Id: I183f58049ef63ce8f6bfbd67554199878b7a69cb
2017-03-03 21:02:37 +00:00
Mathias Agopian
319524ba33 fallout of cleaning-up libutils includes
Test: run & compile
Bug: n/a
Change-Id: Ia213c25f166805a203d472761d024fa6b6efdc24
2017-03-03 12:37:34 -08:00
Sen Jiang
d1f397e8b4 Remove DBus support.
external/dbus and external/dbus-binding-generator was removed from
the manifest.

Bug: 31602715
Test: make checkbuild
Change-Id: Iea0277720acad8ac0fa630b8745f90fb3c3b5f00
2017-03-02 18:00:21 -08:00
Tianjie Xu
d9880a0246 Merge "Do not read the block device when generating the care map" 2017-03-02 21:36:12 +00:00
Tao Bao
b116368c3f Merge "releasetools: Drop the support for fstab_version 1." am: afc0ea14d8 am: 39809e3800
am: 126d7b178d

Change-Id: Ibe90e941c85d0b56abf39b2d48608c736c6ab1e5
2017-03-02 19:26:37 +00:00
Treehugger Robot
afc0ea14d8 Merge "releasetools: Drop the support for fstab_version 1." 2017-03-02 19:19:09 +00:00
Tianjie Xu
955629b4aa Do not read the block device when generating the care map
This remove the fstab dependency when building the OTA package for
marlin/sailfish.

Bug: 35811655
Test: OTA package builds successfully for sailfish.
Change-Id: If223d11dddca396c47262042c576f9e7d0cb5b33
(cherry picked from commit 7d051adc3b)
2017-03-02 11:07:12 -08:00
TreeHugger Robot
e627078740 Merge "Do not read the block device when generating the care map" 2017-03-02 19:04:15 +00:00
Tao Bao
d1de6f326e releasetools: Drop the support for fstab_version 1.
fstab_version is defined by RECOVERY_FSTAB_VERSION in
bootable/recovery. We have moved to fstab_version 2 since commit
f35d1cef7c19db975a1295e8c23c7fb8bd2489f9 (landed into JB MR2).

Drop the support for fstab_version 1, since we won't run the latest OTA
script over a JB target_files zip.

Test: No impact on building full/incremental OTAs.
Change-Id: Ia87c4e7da6c5e71ce0908fca2e4f1ad1c06ba869
2017-03-01 16:56:45 -08:00
Tao Bao
d2de5e9ba8 Merge "releasetools: Add support for --override_timestamp." am: e889893776 am: 19e700aaf9
am: 44a544bc59

Change-Id: I92afbb0d8a4ee74c8b5b9ce0bce359bd07043550
2017-03-02 00:21:40 +00:00
Tao Bao
e889893776 Merge "releasetools: Add support for --override_timestamp." 2017-03-02 00:00:59 +00:00
Tianjie Xu
7d051adc3b Do not read the block device when generating the care map
This remove the fstab dependency when building the OTA package for
marlin/sailfish.

Bug: 35811655
Test: OTA package builds successfully for sailfish.
Change-Id: If223d11dddca396c47262042c576f9e7d0cb5b33
2017-03-01 11:55:02 -08:00
Tao Bao
fb8d22de03 Merge "releasetools: Merge two identical conditional branches." am: 59978ab6e3 am: 514e6e4488
am: 81d1ad1267

Change-Id: Ia106d318e77b954eadcfdcd80e13e85f89e43187
2017-03-01 18:08:17 +00:00
Tao Bao
9beea2a4a3 releasetools: Merge two identical conditional branches.
The merged two branches have become identical since commit
fc3422ad36 (landed into Nougat).

Test: Get identical incremental packages w/ and w/o the CL.
Change-Id: Id1183f8ed83f684a0dac1a4af87b6e075b08aabc
2017-02-28 20:20:27 -08:00
Dan Willemsen
aa7e67c871 Merge changes I5e684409,I4fa35540,I24015ef0 am: 93de77745c am: d1378dec05
am: ead8af8580

Change-Id: I0608060da7307b9bd9a5bd15e601b1787c510dd4
2017-02-28 21:41:33 +00:00
Dan Willemsen
93de77745c Merge changes I5e684409,I4fa35540,I24015ef0
* changes:
  Improve module tags warnings
  Improve warnings for package-modules.mk
  Fix all_named_products, remove kati_all_products
2017-02-28 21:30:55 +00:00
Tao Bao
3e6161a3b3 releasetools: Add support for --override_timestamp.
We use the timestamps in builds to determine a downgrade, which might
not be always the truth. For examples, two builds cut from different
branches may carry timestamps in a reverse order. An incremental package
won't be able to be pushed nor applied, based on the timestamp
comparison.

We used to handle such a case with manual work, by setting the
post-timestamp to (pre-timestamp + 1) in the package metadata. This CL
automates the process by adding a new flag --override_timestamp.

Note that it doesn't change anything in the installed image, but only
affects the assertions for pushing / installing the package.

With the change in this CL:
 - If it's a downgrade without any extra flag, fail the package
   generation (we only print warnings prior to this CL);
 - If it's a downgrade with --downgrade flag, generate a downgrade
   package with forced data wipe (same as before);
 - If it's a downgrade with --override_timestamp, generate a normal
   incremental with hacked timestamp (pre-timestamp + 1) (new in this CL
   to avoid the manual change);
 - If it's not a downgrade but with any of the above two flags specified,
   fail the package generation.

Bug: 33744169
Test: Generate an incremental from builds with reversed timestamps.
Change-Id: I8b187d32708b4a7c3e20f8c6adb8f9527b73b965
2017-02-28 13:01:13 -08:00
Elliott Hughes
41232ebd5c Merge "There's no longer a limit on property names." am: dda91dbef8 am: daac92eb51
am: 319fcc7668

Change-Id: Idb24042310fa9de8f534e9988285a16b714daf10
2017-02-28 20:22:56 +00:00
Treehugger Robot
dda91dbef8 Merge "There's no longer a limit on property names." 2017-02-28 20:13:14 +00:00
Tao Bao
0e03a0b168 Merge "Remove the backwards compatibility support for misc_info.txt." am: 042d5a846f am: ba765d7c47
am: 1f4831830e

Change-Id: I61d552561842f6b4f27d19c0f3924aab5b8f41c8
2017-02-28 18:15:17 +00:00
Elliott Hughes
05c1a2a55c There's no longer a limit on property names.
Bug: http://b/33926793
Test: boots
Change-Id: I12cdae782090fb0856171e5c90a268e91ba2ae1a
2017-02-28 10:04:23 -08:00
Tao Bao
6cd54739a4 Remove the backwards compatibility support for misc_info.txt.
We introduced META/misc_info.txt to hold the misc info since Gingerbread
(commit 37974731fc). Remove the backwards
compatibility support for building pre-G TF zips.

Test: `m dist` works.
Change-Id: Ibff7aaf69cc7e460634c049d11a004f7196f8f73
2017-02-27 17:00:13 -08:00
Jaekyun Seok
4e3fcca9fd Split board-specific system properties into vendor partition
Test: building succeeded and tested on sailfish-userdebug
Bug: 35696968
Change-Id: Ia1e8013411da36583fbf0d2115c54ca5d5980e20
2017-02-27 13:35:37 +09:00
Tao Bao
7e48403012 Merge "releasetools: Fix an equality check bug when asserting stash size." am: 2af09af86b am: db5463d8dd
am: 9def0e5609

Change-Id: I16d0bb1a16e135eaf48e18f445d6a257834c23b7
2017-02-26 21:42:54 +00:00
Tao Bao
9def0e5609 Merge "releasetools: Fix an equality check bug when asserting stash size." am: 2af09af86b
am: db5463d8dd

Change-Id: I198b9be0d250cabb25c0ea9bae11b47f29856873
2017-02-26 21:39:23 +00:00
Treehugger Robot
2af09af86b Merge "releasetools: Fix an equality check bug when asserting stash size." 2017-02-26 21:31:24 +00:00
Tao Bao
e8c68a03c8 releasetools: Fix an equality check bug when asserting stash size.
Otherwise the comparison is inconsistent between ReviseStashSize() and
WriteTransfers().

Bug: 35775675
Test: Successfully generate a previously failed incremental.
Change-Id: I554a51a210bf322cb5c79e28cf85607a417b094a
2017-02-26 10:58:22 -08:00
Chih-Hung Hsieh
eb27d0ef2e Merge "Add a script to check OWNERS file syntax." am: d84721a2cc am: a5b0fec8b6
am: edef957aeb

Change-Id: I45128f06c8e90c2d7800857d9ce047bd8e827bb7
2017-02-25 01:11:08 +00:00
Chih-Hung Hsieh
edef957aeb Merge "Add a script to check OWNERS file syntax." am: d84721a2cc
am: a5b0fec8b6

Change-Id: I9cb8eb3737daa56621adcf237bcbb43b354497ef
2017-02-25 01:09:09 +00:00
Treehugger Robot
d84721a2cc Merge "Add a script to check OWNERS file syntax." 2017-02-25 01:00:18 +00:00
Dan Willemsen
594c3fc3d7 Fix all_named_products, remove kati_all_products
all_named_products was giving the file path instead of product name for
the name:path format of PRODUCT_MAKEFILES.

kati_all_products has been replaced with multiproduct_kati

Test: get_build_var all_named_products
Test: multiproduct_kati
Change-Id: I24015ef0778ac7cd45201aa55c1737b0553f09fe
2017-02-24 15:49:46 -08:00